From 4af82967f409c02ef418336a277edf817410631b Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 8 Mar 2022 21:50:02 +0100 Subject: [PATCH 001/225] Decouple EntityTagPicker from backend entities Signed-off-by: Vincenzo Scamporlino --- .changeset/forty-poets-tie.md | 7 + .../EntityTagPicker/EntityTagPicker.test.tsx | 201 +++++++++--------- .../EntityTagPicker/EntityTagPicker.tsx | 31 ++- 3 files changed, 123 insertions(+), 116 deletions(-) create mode 100644 .changeset/forty-poets-tie.md diff --git a/.changeset/forty-poets-tie.md b/.changeset/forty-poets-tie.md new file mode 100644 index 0000000000..9118100934 --- /dev/null +++ b/.changeset/forty-poets-tie.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Decouple tags picker from backend entities + +`EntityTagPicker` fetches all the tags independently and it doesn't require all the entities to be available client side. diff --git a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx index c6b985bc8b..2be521203f 100644 --- a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx @@ -14,60 +14,49 @@ * limitations under the License. */ -import { Entity } from '@backstage/catalog-model'; -import { fireEvent, render } from '@testing-library/react'; +import { fireEvent, render, waitFor } from '@testing-library/react'; import React from 'react'; import { MockEntityListContextProvider } from '../../testUtils/providers'; import { EntityTagFilter } from '../../filters'; import { EntityTagPicker } from './EntityTagPicker'; +import { TestApiProvider } from '@backstage/test-utils'; +import { catalogApiRef } from '../../api'; +import { CatalogApi } from '@backstage/catalog-client'; -const taggedEntities: Entity[] = [ - { - apiVersion: '1', - kind: 'Component', - metadata: { - name: 'component-1', - tags: ['tag4', 'tag1', 'tag2'], - }, - }, - { - apiVersion: '1', - kind: 'Component', - metadata: { - name: 'component-2', - tags: ['tag3', 'tag4'], - }, - }, -]; +const tags = ['tag1', 'tag2', 'tag3', 'tag4']; describe('', () => { - it('renders all tags', () => { + const mockCatalogApiRef = { + getEntityFacets: async () => ({ + facets: { 'metadata.tags': tags.map(value => ({ value })) }, + }), + } as unknown as CatalogApi; + + it('renders all tags', async () => { const rendered = render( - - - , + + + + + , ); - expect(rendered.getByText('Tags')).toBeInTheDocument(); + await waitFor(() => expect(rendered.getByText('Tags')).toBeInTheDocument()); fireEvent.click(rendered.getByTestId('tag-picker-expand')); - taggedEntities - .flatMap(e => e.metadata.tags!) - .forEach(tag => { - expect(rendered.getByText(tag)).toBeInTheDocument(); - }); + tags.forEach(tag => { + expect(rendered.getByText(tag)).toBeInTheDocument(); + }); }); - it('renders unique tags in alphabetical order', () => { + it('renders unique tags in alphabetical order', async () => { const rendered = render( - - - , + + + + + , ); - expect(rendered.getByText('Tags')).toBeInTheDocument(); + await waitFor(() => expect(rendered.getByText('Tags')).toBeInTheDocument()); fireEvent.click(rendered.getByTestId('tag-picker-expand')); @@ -79,43 +68,47 @@ describe('', () => { ]); }); - it('respects the query parameter filter value', () => { + it('respects the query parameter filter value', async () => { const updateFilters = jest.fn(); const queryParameters = { tags: ['tag3'] }; render( - - - , + + + + + , ); - expect(updateFilters).toHaveBeenLastCalledWith({ - tags: new EntityTagFilter(['tag3']), - }); + await waitFor(() => + expect(updateFilters).toHaveBeenLastCalledWith({ + tags: new EntityTagFilter(['tag3']), + }), + ); }); - it('adds tags to filters', () => { + it('adds tags to filters', async () => { const updateFilters = jest.fn(); const rendered = render( - - - , + + + + + , + ); + await waitFor(() => + expect(updateFilters).toHaveBeenLastCalledWith({ + tags: undefined, + }), ); - expect(updateFilters).toHaveBeenLastCalledWith({ - tags: undefined, - }); fireEvent.click(rendered.getByTestId('tag-picker-expand')); fireEvent.click(rendered.getByText('tag1')); @@ -124,23 +117,25 @@ describe('', () => { }); }); - it('removes tags from filters', () => { + it('removes tags from filters', async () => { const updateFilters = jest.fn(); const rendered = render( - - - , + + + + + , + ); + await waitFor(() => + expect(updateFilters).toHaveBeenLastCalledWith({ + tags: new EntityTagFilter(['tag1']), + }), ); - expect(updateFilters).toHaveBeenLastCalledWith({ - tags: new EntityTagFilter(['tag1']), - }); fireEvent.click(rendered.getByTestId('tag-picker-expand')); expect(rendered.getByLabelText('tag1')).toBeChecked(); @@ -150,30 +145,36 @@ describe('', () => { }); }); - it('responds to external queryParameters changes', () => { + it('responds to external queryParameters changes', async () => { const updateFilters = jest.fn(); const rendered = render( - - - , + + + + + , + ); + await waitFor(() => + expect(updateFilters).toHaveBeenLastCalledWith({ + tags: new EntityTagFilter(['tag1']), + }), ); - expect(updateFilters).toHaveBeenLastCalledWith({ - tags: new EntityTagFilter(['tag1']), - }); rendered.rerender( - - - , + + + + + , ); expect(updateFilters).toHaveBeenLastCalledWith({ tags: new EntityTagFilter(['tag2']), diff --git a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx index 5b5e0e7ab9..eafa10696c 100644 --- a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx +++ b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx @@ -14,7 +14,6 @@ * limitations under the License. */ -import { Entity } from '@backstage/catalog-model'; import { Box, Checkbox, @@ -30,6 +29,9 @@ import { Autocomplete } from '@material-ui/lab'; import React, { useEffect, useMemo, useState } from 'react'; import { useEntityList } from '../../hooks/useEntityListProvider'; import { EntityTagFilter } from '../../filters'; +import { useApi } from '@backstage/core-plugin-api'; +import useAsync from 'react-use/lib/useAsync'; +import { catalogApiRef } from '../../api'; /** @public */ export type CatalogReactEntityTagPickerClassKey = 'input'; @@ -49,8 +51,17 @@ const checkedIcon = ; /** @public */ export const EntityTagPicker = () => { const classes = useStyles(); - const { updateFilters, backendEntities, filters, queryParameters } = - useEntityList(); + const { updateFilters, filters, queryParameters } = useEntityList(); + + const catalogApi = useApi(catalogApiRef); + const { value: availableTags } = useAsync(async () => { + const facet = 'metadata.tags'; + const { facets } = await catalogApi.getEntityFacets({ + facets: [facet], + }); + + return facets[facet].map(({ value }) => value); + }, []); const queryParamTags = useMemo( () => [queryParameters.tags].flat().filter(Boolean) as string[], @@ -75,19 +86,7 @@ export const EntityTagPicker = () => { }); }, [selectedTags, updateFilters]); - const availableTags = useMemo( - () => - [ - ...new Set( - backendEntities - .flatMap((e: Entity) => e.metadata.tags) - .filter(Boolean) as string[], - ), - ].sort(), - [backendEntities], - ); - - if (!availableTags.length) return null; + if (!availableTags?.length) return null; return ( From e74b06b35df05e725ece0312b4894d0a2c99baaa Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 9 Mar 2022 16:25:12 +0100 Subject: [PATCH 002/225] Apply kind filter when fetching tags Signed-off-by: Vincenzo Scamporlino --- .../src/components/EntityTagPicker/EntityTagPicker.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx index eafa10696c..ddb70c6d31 100644 --- a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx +++ b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx @@ -58,10 +58,11 @@ export const EntityTagPicker = () => { const facet = 'metadata.tags'; const { facets } = await catalogApi.getEntityFacets({ facets: [facet], + filter: filters.kind?.getCatalogFilters(), }); return facets[facet].map(({ value }) => value); - }, []); + }, [filters.kind]); const queryParamTags = useMemo( () => [queryParameters.tags].flat().filter(Boolean) as string[], From bdc61b400211d9cb7f60625533d2599e70e6a8cf Mon Sep 17 00:00:00 2001 From: irma12 Date: Thu, 17 Mar 2022 22:17:11 +0100 Subject: [PATCH 003/225] Expose initialKind from CatalogPage Signed-off-by: irma12 --- .changeset/tasty-emus-hunt.md | 5 +++++ .../components/CatalogPage/DefaultCatalogPage.tsx | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 .changeset/tasty-emus-hunt.md diff --git a/.changeset/tasty-emus-hunt.md b/.changeset/tasty-emus-hunt.md new file mode 100644 index 0000000000..d3b9430bf4 --- /dev/null +++ b/.changeset/tasty-emus-hunt.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': minor +--- + +Expose 'initalFilter' through initialKind prop on Catalog Page. diff --git a/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.tsx b/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.tsx index 2a2861ac29..8d65e54980 100644 --- a/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.tsx +++ b/plugins/catalog/src/components/CatalogPage/DefaultCatalogPage.tsx @@ -48,10 +48,16 @@ export interface DefaultCatalogPageProps { initiallySelectedFilter?: UserListFilterKind; columns?: TableColumn[]; actions?: TableProps['actions']; + initialKind?: string; } export function DefaultCatalogPage(props: DefaultCatalogPageProps) { - const { columns, actions, initiallySelectedFilter = 'owned' } = props; + const { + columns, + actions, + initiallySelectedFilter = 'owned', + initialKind = 'component', + } = props; const orgName = useApi(configApiRef).getOptionalString('organization.name') ?? 'Backstage'; const createComponentLink = useRouteRef(createComponentRouteRef); @@ -60,7 +66,9 @@ export function DefaultCatalogPage(props: DefaultCatalogPageProps) { - }> + } + > Date: Fri, 18 Mar 2022 09:56:11 +0100 Subject: [PATCH 004/225] Add api report Signed-off-by: irma12 --- plugins/catalog/api-report.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/catalog/api-report.md b/plugins/catalog/api-report.md index eddbe913d7..a316ab0d03 100644 --- a/plugins/catalog/api-report.md +++ b/plugins/catalog/api-report.md @@ -161,6 +161,8 @@ export interface DefaultCatalogPageProps { // (undocumented) columns?: TableColumn[]; // (undocumented) + initialKind?: string; + // (undocumented) initiallySelectedFilter?: UserListFilterKind; } From 9ed25d38f6754d626ad9822c26e673ebb5672150 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Fri, 18 Mar 2022 15:39:53 +0100 Subject: [PATCH 005/225] Added community hub - initial commit Signed-off-by: Suzanne Daniels --- microsite/data/on-demand/20220216-01.yaml | 7 + microsite/data/on-demand/20220223-01.yaml | 7 + microsite/data/on-demand/hero.yaml | 9 ++ microsite/pages/en/community.js | 166 +++++++++++++++++++++ microsite/pages/en/live.js | 85 +++++++++++ microsite/pages/en/on-demand.js | 147 ++++++++++++++++++ microsite/siteConfig.js | 4 + microsite/static/css/on-demand.css | 143 ++++++++++++++++++ microsite/static/img/b-sessions.png | Bin 0 -> 75751 bytes microsite/static/img/openmic.jpeg | Bin 0 -> 257986 bytes microsite/static/img/roadie-newsletter.png | Bin 0 -> 68365 bytes microsite/static/img/spotlight.png | Bin 0 -> 209959 bytes 12 files changed, 568 insertions(+) create mode 100644 microsite/data/on-demand/20220216-01.yaml create mode 100644 microsite/data/on-demand/20220223-01.yaml create mode 100644 microsite/data/on-demand/hero.yaml create mode 100644 microsite/pages/en/community.js create mode 100644 microsite/pages/en/live.js create mode 100644 microsite/pages/en/on-demand.js create mode 100644 microsite/static/css/on-demand.css create mode 100644 microsite/static/img/b-sessions.png create mode 100644 microsite/static/img/openmic.jpeg create mode 100644 microsite/static/img/roadie-newsletter.png create mode 100644 microsite/static/img/spotlight.png diff --git a/microsite/data/on-demand/20220216-01.yaml b/microsite/data/on-demand/20220216-01.yaml new file mode 100644 index 0000000000..1fc7371345 --- /dev/null +++ b/microsite/data/on-demand/20220216-01.yaml @@ -0,0 +1,7 @@ +--- +title: Community Sessions +date: February 16, 2022 +category: Meetup +description: This community session marks one year of Backstage community sessions! In this session, we celebrate one year of the Backstage community, hear from Patrik on stabilizing core APIs, learn more about Homepage Templates, find hidden info about your catalog entities, and Q&A. +youtubeUrl: https://youtu.be/evf_LV0KzIk +youtubeImgUrl: https://i1.ytimg.com/vi/evf_LV0KzIk/mqdefault.jpg diff --git a/microsite/data/on-demand/20220223-01.yaml b/microsite/data/on-demand/20220223-01.yaml new file mode 100644 index 0000000000..6efc9fe22c --- /dev/null +++ b/microsite/data/on-demand/20220223-01.yaml @@ -0,0 +1,7 @@ +--- +title: Community Sessions +date: February 23, 2022 +category: Meetup +description: Community Sessions Anniversary , SWAG opportunity❗, TechDocs add-on framework, URL Reader demo 👨‍💻, Q&A +youtubeUrl: https://youtu.be/Buu_KWdIFwU +youtubeImgUrl: https://i1.ytimg.com/vi/Buu_KWdIFwU/mqdefault.jpg diff --git a/microsite/data/on-demand/hero.yaml b/microsite/data/on-demand/hero.yaml new file mode 100644 index 0000000000..4a55111c3e --- /dev/null +++ b/microsite/data/on-demand/hero.yaml @@ -0,0 +1,9 @@ +--- +title: Contributor Community Sessions +date: March 23, 2022 +category: Upcoming +description: Join the maintainers and contributors for the Contributor Community Sessions +youtubeUrl: https://youtu.be/evf_LV0KzIk +youtubeImgUrl: https://i1.ytimg.com/vi/evf_LV0KzIk/mqdefault.jpg +rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com +eventUrl: https://github.com/backstage/community/issues diff --git a/microsite/pages/en/community.js b/microsite/pages/en/community.js new file mode 100644 index 0000000000..1c3ba85bba --- /dev/null +++ b/microsite/pages/en/community.js @@ -0,0 +1,166 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const React = require('react'); +const Components = require(`${process.cwd()}/core/Components.js`); +const Block = Components.Block; + +const Background = props => { + const { config: siteConfig } = props; + const { baseUrl } = siteConfig; + return ( +
+ {new Date('2022-03-17') > new Date() ? : null} + + + + Backstage Community + + + What's the use of having fun if you can't share it? Exactly. Join + the vibrant community around the Backstage project. Be it on + GitHub, social media, Discord.. You'll find a welcoming + environment, to ensure this we follow the{' '} + + {' '} + CNCF Code of Conduct + {' '} + in everything we do. + + + + + Main community channels +
- Chat and get support on our{' '} + Discord +
- Get into contributing with the{' '} + + Good First Issues + +
- Subscribe to the{' '} + + Community newsletter + +
- Join the{' '} + + Twitter community + +
+
+
+
+
+ + + + Community Sessions + + + Adopters Community Sessions +
+ Backstage Community Sessions is the monthly meetup where we all + come together to listen to the latest maintainer updates, learn + from eachother about adopting, share exciting new demo's or + discuss any relevat topic like developer effectiveness, developer + experience, developer portals, etc. +
+ + + Contributor Community Sessions +
+ Discuss all things contributing, diving deep under the hood of + Backstage (Backstage of Backstage? Backerstage?). An open + discussion with maintainers and contributors of Backstage. +
+ Watch now +
+ + + +
+
+ + + + + Backstage official Newsletter + + The official monthly Backstage newsletter. Containing the latest + news from your favorite project. + + + Subscribe + + + + + + + + + + Spotlight + + A recognition for valuable community work, the{' '} + Contributor Spotlight. Nominate contributing members for + their efforts! We'll put them in the spotlight ❤️. +
+
+ + Nominate now + +
+ + Open Mic Meetup + + A monthly casual get together of Backstage users sharing their + experiences and helping each other. Hosted by Roadie.io and + Frontside Software. +
+
+ + Learn more + +
+ + Backstage Weekly + + A weekly newsletter with news, updates and things community from + your friends at Roadie.io + + + Learn more + + +
+
+ + + + + + +
+ ); +}; + +module.exports = Background; diff --git a/microsite/pages/en/live.js b/microsite/pages/en/live.js new file mode 100644 index 0000000000..583ba5af10 --- /dev/null +++ b/microsite/pages/en/live.js @@ -0,0 +1,85 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const React = require('react'); +const Components = require(`${process.cwd()}/core/Components.js`); +const Block = Components.Block; + +const Background = props => { + const { config: siteConfig } = props; + const { baseUrl } = siteConfig; + return ( +
+ + + + Community Sessions + + Please be aware we follow the{' '} + + {' '} + CNCF Code of Conduct + + . + + + + + + + + + + + + + + + + + + + + Don't be a stranger + + Main community channels +
- Chat and get support on our{' '} + Discord +
- Get into contributing with the{' '} + + Good First Issues + +
- Subscribe to the{' '} + + Community newsletter + +
- Join the{' '} + + Twitter community + +
+
+
+
+
+
+ ); +}; + +module.exports = Background; diff --git a/microsite/pages/en/on-demand.js b/microsite/pages/en/on-demand.js new file mode 100644 index 0000000000..f93d587d22 --- /dev/null +++ b/microsite/pages/en/on-demand.js @@ -0,0 +1,147 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const fs = require('fs'); +const yaml = require('js-yaml'); +const React = require('react'); +const Components = require(`${process.cwd()}/core/Components.js`); +const { + Block: { Container }, + BulletLine, +} = Components; + +const ondemandDirectory = require('path').join(process.cwd(), 'data/on-demand'); +const ondemandMetadata = fs + .readdirSync(ondemandDirectory) + .map(file => yaml.load(fs.readFileSync(`./data/on-demand/${file}`, 'utf8'))) + .sort((b, a) => a.date.toLowerCase().localeCompare(b.date.toLowerCase())); +const truncate = text => + text.length > 170 ? text.substr(0, 170) + '...' : text; + +const addVideoDocsLink = '/docs/community/add-content'; +const defaultIconUrl = 'img/logo-gradient-on-dark.svg'; + +const Ondemand = () => ( +
+
+
+

Upcoming live events

+

Upcoming Backstage events

+ + + Add an event or recording + + +
+ + {ondemandMetadata + .filter(video => video.category === 'Upcoming') + .map( + ({ + title, + description, + category, + date, + youtubeUrl, + youtubeImgUrl, + rsvpUrl, + eventUrl, + }) => ( +
+
+
+

{title}

+

on {date}

+ + {category} +

+
+ {title} +

+
+
+
+

{truncate(description)}

+
+ +
+ ), + )} +
+ +
+

Community on demand

+
+ + {ondemandMetadata + .filter(video => video.category !== 'Upcoming') + .map( + ({ + title, + description, + category, + date, + youtubeUrl, + youtubeImgUrl, + }) => ( +
+
+
+

{title}

+

on {date}

+ + {category} +

+
+ {title} +

+
+
+
+

{truncate(description)}

+
+ +
+ ), + )} +
+
+

Do you have a recording of a meetup to include on this page?

+

+ + Add to the On-demand page + +

+
+ +

+ Help us create a go-to place for hours of Backstage related + content. +

+
+
+
+
+
+); + +module.exports = Ondemand; diff --git a/microsite/siteConfig.js b/microsite/siteConfig.js index 6e291aa994..d757ed448b 100644 --- a/microsite/siteConfig.js +++ b/microsite/siteConfig.js @@ -70,6 +70,10 @@ const siteConfig = { page: 'demos', label: 'Demos', }, + { + page: 'community', + label: 'Community', + }, ], /* path to images for header/footer */ diff --git a/microsite/static/css/on-demand.css b/microsite/static/css/on-demand.css new file mode 100644 index 0000000000..909459796c --- /dev/null +++ b/microsite/static/css/on-demand.css @@ -0,0 +1,143 @@ +.VideoCard { + background-color: #282828; + height: 100%; + padding: 16px; + display: flex; + flex-direction: column; +} + +.VideoGrid { + display: grid; + grid-gap: 1rem; + grid-template-columns: repeat(4, 1fr); + grid-auto-rows: 1fr; +} + +@media (max-width: 1200px) { + .VideoGrid { + grid-template-columns: repeat(3, 1fr); + } +} + +@media only screen and (max-width: 815px) { + .VideoGrid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media only screen and (max-width: 485px) { + .VideoGrid { + grid-template-columns: 1fr; + } +} + +.VideoCard img { + float: left; + margin: 0px 16px 8px 0px; + height: 160px; + width: 300px; +} + +.VideoCardHeader { + display: flex; + flex-direction: row; + align-items: center; + max-height: fit-content; + min-height: fit-content; +} + +.VideoCardImage { + width: 200px; + height: 80px; + margin-right: 16px; +} + +.VideoCardImage img { + width: 100%; + max-width: 100%; +} + +.VideoCardTitle { + color: white; + vertical-align: top; + margin: 8px 0 0; +} + +.VideoCardInfo { + flex: 1; +} + +.VideoAddNewButton { + position: absolute; + bottom: 16px; + right: 0px; +} + +@media only screen and (max-width: 485px) { + .VideoAddNewButton { + bottom: -4px; + } +} + +.VideoButtonFilled { + padding: 4px 8px; + border-radius: 4px; + color: #69ddc7; +} + +.VideoButtonFilled:hover { + border: 1px solid #69ddc7; + background-color: transparent; +} + +.VideoCardChipOutlined { + font-size: small; + border-radius: 16px; + padding: 2px 8px; + border: 1px solid #69ddc7; + color: #69ddc7; +} + +.VideoCardFooter { + display: flex; + justify-content: flex-end; + align-items: flex-end; + margin-top: auto; + min-height: 2em; +} + +.VideoCardFooter a { + padding: 2px 8px; +} + +.VideoPageLayout { + margin: auto; + max-width: 1430px; + padding: 20px; +} + +.VideoPageHeader { + position: relative; +} + +.VideoPageHeader h2 { + display: inline-block; +} + +.VideoCardBody { + padding-top: 8px; +} + +.VideoCardDate, +.VideoCardDate a { + margin-bottom: 0.25em; + color: rgba(255, 255, 255, 0.6); +} + +.VideoCardDate a:hover { + color: white; +} + +#add-video-card { + border: 1px solid #69ddc7; +} diff --git a/microsite/static/img/b-sessions.png b/microsite/static/img/b-sessions.png new file mode 100644 index 0000000000000000000000000000000000000000..35fb4013411f9f0e0920236af3668cd6051eea86 GIT binary patch literal 75751 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 z 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%0D)CdaVSWgpCn-Ps8Pis;_1!=GIWVr&nd(RxY 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

?17s zsk;%@v9Fek5o_MCA#{OaTM56&KT z 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 FHvy`nlal}d literal 0 HcmV?d00001 diff --git a/microsite/static/img/roadie-newsletter.png b/microsite/static/img/roadie-newsletter.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b8ceb55bf6a3b2f658bf0164aca6aef137e127 GIT binary patch literal 68365 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 L~^eQMOgD9R0LY)3F8m=vW2w=NQ^nV+f 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%0Dx-pmS5+^~TdK_^;on!T1v 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 literal 0 HcmV?d00001 diff --git a/microsite/static/img/spotlight.png b/microsite/static/img/spotlight.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1bb57c1097552990f84bef3b45b2ee079801ba GIT binary patch literal 209959 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 Date: Fri, 18 Mar 2022 16:47:45 +0100 Subject: [PATCH 006/225] Adding spotlight form, renaming session filename Signed-off-by: Suzanne Daniels --- .../on-demand/{hero.yaml => 20220323.yaml} | 0 microsite/pages/en/community.js | 4 +- microsite/pages/en/nominate.js | 44 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) rename microsite/data/on-demand/{hero.yaml => 20220323.yaml} (100%) create mode 100644 microsite/pages/en/nominate.js diff --git a/microsite/data/on-demand/hero.yaml b/microsite/data/on-demand/20220323.yaml similarity index 100% rename from microsite/data/on-demand/hero.yaml rename to microsite/data/on-demand/20220323.yaml diff --git a/microsite/pages/en/community.js b/microsite/pages/en/community.js index 1c3ba85bba..53f18f196e 100644 --- a/microsite/pages/en/community.js +++ b/microsite/pages/en/community.js @@ -120,7 +120,7 @@ const Background = props => { their efforts! We'll put them in the spotlight ❤️.
- + Nominate now @@ -148,7 +148,7 @@ const Background = props => { - + { + const { config: siteConfig } = props; + const { baseUrl } = siteConfig; + return ( +

+ + + + + Contributor Spotlight nomination + + + + + + + + + + + + + + + + + + +
+ ); +}; + +module.exports = Background; From 087e10f889ebcc599a218834abaeee75280df968 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Fri, 18 Mar 2022 16:48:09 +0100 Subject: [PATCH 007/225] prettier Signed-off-by: Suzanne Daniels --- microsite/pages/en/community.js | 6 ++---- microsite/pages/en/nominate.js | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/microsite/pages/en/community.js b/microsite/pages/en/community.js index 53f18f196e..f3ca0d36ed 100644 --- a/microsite/pages/en/community.js +++ b/microsite/pages/en/community.js @@ -120,9 +120,7 @@ const Background = props => { their efforts! We'll put them in the spotlight ❤️.
- - Nominate now - + Nominate now Open Mic Meetup @@ -148,7 +146,7 @@ const Background = props => { - + { const { baseUrl } = siteConfig; return (
- - Contributor Spotlight nomination - - - - + + - - - + - - + - -
); }; From 05764d44bc5952c41517034f446a4cbb55ba1687 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Fri, 18 Mar 2022 16:54:14 +0100 Subject: [PATCH 008/225] Adding official newsletter and graphics Signed-off-by: Suzanne Daniels --- microsite/pages/en/community.js | 6 +++--- microsite/static/img/news-fpo.png | Bin 0 -> 815706 bytes 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 microsite/static/img/news-fpo.png diff --git a/microsite/pages/en/community.js b/microsite/pages/en/community.js index f3ca0d36ed..aafe640108 100644 --- a/microsite/pages/en/community.js +++ b/microsite/pages/en/community.js @@ -97,15 +97,15 @@ const Background = props => { The official monthly Backstage newsletter. Containing the latest news from your favorite project. - + Subscribe
diff --git a/microsite/static/img/news-fpo.png b/microsite/static/img/news-fpo.png new file mode 100644 index 0000000000000000000000000000000000000000..cff7df917f135a5f74e0684b1db868175a9057c7 GIT binary patch literal 815706 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 Q;eaEkBBAlDFVN~2_@Fqq&wJy6BCA{1%R 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
sB;fHL37rUdV^FDXJ^{k!@o}TW-2n(J^bwmL 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
  1. J!qi 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

    G?ffO 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 D@lSb( literal 0 HcmV?d00001 From 5fdb1d967479bb68968ea3b8c5dd5ce327ce993a Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Tue, 22 Mar 2022 14:02:27 +0100 Subject: [PATCH 009/225] processing feedback from @freben adding instructions Signed-off-by: Suzanne Daniels --- docs/overview/support.md | 44 +++++++++++++++++++++++++++++++++ microsite/pages/en/community.js | 15 ++++++----- microsite/pages/en/on-demand.js | 4 +-- 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/docs/overview/support.md b/docs/overview/support.md index 49075366af..98450e5add 100644 --- a/docs/overview/support.md +++ b/docs/overview/support.md @@ -18,3 +18,47 @@ description: Support and Community Details and Links our email newsletter. - Give us a star ⭐️ - If you are using Backstage or think it is an interesting project, we would love a star! ❤️ + +## Community Hub + +Check out the Backstage.io [Backstage Community Hub](https://backstage.io/community) for the Community Sessions, recordings, and community resources. + +### Adding a recording to the meetup page + +To add a new recording to the [meetup page](https://backstage.io/on-demand) +create a file in +[`microsite/data/on-demand`](https://github.com/backstage/backstage/tree/master/microsite/data/on-demand) +with your recording's information. Example: + +```yaml +--- +--- +title: # name of the meetup +date: February 23, 2022 # date, format: Month day, year. This is the index field. +category: Meetup # Can be Event, Meetup, Webinar +description: # description, summary +youtubeUrl: # Url to youtube video +youtubeImgUrl: # Url to the preview image, for Youtube this is the format: https://i1.ytimg.com/vi//mqdefault.jpg +``` + +### Adding an upcoming meetup to the meetup page + +To add an upcoming meetup to the [meetup page](https://backstage.io/on-demand) +create a file in +[`microsite/data/on-demand`](https://github.com/backstage/backstage/tree/master/microsite/data/on-demand) +with your meetup's information. Example: + +```yaml +--- +--- +title: # name of the meetup +date: February 23, 2022 # date, format: Month day, year. This is the index field. +category: Upcoming # Should be "Upcoming" +description: # description, summary +youtubeUrl: # Url to youtube video +youtubeImgUrl: # Url to the preview image, for Youtube this is the format: https://i1.ytimg.com/vi//mqdefault.jpg +rsvpUrl: # Link to registration, calendar item, etc +eventUrl: # Link to event landing page +``` + +After the meetup is done, and the recording is ready you can change it to a meetup recording. diff --git a/microsite/pages/en/community.js b/microsite/pages/en/community.js index aafe640108..35eb6d766c 100644 --- a/microsite/pages/en/community.js +++ b/microsite/pages/en/community.js @@ -14,8 +14,6 @@ const Background = props => { const { baseUrl } = siteConfig; return (

    - {new Date('2022-03-17') > new Date() ? : null} - Backstage Community @@ -23,7 +21,7 @@ const Background = props => { What's the use of having fun if you can't share it? Exactly. Join the vibrant community around the Backstage project. Be it on - GitHub, social media, Discord.. You'll find a welcoming + GitHub, social media, Discord... You'll find a welcoming environment, to ensure this we follow the{' '} {' '} @@ -64,8 +62,8 @@ const Background = props => {
    Backstage Community Sessions is the monthly meetup where we all come together to listen to the latest maintainer updates, learn - from eachother about adopting, share exciting new demo's or - discuss any relevat topic like developer effectiveness, developer + from eachother about adopting, share exciting new demos or discuss + any relevat topic like developer effectiveness, developer experience, developer portals, etc. @@ -126,8 +124,9 @@ const Background = props => { Open Mic Meetup A monthly casual get together of Backstage users sharing their - experiences and helping each other. Hosted by Roadie.io and - Frontside Software. + experiences and helping each other. Hosted by{' '} +
    Roadie.io and + Frontside Software.
    @@ -138,7 +137,7 @@ const Background = props => { Backstage Weekly A weekly newsletter with news, updates and things community from - your friends at Roadie.io + your friends at Roadie.io. Learn more diff --git a/microsite/pages/en/on-demand.js b/microsite/pages/en/on-demand.js index f93d587d22..56a5095c6f 100644 --- a/microsite/pages/en/on-demand.js +++ b/microsite/pages/en/on-demand.js @@ -21,7 +21,7 @@ const ondemandMetadata = fs const truncate = text => text.length > 170 ? text.substr(0, 170) + '...' : text; -const addVideoDocsLink = '/docs/community/add-content'; +const addVideoDocsLink = '/docs/overview/support'; const defaultIconUrl = 'img/logo-gradient-on-dark.svg'; const Ondemand = () => ( @@ -78,7 +78,7 @@ const Ondemand = () => ( ), )} - +

    Community on demand

    From 8a7d4444e3ee1473722d2aff82f62a56b020b282 Mon Sep 17 00:00:00 2001 From: Shivam bisht Date: Tue, 1 Mar 2022 02:14:23 +0530 Subject: [PATCH 010/225] Added default commit message Signed-off-by: Shivam bisht --- .../actions/builtin/publish/gitlab.ts | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts index 9aa12803eb..c72ee9a665 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts @@ -40,6 +40,9 @@ export function createPublishGitlabAction(options: { repoVisibility?: 'private' | 'internal' | 'public'; sourcePath?: string; token?: string; + defaultCommitMessage?: string; + gitAuthorName?: string; + gitAuthorEmail?: string; }>({ id: 'publish:gitlab', description: @@ -63,6 +66,21 @@ export function createPublishGitlabAction(options: { type: 'string', description: `Sets the default branch on the repository. The default value is 'master'`, }, + defaultCommitMessage: { + title: 'Default Commit Message', + type: 'string', + description: `Sets the default commit message on the repository. The default value is 'initial commit'`, + }, + gitAuthorName: { + title: 'Default Author Name', + type: 'string', + description: `Sets the default author name for the commit. The default value is 'Scaffolder'`, + }, + gitAuthorEmail: { + title: 'Default Author Email', + type: 'string', + description: `Sets the default author email for the commit.`, + }, sourcePath: { title: 'Source Path', description: @@ -95,8 +113,10 @@ export function createPublishGitlabAction(options: { repoUrl, repoVisibility = 'private', defaultBranch = 'master', + defaultCommitMessage = 'initial commit', + gitAuthorName, + gitAuthorEmail, } = ctx.input; - const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); if (!owner) { @@ -146,10 +166,13 @@ export function createPublishGitlabAction(options: { const repoContentsUrl = `${remoteUrl}/-/blob/${defaultBranch}`; const gitAuthorInfo = { - name: config.getOptionalString('scaffolder.defaultAuthor.name'), - email: config.getOptionalString('scaffolder.defaultAuthor.email'), + name: gitAuthorName + ? gitAuthorName + : config.getOptionalString('scaffolder.defaultAuthor.name'), + email: gitAuthorEmail + ? gitAuthorEmail + : config.getOptionalString('scaffolder.defaultAuthor.email'), }; - await initRepoAndPush({ dir: getRepoSourceDirectory(ctx.workspacePath, ctx.input.sourcePath), remoteUrl: http_url_to_repo as string, @@ -159,9 +182,9 @@ export function createPublishGitlabAction(options: { password: token, }, logger: ctx.logger, - commitMessage: config.getOptionalString( - 'scaffolder.defaultCommitMessage', - ), + commitMessage: defaultCommitMessage + ? defaultCommitMessage + : config.getOptionalString('scaffolder.defaultCommitMessage'), gitAuthorInfo, }); From 2a7d52ca2cea14c43c929d93383a4e51a84be00f Mon Sep 17 00:00:00 2001 From: Shivam bisht Date: Tue, 1 Mar 2022 02:50:16 +0530 Subject: [PATCH 011/225] Added changeset Signed-off-by: Shivam bisht --- .changeset/angry-pens-begin.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/angry-pens-begin.md diff --git a/.changeset/angry-pens-begin.md b/.changeset/angry-pens-begin.md new file mode 100644 index 0000000000..620baa8079 --- /dev/null +++ b/.changeset/angry-pens-begin.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +override default commit message and author details in gitlab action From 44766e8f676e2e9185eae2a870db8de00c57125d Mon Sep 17 00:00:00 2001 From: mufaddal motiwala Date: Fri, 4 Mar 2022 17:24:46 +0530 Subject: [PATCH 012/225] md fix Signed-off-by: mufaddal motiwala Signed-off-by: Shivam bisht --- .changeset/angry-pens-begin.md | 2 +- plugins/scaffolder-backend/api-report.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.changeset/angry-pens-begin.md b/.changeset/angry-pens-begin.md index 620baa8079..b8d6f80292 100644 --- a/.changeset/angry-pens-begin.md +++ b/.changeset/angry-pens-begin.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-backend': patch --- -override default commit message and author details in gitlab action +Override default commit message and author details in GitLab action diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index d454fe2e7b..7cb29fcf60 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -266,6 +266,9 @@ export function createPublishGitlabAction(options: { repoVisibility?: 'internal' | 'private' | 'public' | undefined; sourcePath?: string | undefined; token?: string | undefined; + defaultCommitMessage?: string | undefined; + gitAuthorName?: string | undefined; + gitAuthorEmail?: string | undefined; }>; // @public From 87b30f4efbc7ebb14f3b562e8679777beba5ede2 Mon Sep 17 00:00:00 2001 From: Shivam bisht Date: Thu, 10 Mar 2022 13:22:04 +0530 Subject: [PATCH 013/225] added commitMessage to test file Signed-off-by: Shivam bisht --- .../src/scaffolder/actions/builtin/publish/gitlab.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts index ed8df4e5e8..66780e3184 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts @@ -181,6 +181,7 @@ describe('publish:gitlab', () => { remoteUrl: 'http://mockurl.git', auth: { username: 'oauth2', password: 'tokenlols' }, logger: mockContext.logger, + commitMessage: 'initial commit', gitAuthorInfo: {}, }); }); @@ -205,6 +206,7 @@ describe('publish:gitlab', () => { remoteUrl: 'http://mockurl.git', auth: { username: 'oauth2', password: 'tokenlols' }, logger: mockContext.logger, + commitMessage: 'initial commit', gitAuthorInfo: {}, }); }); @@ -252,6 +254,7 @@ describe('publish:gitlab', () => { auth: { username: 'oauth2', password: 'tokenlols' }, logger: mockContext.logger, defaultBranch: 'master', + commitMessage: 'Test commit message', gitAuthorInfo: { name: 'Test', email: 'example@example.com' }, }); }); @@ -294,10 +297,10 @@ describe('publish:gitlab', () => { dir: mockContext.workspacePath, remoteUrl: 'http://mockurl.git', auth: { username: 'oauth2', password: 'tokenlols' }, - logger: mockContext.logger, defaultBranch: 'master', commitMessage: 'Test commit message', gitAuthorInfo: { email: undefined, name: undefined }, + logger: mockContext.logger, }); }); From caa98d4d9e9dfd559d2332311505102a3ca9c5fe Mon Sep 17 00:00:00 2001 From: Shivam bisht Date: Wed, 16 Mar 2022 20:21:26 +0530 Subject: [PATCH 014/225] modified defaultCommitMessage Signed-off-by: Shivam bisht --- .../src/scaffolder/actions/builtin/publish/gitlab.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts index 66780e3184..f427023c69 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts @@ -254,7 +254,7 @@ describe('publish:gitlab', () => { auth: { username: 'oauth2', password: 'tokenlols' }, logger: mockContext.logger, defaultBranch: 'master', - commitMessage: 'Test commit message', + commitMessage: 'initial commit', gitAuthorInfo: { name: 'Test', email: 'example@example.com' }, }); }); @@ -298,7 +298,7 @@ describe('publish:gitlab', () => { remoteUrl: 'http://mockurl.git', auth: { username: 'oauth2', password: 'tokenlols' }, defaultBranch: 'master', - commitMessage: 'Test commit message', + commitMessage: 'initial commit', gitAuthorInfo: { email: undefined, name: undefined }, logger: mockContext.logger, }); From 1e128d9531e1ee9fe4b59387fa1f5cdba807eed2 Mon Sep 17 00:00:00 2001 From: Shivam bisht Date: Tue, 22 Mar 2022 13:52:39 +0530 Subject: [PATCH 015/225] changed gitCommitMessage from defaultCommitMessage Signed-off-by: Shivam bisht --- .../scaffolder/actions/builtin/publish/gitlab.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts index c72ee9a665..a7c247f4d9 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts @@ -40,7 +40,7 @@ export function createPublishGitlabAction(options: { repoVisibility?: 'private' | 'internal' | 'public'; sourcePath?: string; token?: string; - defaultCommitMessage?: string; + gitCommitMessage?: string; gitAuthorName?: string; gitAuthorEmail?: string; }>({ @@ -66,10 +66,10 @@ export function createPublishGitlabAction(options: { type: 'string', description: `Sets the default branch on the repository. The default value is 'master'`, }, - defaultCommitMessage: { - title: 'Default Commit Message', + gitCommitMessage: { + title: 'Git Commit Message', type: 'string', - description: `Sets the default commit message on the repository. The default value is 'initial commit'`, + description: `Sets the commit message on the repository. The default value is 'initial commit'`, }, gitAuthorName: { title: 'Default Author Name', @@ -113,7 +113,7 @@ export function createPublishGitlabAction(options: { repoUrl, repoVisibility = 'private', defaultBranch = 'master', - defaultCommitMessage = 'initial commit', + gitCommitMessage = 'initial commit', gitAuthorName, gitAuthorEmail, } = ctx.input; @@ -182,8 +182,8 @@ export function createPublishGitlabAction(options: { password: token, }, logger: ctx.logger, - commitMessage: defaultCommitMessage - ? defaultCommitMessage + commitMessage: gitCommitMessage + ? gitCommitMessage : config.getOptionalString('scaffolder.defaultCommitMessage'), gitAuthorInfo, }); From 45b4b821a00730cce0835b065225c0470074b6b6 Mon Sep 17 00:00:00 2001 From: Shivam bisht Date: Tue, 22 Mar 2022 17:59:28 +0530 Subject: [PATCH 016/225] updated api reports Signed-off-by: Shivam bisht --- plugins/scaffolder-backend/api-report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 7cb29fcf60..89ca6b55bd 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -266,7 +266,7 @@ export function createPublishGitlabAction(options: { repoVisibility?: 'internal' | 'private' | 'public' | undefined; sourcePath?: string | undefined; token?: string | undefined; - defaultCommitMessage?: string | undefined; + gitCommitMessage?: string | undefined; gitAuthorName?: string | undefined; gitAuthorEmail?: string | undefined; }>; From db11f840572827e5edf0782d448e82c0910b178c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 13:27:05 +0000 Subject: [PATCH 017/225] build(deps): bump node-forge from 1.2.1 to 1.3.0 Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/digitalbazaar/forge/releases) - [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md) - [Commits](https://github.com/digitalbazaar/forge/compare/v1.2.1...v1.3.0) --- updated-dependencies: - dependency-name: node-forge dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 09d924c5bb..bdeb632bb4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18304,9 +18304,9 @@ node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node- whatwg-url "^5.0.0" node-forge@^1.0.0, node-forge@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c" - integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w== + version "1.3.0" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz#37a874ea723855f37db091e6c186e5b67a01d4b2" + integrity sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA== node-gyp@^5.0.2: version "5.1.0" From 5edc4c520fedf5f522cb7cbf08cb5b625f2ef5ec Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 22 Mar 2022 11:05:26 +0100 Subject: [PATCH 018/225] scripts: add generate-changeset-feedback.js Signed-off-by: Patrik Oldsberg --- scripts/generate-changeset-feedback.js | 271 +++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 scripts/generate-changeset-feedback.js diff --git a/scripts/generate-changeset-feedback.js b/scripts/generate-changeset-feedback.js new file mode 100644 index 0000000000..ca29e15530 --- /dev/null +++ b/scripts/generate-changeset-feedback.js @@ -0,0 +1,271 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs'); +const { execFile: execFileCb } = require('child_process'); +const { promisify } = require('util'); +const { + basename, + resolve: resolvePath, + relative: relativePath, +} = require('path'); + +const execFile = promisify(execFileCb); + +// Tells whether a path relative to the package directory has an effect +// on the published package +function isPublishedPath(path) { + if (path.startsWith('dev/')) { + return false; + } + if (path.includes('__mocks__')) { + return false; + } + if (path.includes('__fixtures__')) { + return false; + } + // Don't count manual modifications to the changelog + if (path === 'CHANGELOG.md') { + return false; + } + // API report changes by themselves don't count + if (path === 'api-report.md') { + return false; + } + // Lint changes don't count + if (path === '.eslintrc.js') { + return false; + } + + const name = basename(path); + if (name.startsWith('setupTests.')) { + return false; + } + if (name.includes('.test.')) { + return false; + } + if (name.includes('.stories.')) { + return false; + } + return true; +} + +async function listChangedFiles(ref) { + if (!ref) { + throw new Error('ref is required'); + } + + const { stdout } = await execFile('git', ['diff', '--name-only', ref]); + return stdout.trim().split(/\r?\n/); +} + +async function listPackages() { + const { stdout } = await execFile('yarn', ['-s', 'workspaces', 'info']); + return Object.entries(JSON.parse(stdout)).map(([name, info]) => ({ + name, + path: info.location, + })); +} + +async function parseChangesets(filePaths) { + const changesets = []; + for (const filePath of filePaths) { + if (!filePath.startsWith('.changeset/') || !filePath.endsWith('.md')) { + continue; + } + const content = await fs.promises.readFile(filePath, 'utf8'); + let lines = content.split(/\r?\n/); + + lines = lines.slice(lines.findIndex(line => line === '---') + 1); + lines = lines.slice( + 0, + lines.findIndex(line => line === '---'), + ); + + const bumps = new Map(); + for (const line of lines) { + const match = line.match(/^'(.*)': (patch|minor|major)$/); + if (!match) { + throw new Error(`Invalid changeset line: ${line}`); + } + + bumps.set(match[1], match[2]); + } + + changesets.push({ + filePath, + bumps, + }); + } + + return changesets; +} + +async function listChangedPackages(changedFiles, packages) { + const changedPackageMap = new Map(); + for (const filePath of changedFiles) { + for (const pkg of packages) { + if (filePath.startsWith(pkg.path)) { + const pkgPath = relativePath(pkg.path, filePath); + if (!isPublishedPath(pkgPath)) { + break; + } + const entry = changedPackageMap.get(pkg.name); + if (entry) { + entry.files.push(pkgPath); + } else { + const pkgJson = require(resolvePath(pkg.path, 'package.json')); + + changedPackageMap.set(pkg.name, { + ...pkg, + version: pkgJson.version, + isStable: !pkgJson.version.startsWith('0.'), + isPrivate: Boolean(pkgJson.private), + files: [pkgPath], + }); + } + break; + } + } + } + return Array.from(changedPackageMap.values()); +} + +function formatSection(prefix = [], generator, suffix = ['']) { + const lines = Array.from(generator()); + if (lines.length === 0) { + return ''; + } + + return [...[prefix].flat(), ...lines, ...[suffix].flat(), '', ''].join('\n'); +} + +function formatSummary(changedPackages, changesets) { + const changedNames = new Set(changedPackages.map(pkg => pkg.name)); + + let output = ''; + + output += formatSection( + `## Missing Changesets + +The following package(s) are changed by this PR but do not have a changeset: +`, + function* section() { + for (const pkg of changedPackages) { + if (changesets.some(c => c.bumps.get(pkg.name))) { + continue; + } + if (pkg.isPrivate) { + continue; + } + yield `- **${pkg.name}**`; + } + }, + ` +See [CONTRIBUTION.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#creating-changesets) for more information about how to add changesets. +`, + ); + + output += formatSection( + `## Unexpected Changesets + +The following changeset(s) reference packages that have not been changed in this PR: +`, + function* section() { + for (const c of changesets) { + const missing = Array.from(c.bumps.keys()).filter( + b => !changedNames.has(b), + ); + if (missing.length > 0) { + yield `- **${c.filePath}**: ${missing.join(', ')}`; + } + } + }, + ` +Note that only changes that affect the published package require changesets, for example changes to tests and storybook stories do not require changesets. +`, + ); + + output += formatSection( + `## Unnecessary Changesets + +The following package(s) are private and do not need a changeset: +`, + function* section() { + for (const pkg of changedPackages) { + if (changesets.some(c => c.bumps.get(pkg.name)) && pkg.isPrivate) { + yield `- **${pkg.name}**`; + } + } + }, + ); + + output += formatSection( + `## Changed Packages + +| Package Name | Package Path | Changeset Bump | Current Version | +|:-------------|:-------------|:--------------:|:----------------|`, + function* section() { + const bumpMap = { + undefined: -1, + patch: 0, + minor: 1, + major: 2, + }; + + for (const pkg of changedPackages) { + const maxBump = + changesets + .map(c => c.bumps.get(pkg.name)) + .reduce( + (max, bump) => (bumpMap[bump] > bumpMap[max] ? bump : max), + undefined, + ) ?? 'none'; + yield `| ${pkg.name} | ${pkg.path} | **${maxBump}** | \`v${pkg.version}\` |`; + } + }, + ); + + return output; +} + +async function main() { + const [diffRef = 'origin/master'] = process.argv.slice(2); + const changedFiles = await listChangedFiles(diffRef); + const packages = await listPackages(); + + const changesets = await parseChangesets(changedFiles); + const changedPackages = await listChangedPackages(changedFiles, packages); + + process.stderr.write( + JSON.stringify( + { + changesets, + changedPackages, + }, + null, + 2, + ), + ); + + const summary = formatSummary(changedPackages, changesets); + process.stdout.write(summary); +} + +main().catch(error => { + console.error(error.stack); + process.exit(1); +}); From 231fee736b15f24bd040848c9b43ee808e8fe0e6 Mon Sep 17 00:00:00 2001 From: Phil Gore Date: Mon, 28 Feb 2022 23:16:42 -0600 Subject: [PATCH 019/225] updating tasks and tech-insights to work together Signed-off-by: Phil Gore --- .changeset/fresh-dodos-rush.md | 5 + .changeset/shiny-seas-yell.md | 9 + packages/backend-tasks/api-report.md | 1 + .../src/tasks/PluginTaskSchedulerImpl.test.ts | 69 +++++ .../src/tasks/PluginTaskSchedulerImpl.ts | 33 +++ packages/backend-tasks/src/tasks/types.ts | 11 + packages/backend/src/plugins/techInsights.ts | 1 + .../package.json | 3 +- plugins/tech-insights-backend/api-report.md | 3 + plugins/tech-insights-backend/package.json | 6 +- .../service/fact/FactRetrieverEngine.test.ts | 242 +++++++++++------- .../src/service/fact/FactRetrieverEngine.ts | 57 +++-- .../src/service/fact/FactRetrieverRegistry.ts | 4 +- .../src/service/router.test.ts | 18 +- .../src/service/techInsightsContextBuilder.ts | 4 + plugins/tech-insights-node/api-report.md | 2 + plugins/tech-insights-node/src/facts.ts | 10 +- yarn.lock | 14 +- 18 files changed, 358 insertions(+), 134 deletions(-) create mode 100644 .changeset/fresh-dodos-rush.md create mode 100644 .changeset/shiny-seas-yell.md diff --git a/.changeset/fresh-dodos-rush.md b/.changeset/fresh-dodos-rush.md new file mode 100644 index 0000000000..b71c2ad055 --- /dev/null +++ b/.changeset/fresh-dodos-rush.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights-node': patch +--- + +Adds an optional timeout to fact retriever registrations to stop a task if it runs too long. diff --git a/.changeset/shiny-seas-yell.md b/.changeset/shiny-seas-yell.md new file mode 100644 index 0000000000..7d5c27520c --- /dev/null +++ b/.changeset/shiny-seas-yell.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-tech-insights-backend': minor +--- + +Updates tech-insights to use backend-tasks as the Fact Retriever scheduler. + +``` + +``` diff --git a/packages/backend-tasks/api-report.md b/packages/backend-tasks/api-report.md index 0093616d8f..9f02088bdf 100644 --- a/packages/backend-tasks/api-report.md +++ b/packages/backend-tasks/api-report.md @@ -15,6 +15,7 @@ export interface PluginTaskScheduler { scheduleTask( task: TaskScheduleDefinition & TaskInvocationDefinition, ): Promise; + triggerTask(id: string): Promise; } // @public diff --git a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts index 646a2ce737..95a9729018 100644 --- a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts +++ b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts @@ -20,6 +20,9 @@ import { Duration } from 'luxon'; import waitForExpect from 'wait-for-expect'; import { migrateBackendTasks } from '../database/migrateBackendTasks'; import { PluginTaskSchedulerImpl } from './PluginTaskSchedulerImpl'; +import { ConflictError, NotFoundError } from '@backstage/errors'; + +jest.useFakeTimers(); describe('PluginTaskManagerImpl', () => { const databases = TestDatabases.create({ @@ -80,6 +83,72 @@ describe('PluginTaskManagerImpl', () => { ); }); + describe('triggerTask', () => { + it.each(databases.eachSupportedId())( + 'can manually trigger a task, %p', + async databaseId => { + const { manager } = await init(databaseId); + + const fn = jest.fn(); + await manager.scheduleTask({ + id: 'task1', + timeout: Duration.fromMillis(5000), + frequency: Duration.fromObject({ years: 1 }), + initialDelay: Duration.fromObject({ years: 1 }), + fn, + }); + + await manager.triggerTask('task1'); + jest.advanceTimersByTime(5000); + + await waitForExpect(() => { + expect(fn).toBeCalled(); + }); + }, + 60_000, + ); + + it.each(databases.eachSupportedId())( + 'cant trigger a non-existent task, %p', + async databaseId => { + const { manager } = await init(databaseId); + + const fn = jest.fn(); + await manager.scheduleTask({ + id: 'task1', + timeout: Duration.fromMillis(5000), + frequency: Duration.fromObject({ years: 1 }), + fn, + }); + + await expect(() => manager.triggerTask('task2')).rejects.toThrow( + NotFoundError, + ); + }, + 60_000, + ); + + it.each(databases.eachSupportedId())( + 'cant trigger a running task, %p', + async databaseId => { + const { manager } = await init(databaseId); + + const fn = jest.fn(); + await manager.scheduleTask({ + id: 'task1', + timeout: Duration.fromMillis(5000), + frequency: Duration.fromObject({ years: 1 }), + fn, + }); + + await expect(() => manager.triggerTask('task1')).rejects.toThrow( + ConflictError, + ); + }, + 60_000, + ); + }); + // This is just to test the wrapper code; most of the actual tests are in // TaskWorker.test.ts describe('createScheduledTaskRunner', () => { diff --git a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts index 8c3166b441..81e0f1e461 100644 --- a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts +++ b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts @@ -24,6 +24,8 @@ import { TaskScheduleDefinition, } from './types'; import { validateId } from './util'; +import { DB_TASKS_TABLE, DbTasksRow } from '../database/tables'; +import { ConflictError, NotFoundError } from '@backstage/errors'; /** * Implements the actual task management. @@ -34,6 +36,37 @@ export class PluginTaskSchedulerImpl implements PluginTaskScheduler { private readonly logger: Logger, ) {} + async triggerTask(id: string): Promise { + const knex = await this.databaseFactory(); + + // get the task definition + const rows = await knex(DB_TASKS_TABLE) + .select({ + currentRun: 'current_run_ticket', + id: 'id', + }) + .where('id', '=', id); + + // validate the task exists + if (rows.length <= 0 || rows[0].id !== id) { + throw new NotFoundError(`Task ${id} does not exist`); + } + + if (rows[0].currentRun) { + throw new ConflictError(`task ${id} is currently running`); + } + + const updatedRows = await knex(DB_TASKS_TABLE) + .where('id', '=', id) + .whereNull('current_run_ticket') + .update({ + next_run_start_at: knex.fn.now(), + }); + if (updatedRows < 1) { + throw new ConflictError(`task ${id} is currently running`); + } + } + async scheduleTask( task: TaskScheduleDefinition & TaskInvocationDefinition, ): Promise { diff --git a/packages/backend-tasks/src/tasks/types.ts b/packages/backend-tasks/src/tasks/types.ts index acd651adcf..513e0dbae4 100644 --- a/packages/backend-tasks/src/tasks/types.ts +++ b/packages/backend-tasks/src/tasks/types.ts @@ -134,6 +134,17 @@ export interface TaskRunner { * @public */ export interface PluginTaskScheduler { + /** + * Manually triggers a task by ID. + * + * If the task doesn't exist, a NotFoundError is thrown. + * If the task is currently running, a ConflictError is thrown. + * + * @param id - The task ID + * + */ + triggerTask(id: string): Promise; + /** * Schedules a task function for coordinated exclusive invocation across * workers. This convenience method performs both the scheduling and diff --git a/packages/backend/src/plugins/techInsights.ts b/packages/backend/src/plugins/techInsights.ts index e249b1db9b..94ce27656a 100644 --- a/packages/backend/src/plugins/techInsights.ts +++ b/packages/backend/src/plugins/techInsights.ts @@ -36,6 +36,7 @@ export default async function createPlugin( logger: env.logger, config: env.config, database: env.database, + scheduler: env.scheduler, discovery: env.discovery, factRetrievers: [ createFactRetrieverRegistration({ diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index 39162b54e1..1f4b7de469 100644 --- a/plugins/tech-insights-backend-module-jsonfc/package.json +++ b/plugins/tech-insights-backend-module-jsonfc/package.json @@ -46,8 +46,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", - "@types/node-cron": "^3.0.1" + "@backstage/cli": "^0.16.1-next.0" }, "files": [ "dist" diff --git a/plugins/tech-insights-backend/api-report.md b/plugins/tech-insights-backend/api-report.md index d56e3c8082..08c6e82385 100644 --- a/plugins/tech-insights-backend/api-report.md +++ b/plugins/tech-insights-backend/api-report.md @@ -14,6 +14,7 @@ import { FactRetrieverRegistration } from '@backstage/plugin-tech-insights-node' import { Logger } from 'winston'; import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; +import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { TechInsightCheck } from '@backstage/plugin-tech-insights-node'; import { TechInsightsStore } from '@backstage/plugin-tech-insights-node'; @@ -94,6 +95,8 @@ export interface TechInsightsOptions< factRetrievers: FactRetrieverRegistration[]; // (undocumented) logger: Logger; + // (undocumented) + scheduler: PluginTaskScheduler; } // (No @packageDocumentation comment for this package) diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 65ccb137c7..475e5e98ae 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -35,6 +35,7 @@ }, "dependencies": { "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-tasks": "^0.2.2-next.0", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", @@ -47,7 +48,6 @@ "knex": "^1.0.2", "lodash": "^4.17.21", "luxon": "^2.0.2", - "node-cron": "^3.0.0", "semver": "^7.3.5", "uuid": "^8.3.2", "winston": "^3.2.1", @@ -57,9 +57,9 @@ "@backstage/backend-test-utils": "^0.1.23-next.0", "@backstage/cli": "^0.16.1-next.0", "@types/supertest": "^2.0.8", - "@types/node-cron": "^3.0.0", "@types/semver": "^7.3.8", - "supertest": "^6.1.3" + "supertest": "^6.1.3", + "wait-for-expect": "^3.0.2" }, "files": [ "dist", diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts index 1b5dad1f33..a019c533a1 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts @@ -22,20 +22,16 @@ import { } from '@backstage/plugin-tech-insights-node'; import { FactRetrieverRegistry } from './FactRetrieverRegistry'; import { FactRetrieverEngine } from './FactRetrieverEngine'; -import { getVoidLogger } from '@backstage/backend-common'; +import { DatabaseManager, getVoidLogger } from '@backstage/backend-common'; import { ConfigReader } from '@backstage/config'; -import { schedule } from 'node-cron'; +import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils'; +import { TaskScheduler } from '@backstage/backend-tasks'; +import waitForExpect from 'wait-for-expect'; -jest.mock('node-cron', () => { - const original = jest.requireActual('node-cron'); - return { - ...original, - schedule: jest.fn(), - }; -}); +jest.useFakeTimers(); const testFactRetriever: FactRetriever = { - id: 'test-factretriever', + id: 'test_factretriever', version: '0.0.1', entityFilter: [{ kind: 'component' }], schema: { @@ -59,94 +55,162 @@ const testFactRetriever: FactRetriever = { ]; }), }; -const cadence = '1 * * * *'; +const defaultCadence = '1 * * * *'; describe('FactRetrieverEngine', () => { let engine: FactRetrieverEngine; - let factSchemaAssertionCallback: ( + type FactSchemaAssertionCallback = ( factSchemaDefinition: FactSchemaDefinition, ) => void; - let factInsertionAssertionCallback: (facts: TechInsightFact[]) => void; - const mockRepository: TechInsightsStore = { - insertFacts: (facts: TechInsightFact[]) => { - factInsertionAssertionCallback(facts); - return Promise.resolve(); - }, - insertFactSchema: (def: FactSchemaDefinition) => { - factSchemaAssertionCallback(def); - return Promise.resolve(); - }, - } as unknown as TechInsightsStore; + jest.setTimeout(15000); - const mockFactRetrieverRegistry: FactRetrieverRegistry = { - listRetrievers(): FactRetriever[] { - return [testFactRetriever]; - }, - listRegistrations(): FactRetrieverRegistration[] { - return [{ factRetriever: testFactRetriever, cadence }]; - }, - } as unknown as FactRetrieverRegistry; + type FactInsertionAssertionCallback = ({ + facts, + id, + }: { + id: string; + facts: TechInsightFact[]; + }) => void; - const defaultEngineConfig = { - factRetrieverContext: { - logger: getVoidLogger(), - config: ConfigReader.fromConfigs([]), - discovery: { - getBaseUrl: (_: string) => Promise.resolve('http://mock.url'), - getExternalBaseUrl: (_: string) => Promise.resolve('http://mock.url'), + function createMockRepository( + insertCallback: FactInsertionAssertionCallback, + assertionCallback: FactSchemaAssertionCallback, + ): TechInsightsStore { + return { + async insertFacts(f: { facts: TechInsightFact[]; id: string }) { + insertCallback(f); }, - }, - factRetrieverRegistry: mockFactRetrieverRegistry, - repository: mockRepository, - }; - - it('Should update fact retriever schemas on initialization', async () => { - factSchemaAssertionCallback = ({ id, schema, version, entityFilter }) => { - expect(id).toEqual('test-factretriever'); - expect(version).toEqual('0.0.1'); - expect(entityFilter).toEqual([{ kind: 'component' }]); - expect(schema).toEqual({ - testnumberfact: { - type: 'integer', - description: '', - }, - }); - }; - - engine = await FactRetrieverEngine.create(defaultEngineConfig); - }); - it('Should insert facts when scheduled step is run', async () => { - (schedule as jest.Mock).mockImplementation( - (cronCadence: string, retrieverAction: Function) => { - return { - cadence: cronCadence, - triggerScheduledJobNow: retrieverAction, - }; + async insertFactSchema(def: FactSchemaDefinition) { + assertionCallback(def); }, - ); + } as unknown as TechInsightsStore; + } - factSchemaAssertionCallback = () => {}; - factInsertionAssertionCallback = facts => { - expect(facts).toHaveLength(1); - expect(facts[0]).toEqual({ - ref: 'test-factretriever', - entity: { - namespace: 'a', - kind: 'a', - name: 'a', - }, - facts: { - testnumberfact: 1, - }, - }); - }; - engine = await FactRetrieverEngine.create(defaultEngineConfig); - engine.schedule(); - const job: any = engine.getJob('test-factretriever'); - job.triggerScheduledJobNow(); - expect(job.cadence!).toEqual(cadence); - expect(testFactRetriever.handler).toHaveBeenCalledWith( - expect.objectContaining({ entityFilter: testFactRetriever.entityFilter }), - ); + function createMockFactRetrieverRegistry( + cadence?: string, + factRetriever?: FactRetriever, + ): FactRetrieverRegistry { + const cron = cadence ?? defaultCadence; + const retriever: FactRetriever = factRetriever + ? factRetriever + : testFactRetriever; + return { + listRetrievers(): FactRetriever[] { + return [retriever]; + }, + listRegistrations(): FactRetrieverRegistration[] { + return [{ factRetriever: retriever, cadence: cron }]; + }, + get: (_: string): FactRetrieverRegistration => { + return { factRetriever: retriever, cadence: cron }; + }, + } as unknown as FactRetrieverRegistry; + } + + const databases = TestDatabases.create({ + ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], }); + + async function createEngine( + databaseId: TestDatabaseId, + insert: FactInsertionAssertionCallback, + schema: FactSchemaAssertionCallback, + cadence?: string, + factRetriever?: FactRetriever, + ): Promise { + const knex = await databases.init(databaseId); + const databaseManager: Partial = { + forPlugin: (_: string) => ({ + getClient: async () => knex, + }), + }; + const manager = databaseManager as DatabaseManager; + const scheduler = new TaskScheduler(manager, getVoidLogger()); + return await FactRetrieverEngine.create({ + factRetrieverContext: { + logger: getVoidLogger(), + config: ConfigReader.fromConfigs([]), + discovery: { + getBaseUrl: (_: string) => Promise.resolve('http://mock.url'), + getExternalBaseUrl: (_: string) => Promise.resolve('http://mock.url'), + }, + }, + factRetrieverRegistry: createMockFactRetrieverRegistry( + cadence, + factRetriever, + ), + repository: createMockRepository(insert, schema), + scheduler: scheduler.forPlugin('tech-insights'), + }); + } + + it.each(databases.eachSupportedId())( + 'Should update fact retriever schemas on initialization', + async databaseId => { + const schemaAssertionCallback = jest.fn((def: FactSchemaDefinition) => { + expect(def.id).toEqual('test_factretriever'); + expect(def.version).toEqual('0.0.1'); + expect(def.entityFilter).toEqual([{ kind: 'component' }]); + expect(def.schema).toEqual({ + testnumberfact: { + type: 'integer', + description: '', + }, + }); + }); + + engine = await createEngine( + databaseId, + () => {}, + schemaAssertionCallback, + ); + expect(schemaAssertionCallback).toBeCalled(); + }, + 60_000, + ); + + it.each(databases.eachSupportedId())( + 'Should insert facts when scheduled step is run', + async databaseId => { + function insertCallback({ + facts, + id, + }: { + id: string; + facts: TechInsightFact[]; + }) { + expect(facts).toHaveLength(1); + expect(id).toEqual('test_factretriever'); + expect(facts[0]).toEqual({ + entity: { + namespace: 'a', + kind: 'a', + name: 'a', + }, + facts: { + testnumberfact: 1, + }, + }); + } + + engine = await createEngine(databaseId, insertCallback, () => {}); + engine.schedule(); + const job: FactRetrieverRegistration = engine.getJobRegistration( + testFactRetriever.id, + ); + expect(job.cadence!!).toEqual(defaultCadence); + + await engine.triggerJob(job.factRetriever.id); + jest.advanceTimersByTime(5000); + + await waitForExpect(() => { + expect(testFactRetriever.handler).toHaveBeenCalledWith( + expect.objectContaining({ + entityFilter: testFactRetriever.entityFilter, + }), + ); + }); + }, + 60_000, + ); }); diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts index 85e7e680c7..9f9c91b4ee 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts @@ -17,12 +17,14 @@ import { FactLifecycle, FactRetriever, FactRetrieverContext, + FactRetrieverRegistration, TechInsightFact, TechInsightsStore, } from '@backstage/plugin-tech-insights-node'; import { FactRetrieverRegistry } from './FactRetrieverRegistry'; -import { schedule, validate, ScheduledTask } from 'node-cron'; import { Logger } from 'winston'; +import { PluginTaskScheduler } from '@backstage/backend-tasks'; +import { Duration } from 'luxon'; function randomDailyCron() { const rand = (min: number, max: number) => @@ -37,26 +39,30 @@ function duration(startTimestamp: [number, number]): string { } export class FactRetrieverEngine { - private scheduledJobs = new Map(); - constructor( private readonly repository: TechInsightsStore, private readonly factRetrieverRegistry: FactRetrieverRegistry, private readonly factRetrieverContext: FactRetrieverContext, private readonly logger: Logger, + private readonly scheduler: PluginTaskScheduler, private readonly defaultCadence?: string, + private readonly defaultTimeout?: Duration, ) {} static async create({ repository, factRetrieverRegistry, factRetrieverContext, + scheduler, defaultCadence, + defaultTimeout, }: { repository: TechInsightsStore; factRetrieverRegistry: FactRetrieverRegistry; factRetrieverContext: FactRetrieverContext; + scheduler: PluginTaskScheduler; defaultCadence?: string; + defaultTimeout?: Duration; }) { await Promise.all( factRetrieverRegistry @@ -69,39 +75,46 @@ export class FactRetrieverEngine { factRetrieverRegistry, factRetrieverContext, factRetrieverContext.logger, + scheduler, defaultCadence, + defaultTimeout, ); } schedule() { const registrations = this.factRetrieverRegistry.listRegistrations(); const newRegs: string[] = []; - registrations.forEach(registration => { - const { factRetriever, cadence, lifecycle } = registration; - if (!this.scheduledJobs.has(factRetriever.id)) { - const cronExpression = - cadence || this.defaultCadence || randomDailyCron(); - if (!validate(cronExpression)) { - this.logger.warn( - `Validation failed for cron expression ${cronExpression} when trying to schedule fact retriever ${factRetriever.id}`, - ); - return; - } - const job = schedule( - cronExpression, - this.createFactRetrieverHandler(factRetriever, lifecycle), + registrations.forEach(async registration => { + const { factRetriever, cadence, lifecycle, timeout } = registration; + const cronExpression = + cadence || this.defaultCadence || randomDailyCron(); + const timeLimit = + timeout || this.defaultTimeout || Duration.fromObject({ minutes: 5 }); + try { + await this.scheduler.scheduleTask({ + id: factRetriever.id, + frequency: { cron: cronExpression }, + fn: this.createFactRetrieverHandler(factRetriever, lifecycle), + timeout: timeLimit, + }); + } catch (e) { + throw new Error( + `Failed to schedule fact retriever ${factRetriever.id}, ${e}`, ); - this.scheduledJobs.set(factRetriever.id, job); - newRegs.push(factRetriever.id); } + newRegs.push(factRetriever.id); }); this.logger.info( - `Scheduled ${newRegs.length} fact retrievers to Fact Retriever Engine.`, + `Scheduled ${newRegs.length} fact retrievers to Fact Retriever Engine through Backend Tasks`, ); } - getJob(ref: string) { - return this.scheduledJobs.get(ref); + getJobRegistration(ref: string): FactRetrieverRegistration { + return this.factRetrieverRegistry.get(ref); + } + + async triggerJob(ref: string): Promise { + return this.scheduler.triggerTask(ref); } private createFactRetrieverHandler( diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts index 719f8bf504..b122f52f0a 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts @@ -39,14 +39,14 @@ export class FactRetrieverRegistry { this.retrievers.set(registration.factRetriever.id, registration); } - get(retrieverReference: string): FactRetriever { + get(retrieverReference: string): FactRetrieverRegistration { const registration = this.retrievers.get(retrieverReference); if (!registration) { throw new NotFoundError( `Tech insight fact retriever with identifier '${retrieverReference}' is not registered.`, ); } - return registration.factRetriever; + return registration; } listRetrievers(): FactRetriever[] { diff --git a/plugins/tech-insights-backend/src/service/router.test.ts b/plugins/tech-insights-backend/src/service/router.test.ts index 0b7d3b7c45..2ddc5aeebb 100644 --- a/plugins/tech-insights-backend/src/service/router.test.ts +++ b/plugins/tech-insights-backend/src/service/router.test.ts @@ -15,7 +15,7 @@ */ import { buildTechInsightsContext } from './techInsightsContextBuilder'; import { createRouter } from './router'; -import { getVoidLogger } from '@backstage/backend-common'; +import { DatabaseManager, getVoidLogger } from '@backstage/backend-common'; import { ConfigReader } from '@backstage/config'; import request from 'supertest'; import express from 'express'; @@ -23,6 +23,7 @@ import { PersistenceContext } from './persistence/persistenceContext'; import { TechInsightsStore } from '@backstage/plugin-tech-insights-node'; import { DateTime } from 'luxon'; import { Knex } from 'knex'; +import { TaskScheduler } from '@backstage/backend-tasks'; describe('Tech Insights router tests', () => { let app: express.Express; @@ -44,6 +45,18 @@ describe('Tech Insights router tests', () => { }); beforeAll(async () => { + const databaseManager: Partial = { + forPlugin: () => ({ + getClient: () => { + return Promise.resolve({ + migrate: { + latest: () => {}, + }, + }) as unknown as Promise; + }, + }), + }; + const manager = databaseManager as DatabaseManager; const techInsightsContext = await buildTechInsightsContext({ database: { getClient: () => { @@ -56,6 +69,9 @@ describe('Tech Insights router tests', () => { }, logger: getVoidLogger(), factRetrievers: [], + scheduler: new TaskScheduler(manager, getVoidLogger()).forPlugin( + 'tech-insights', + ), config: ConfigReader.fromConfigs([]), discovery: { getBaseUrl: (_: string) => Promise.resolve('http://mock.url'), diff --git a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts index 75e24b7c06..5e599ab664 100644 --- a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts +++ b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts @@ -33,6 +33,7 @@ import { PersistenceContext, } from './persistence/persistenceContext'; import { CheckResult } from '@backstage/plugin-tech-insights-common'; +import { PluginTaskScheduler } from '@backstage/backend-tasks'; /** * @public @@ -61,6 +62,7 @@ export interface TechInsightsOptions< config: Config; discovery: PluginEndpointDiscovery; database: PluginDatabaseManager; + scheduler: PluginTaskScheduler; } /** @@ -101,6 +103,7 @@ export const buildTechInsightsContext = async < discovery, database, logger, + scheduler, } = options; const factRetrieverRegistry = new FactRetrieverRegistry(factRetrievers); @@ -111,6 +114,7 @@ export const buildTechInsightsContext = async < ); const factRetrieverEngine = await FactRetrieverEngine.create({ + scheduler, repository: persistenceContext.techInsightsStore, factRetrieverRegistry, factRetrieverContext: { diff --git a/plugins/tech-insights-node/api-report.md b/plugins/tech-insights-node/api-report.md index 45426587e3..7d9f2e00b7 100644 --- a/plugins/tech-insights-node/api-report.md +++ b/plugins/tech-insights-node/api-report.md @@ -6,6 +6,7 @@ import { CheckResult } from '@backstage/plugin-tech-insights-common'; import { Config } from '@backstage/config'; import { DateTime } from 'luxon'; +import { Duration } from 'luxon'; import { DurationLike } from 'luxon'; import { Logger } from 'winston'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; @@ -66,6 +67,7 @@ export type FactRetrieverContext = { export type FactRetrieverRegistration = { factRetriever: FactRetriever; cadence?: string; + timeout?: Duration; lifecycle?: FactLifecycle; }; diff --git a/plugins/tech-insights-node/src/facts.ts b/plugins/tech-insights-node/src/facts.ts index 24b6764ba4..a5df4bae85 100644 --- a/plugins/tech-insights-node/src/facts.ts +++ b/plugins/tech-insights-node/src/facts.ts @@ -13,8 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -import { DateTime, DurationLike } from 'luxon'; +import { DateTime, Duration, DurationLike } from 'luxon'; import { Config } from '@backstage/config'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { Logger } from 'winston'; @@ -243,6 +242,13 @@ export type FactRetrieverRegistration = { */ cadence?: string; + /** + * A duration to determine how long the fact retriever should be allowed to run, + * defaults to 5 minutes. + * + */ + timeout?: Duration; + /** * Fact lifecycle definition * diff --git a/yarn.lock b/yarn.lock index 09d924c5bb..ea2b0fcf94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6259,11 +6259,6 @@ resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node-cron@^3.0.0", "@types/node-cron@^3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/node-cron/-/node-cron-3.0.1.tgz#e01a874d4c2aa1a02ebc64cfd1cd8ebdbad7a996" - integrity sha512-BkMHHonDT8NJUE/pQ3kr5v2GLDKm5or9btLBoBx4F2MB2cuqYC748LYMDC55VlrLI5qZZv+Qgc3m4P3dBPcmeg== - "@types/node-fetch@^2.5.0", "@types/node-fetch@^2.5.12", "@types/node-fetch@^2.5.7": version "2.5.12" resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" @@ -17997,7 +17992,7 @@ modify-values@^1.0.0: resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -moment-timezone@^0.5.31, moment-timezone@^0.5.x: +moment-timezone@^0.5.x: version "0.5.34" resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c" integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg== @@ -18272,13 +18267,6 @@ node-cache@^5.1.2: dependencies: clone "2.x" -node-cron@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/node-cron/-/node-cron-3.0.0.tgz#b33252803e430f9cd8590cf85738efa1497a9522" - integrity sha512-DDwIvvuCwrNiaU7HEivFDULcaQualDv7KoNlB/UU1wPW0n1tDEmBJKhEIE6DlF2FuoOHcNbLJ8ITL2Iv/3AWmA== - dependencies: - moment-timezone "^0.5.31" - node-dir@^0.1.17: version "0.1.17" resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" From ab008a0988683793ec2a4677bdf337bd398a2fe8 Mon Sep 17 00:00:00 2001 From: Phil Gore Date: Mon, 21 Mar 2022 11:32:56 -0500 Subject: [PATCH 020/225] update changesets for updated packages Signed-off-by: Phil Gore --- .changeset/eleven-days-brush.md | 5 +++++ .changeset/seven-apricots-sell.md | 5 +++++ .changeset/shiny-seas-yell.md | 4 ---- 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 .changeset/eleven-days-brush.md create mode 100644 .changeset/seven-apricots-sell.md diff --git a/.changeset/eleven-days-brush.md b/.changeset/eleven-days-brush.md new file mode 100644 index 0000000000..d628b068fc --- /dev/null +++ b/.changeset/eleven-days-brush.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-tasks': minor +--- + +Adds the ability to manually trigger tasks which are registered diff --git a/.changeset/seven-apricots-sell.md b/.changeset/seven-apricots-sell.md new file mode 100644 index 0000000000..977bdd7d49 --- /dev/null +++ b/.changeset/seven-apricots-sell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights-backend-module-jsonfc': patch +--- + +Removes node-cron from tech-insights to utilize backend-tasks diff --git a/.changeset/shiny-seas-yell.md b/.changeset/shiny-seas-yell.md index 7d5c27520c..d1dd2dcb29 100644 --- a/.changeset/shiny-seas-yell.md +++ b/.changeset/shiny-seas-yell.md @@ -3,7 +3,3 @@ --- Updates tech-insights to use backend-tasks as the Fact Retriever scheduler. - -``` - -``` From 9053686daa6f246b1be1a96b95df6a7b0fef4f46 Mon Sep 17 00:00:00 2001 From: Phil Gore Date: Mon, 21 Mar 2022 12:21:26 -0500 Subject: [PATCH 021/225] updates for readability Signed-off-by: Phil Gore --- .../src/tasks/PluginTaskSchedulerImpl.ts | 13 ++----- .../src/service/router.test.ts | 35 +++++++++---------- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts index 81e0f1e461..7a206712be 100644 --- a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts +++ b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts @@ -39,23 +39,16 @@ export class PluginTaskSchedulerImpl implements PluginTaskScheduler { async triggerTask(id: string): Promise { const knex = await this.databaseFactory(); - // get the task definition + // check if task exists const rows = await knex(DB_TASKS_TABLE) - .select({ - currentRun: 'current_run_ticket', - id: 'id', - }) + .count({ count: '*' }) .where('id', '=', id); // validate the task exists - if (rows.length <= 0 || rows[0].id !== id) { + if (rows[0].count !== 1) { throw new NotFoundError(`Task ${id} does not exist`); } - if (rows[0].currentRun) { - throw new ConflictError(`task ${id} is currently running`); - } - const updatedRows = await knex(DB_TASKS_TABLE) .where('id', '=', id) .whereNull('current_run_ticket') diff --git a/plugins/tech-insights-backend/src/service/router.test.ts b/plugins/tech-insights-backend/src/service/router.test.ts index 2ddc5aeebb..df2d471516 100644 --- a/plugins/tech-insights-backend/src/service/router.test.ts +++ b/plugins/tech-insights-backend/src/service/router.test.ts @@ -15,7 +15,11 @@ */ import { buildTechInsightsContext } from './techInsightsContextBuilder'; import { createRouter } from './router'; -import { DatabaseManager, getVoidLogger } from '@backstage/backend-common'; +import { + DatabaseManager, + getVoidLogger, + PluginDatabaseManager, +} from '@backstage/backend-common'; import { ConfigReader } from '@backstage/config'; import request from 'supertest'; import express from 'express'; @@ -45,28 +49,21 @@ describe('Tech Insights router tests', () => { }); beforeAll(async () => { + const pluginDatabase: PluginDatabaseManager = { + getClient: () => { + return Promise.resolve({ + migrate: { + latest: () => {}, + }, + }) as unknown as Promise; + }, + }; const databaseManager: Partial = { - forPlugin: () => ({ - getClient: () => { - return Promise.resolve({ - migrate: { - latest: () => {}, - }, - }) as unknown as Promise; - }, - }), + forPlugin: () => pluginDatabase, }; const manager = databaseManager as DatabaseManager; const techInsightsContext = await buildTechInsightsContext({ - database: { - getClient: () => { - return Promise.resolve({ - migrate: { - latest: () => {}, - }, - }) as unknown as Promise; - }, - }, + database: pluginDatabase, logger: getVoidLogger(), factRetrievers: [], scheduler: new TaskScheduler(manager, getVoidLogger()).forPlugin( From 221c979a235d0c56639d9088d7eb25deabc63740 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 22 Mar 2022 14:49:05 +0100 Subject: [PATCH 022/225] workflows: add new changeset feedback automation Signed-off-by: Patrik Oldsberg --- .../workflows/automate_changeset_feedback.yml | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/automate_changeset_feedback.yml diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml new file mode 100644 index 0000000000..492ef976dd --- /dev/null +++ b/.github/workflows/automate_changeset_feedback.yml @@ -0,0 +1,82 @@ +name: Automate Changeset Feedback +on: + pull_request: + types: + - opened + - synchronize + +permissions: + issues: write + +jobs: + feedback: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ github.head_ref }} + + - name: fetch base + run: git fetch origin ${{ github.base_ref }} + + - name: Generate Feedback + id: generate-feedback + run: | + wget -O generate.js https://raw.githubusercontent.com/backstage/backstage/master/scripts/generate-changeset-feedback.js 1>&2 + node generate.js origin/${{ github.base_ref }} > feedback.txt + + - name: Post Feedback + uses: actions/github-script@v5 + env: + ISSUE_NUMBER: ${{ github.event.pull_request.number }} + with: + script: | + const owner = "backstage"; + const repo = "backstage"; + const marker = ""; + const feedback = require('fs').readFileSync('feedback.txt', 'utf8'); + const issue_number = Number(process.env.ISSUE_NUMBER); + const body = feedback.trim() ? feedback + marker : undefined + + const existingComments = await github.paginate(github.rest.issues.listComments, { + owner, + repo, + issue_number, + }); + + const existingComment = existingComments.find((c) => + c.user.login === "github-actions[bot]" && + c.body.includes(marker) + ); + + if (existingComment) { + if (body) { + if (existingComment.body !== body) { + console.log(`updating existing comment in #${issue_number}`); + await github.rest.issues.updateComment({ + repo, + owner, + comment_id: existingComment.id, + body, + }); + } else { + console.log(`skipped update of identical comment in #${issue_number}`); + } + } else { + console.log(`removing comment from #${issue_number}`); + await github.rest.issues.deleteComment({ + repo, + owner, + comment_id: existingComment.id, + body, + }); + } + } else if (body) { + console.log(`creating comment for #${issue_number}`); + await github.rest.issues.createComment({ + repo, + owner, + issue_number, + body, + }); + } From 48cf43b2c46f154816fe7c4a135f9cd5a9bb7a98 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 22 Mar 2022 14:58:24 +0100 Subject: [PATCH 023/225] workflows/automate_changeset_feedback: avoid forks + comment on script download Signed-off-by: Patrik Oldsberg --- .github/workflows/automate_changeset_feedback.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index 492ef976dd..468606709b 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -10,6 +10,7 @@ permissions: jobs: feedback: + if: github.repository == 'backstage/backstage' # prevent running on forks runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -19,6 +20,7 @@ jobs: - name: fetch base run: git fetch origin ${{ github.base_ref }} + # We avoid using the in-source script since this workflow has elevated permissions that we don't want to expose - name: Generate Feedback id: generate-feedback run: | From c1cfe0db301acb3661cb9d432f08804b195a12ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 22 Mar 2022 16:21:37 +0100 Subject: [PATCH 024/225] review updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/shiny-seas-yell.md | 15 +++- .../src/tasks/PluginTaskSchedulerImpl.ts | 8 +-- plugins/tech-insights-backend/README.md | 1 + plugins/tech-insights-backend/api-report.md | 8 +-- .../service/fact/FactRetrieverEngine.test.ts | 2 +- .../src/service/fact/FactRetrieverEngine.ts | 70 ++++++++++--------- .../src/service/fact/createFactRetriever.ts | 9 ++- .../src/service/techInsightsContextBuilder.ts | 2 +- 8 files changed, 65 insertions(+), 50 deletions(-) diff --git a/.changeset/shiny-seas-yell.md b/.changeset/shiny-seas-yell.md index d1dd2dcb29..9a939701d8 100644 --- a/.changeset/shiny-seas-yell.md +++ b/.changeset/shiny-seas-yell.md @@ -2,4 +2,17 @@ '@backstage/plugin-tech-insights-backend': minor --- -Updates tech-insights to use backend-tasks as the Fact Retriever scheduler. +This backend now uses the `@backstage/backend-tasks` package facilities for scheduling fact retrievers. + +**BREAKING**: The `buildTechInsightsContext` function now takes an additional field in its options argument: `scheduler`. This is an instance of `PluginTaskScheduler`, which can be found in your backend initialization code's `env`. + +```diff + const builder = buildTechInsightsContext({ + logger: env.logger, + config: env.config, + database: env.database, + discovery: env.discovery, ++ scheduler: env.scheduler, + factRetrievers: [ /* ... */ ], + }); +``` diff --git a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts index 7a206712be..44f46e7237 100644 --- a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts +++ b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.ts @@ -41,11 +41,9 @@ export class PluginTaskSchedulerImpl implements PluginTaskScheduler { // check if task exists const rows = await knex(DB_TASKS_TABLE) - .count({ count: '*' }) + .select(knex.raw(1)) .where('id', '=', id); - - // validate the task exists - if (rows[0].count !== 1) { + if (rows.length !== 1) { throw new NotFoundError(`Task ${id} does not exist`); } @@ -56,7 +54,7 @@ export class PluginTaskSchedulerImpl implements PluginTaskScheduler { next_run_start_at: knex.fn.now(), }); if (updatedRows < 1) { - throw new ConflictError(`task ${id} is currently running`); + throw new ConflictError(`Task ${id} is currently running`); } } diff --git a/plugins/tech-insights-backend/README.md b/plugins/tech-insights-backend/README.md index 60c3477efe..55653e097b 100644 --- a/plugins/tech-insights-backend/README.md +++ b/plugins/tech-insights-backend/README.md @@ -35,6 +35,7 @@ export default async function createPlugin( config: env.config, database: env.database, discovery: env.discovery, + scheduler: env.scheduler, factRetrievers: [], // Fact retrievers registrations you want tech insights to use }); diff --git a/plugins/tech-insights-backend/api-report.md b/plugins/tech-insights-backend/api-report.md index 08c6e82385..210aa50af9 100644 --- a/plugins/tech-insights-backend/api-report.md +++ b/plugins/tech-insights-backend/api-report.md @@ -27,11 +27,9 @@ export const buildTechInsightsContext: < ) => Promise>; // @public -export function createFactRetrieverRegistration({ - cadence, - factRetriever, - lifecycle, -}: FactRetrieverRegistrationOptions): FactRetrieverRegistration; +export function createFactRetrieverRegistration( + options: FactRetrieverRegistrationOptions, +): FactRetrieverRegistration; // @public export function createRouter< diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts index a019c533a1..1881606ede 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts @@ -194,7 +194,7 @@ describe('FactRetrieverEngine', () => { } engine = await createEngine(databaseId, insertCallback, () => {}); - engine.schedule(); + await engine.schedule(); const job: FactRetrieverRegistration = engine.getJobRegistration( testFactRetriever.id, ); diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts index 9f9c91b4ee..25e7610809 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts @@ -39,7 +39,7 @@ function duration(startTimestamp: [number, number]): string { } export class FactRetrieverEngine { - constructor( + private constructor( private readonly repository: TechInsightsStore, private readonly factRetrieverRegistry: FactRetrieverRegistry, private readonly factRetrieverContext: FactRetrieverContext, @@ -49,14 +49,7 @@ export class FactRetrieverEngine { private readonly defaultTimeout?: Duration, ) {} - static async create({ - repository, - factRetrieverRegistry, - factRetrieverContext, - scheduler, - defaultCadence, - defaultTimeout, - }: { + static async create(options: { repository: TechInsightsStore; factRetrieverRegistry: FactRetrieverRegistry; factRetrieverContext: FactRetrieverContext; @@ -64,6 +57,15 @@ export class FactRetrieverEngine { defaultCadence?: string; defaultTimeout?: Duration; }) { + const { + repository, + factRetrieverRegistry, + factRetrieverContext, + scheduler, + defaultCadence, + defaultTimeout, + } = options; + await Promise.all( factRetrieverRegistry .listRetrievers() @@ -81,31 +83,35 @@ export class FactRetrieverEngine { ); } - schedule() { + async schedule() { const registrations = this.factRetrieverRegistry.listRegistrations(); const newRegs: string[] = []; - registrations.forEach(async registration => { - const { factRetriever, cadence, lifecycle, timeout } = registration; - const cronExpression = - cadence || this.defaultCadence || randomDailyCron(); - const timeLimit = - timeout || this.defaultTimeout || Duration.fromObject({ minutes: 5 }); - try { - await this.scheduler.scheduleTask({ - id: factRetriever.id, - frequency: { cron: cronExpression }, - fn: this.createFactRetrieverHandler(factRetriever, lifecycle), - timeout: timeLimit, - }); - } catch (e) { - throw new Error( - `Failed to schedule fact retriever ${factRetriever.id}, ${e}`, - ); - } - newRegs.push(factRetriever.id); - }); + + await Promise.all( + registrations.map(async registration => { + const { factRetriever, cadence, lifecycle, timeout } = registration; + const cronExpression = + cadence || this.defaultCadence || randomDailyCron(); + const timeLimit = + timeout || this.defaultTimeout || Duration.fromObject({ minutes: 5 }); + try { + await this.scheduler.scheduleTask({ + id: factRetriever.id, + frequency: { cron: cronExpression }, + fn: this.createFactRetrieverHandler(factRetriever, lifecycle), + timeout: timeLimit, + }); + newRegs.push(factRetriever.id); + } catch (e) { + this.logger.warn( + `Failed to schedule fact retriever ${factRetriever.id}, ${e}`, + ); + } + }), + ); + this.logger.info( - `Scheduled ${newRegs.length} fact retrievers to Fact Retriever Engine through Backend Tasks`, + `Scheduled ${newRegs.length}/${registrations.length} fact retrievers into the tech-insights engine`, ); } @@ -114,7 +120,7 @@ export class FactRetrieverEngine { } async triggerJob(ref: string): Promise { - return this.scheduler.triggerTask(ref); + await this.scheduler.triggerTask(ref); } private createFactRetrieverHandler( diff --git a/plugins/tech-insights-backend/src/service/fact/createFactRetriever.ts b/plugins/tech-insights-backend/src/service/fact/createFactRetriever.ts index bd85b3c873..de49888e1b 100644 --- a/plugins/tech-insights-backend/src/service/fact/createFactRetriever.ts +++ b/plugins/tech-insights-backend/src/service/fact/createFactRetriever.ts @@ -61,11 +61,10 @@ export type FactRetrieverRegistrationOptions = { * \{ maxItems: 7 \} -- This fact retriever will leave 7 newest items in the database when it is run * */ -export function createFactRetrieverRegistration({ - cadence, - factRetriever, - lifecycle, -}: FactRetrieverRegistrationOptions): FactRetrieverRegistration { +export function createFactRetrieverRegistration( + options: FactRetrieverRegistrationOptions, +): FactRetrieverRegistration { + const { cadence, factRetriever, lifecycle } = options; return { cadence, factRetriever, diff --git a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts index 5e599ab664..4f8f2ed928 100644 --- a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts +++ b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts @@ -124,7 +124,7 @@ export const buildTechInsightsContext = async < }, }); - factRetrieverEngine.schedule(); + await factRetrieverEngine.schedule(); if (factCheckerFactory) { const factChecker = factCheckerFactory.construct( From 95284162d6f0230f74b621c4b9bf4a9b3494b1a6 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 3 Mar 2022 17:56:37 +0000 Subject: [PATCH 025/225] permission-common: introduce ResourcePermission type Signed-off-by: Mike Lewis --- .changeset/unlucky-schools-heal.md | 5 ++++ .changeset/warm-mangos-compete.md | 5 ++++ .../permission-backend/src/service/router.ts | 6 +++++ plugins/permission-common/api-report.md | 17 +++++++++---- plugins/permission-common/src/types/index.ts | 2 ++ .../permission-common/src/types/permission.ts | 24 +++++++++++++++---- 6 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 .changeset/unlucky-schools-heal.md create mode 100644 .changeset/warm-mangos-compete.md diff --git a/.changeset/unlucky-schools-heal.md b/.changeset/unlucky-schools-heal.md new file mode 100644 index 0000000000..1f2930b29a --- /dev/null +++ b/.changeset/unlucky-schools-heal.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-backend': patch +--- + +Add more specific check for policies which return conditional decisions for non-resource permissions. diff --git a/.changeset/warm-mangos-compete.md b/.changeset/warm-mangos-compete.md new file mode 100644 index 0000000000..3ad688c372 --- /dev/null +++ b/.changeset/warm-mangos-compete.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-common': patch +--- + +Add more specific `Permission` types diff --git a/plugins/permission-backend/src/service/router.ts b/plugins/permission-backend/src/service/router.ts index 48f7b1a2e5..51e3ce960e 100644 --- a/plugins/permission-backend/src/service/router.ts +++ b/plugins/permission-backend/src/service/router.ts @@ -109,6 +109,12 @@ const handleRequest = async ( }; } + if (!('resourceType' in request.permission)) { + throw new Error( + `Conditional decision returned from permission policy for non-resource permission ${request.permission.name}`, + ); + } + if (decision.resourceType !== request.permission.resourceType) { throw new Error( `Invalid resource conditions returned from permission policy for permission ${request.permission.name}`, diff --git a/plugins/permission-common/api-report.md b/plugins/permission-common/api-report.md index db05766dc0..fcd1e1251b 100644 --- a/plugins/permission-common/api-report.md +++ b/plugins/permission-common/api-report.md @@ -53,6 +53,12 @@ export enum AuthorizeResult { DENY = 'DENY', } +// @public +export type BasicPermission = { + name: string; + attributes: PermissionAttributes; +}; + // @public export type DiscoveryApi = { getBaseUrl(pluginId: string): Promise; @@ -81,11 +87,7 @@ export type NotCriteria = { }; // @public -export type Permission = { - name: string; - attributes: PermissionAttributes; - resourceType?: string; -}; +export type Permission = BasicPermission | ResourcePermission; // @public export type PermissionAttributes = { @@ -122,4 +124,9 @@ export type PermissionCriteria = | AnyOfCriteria | NotCriteria | TQuery; + +// @public +export type ResourcePermission = BasicPermission & { + resourceType: T; +}; ``` diff --git a/plugins/permission-common/src/types/index.ts b/plugins/permission-common/src/types/index.ts index fa98de73f1..2fdb553f09 100644 --- a/plugins/permission-common/src/types/index.ts +++ b/plugins/permission-common/src/types/index.ts @@ -29,8 +29,10 @@ export type { } from './api'; export type { DiscoveryApi } from './discovery'; export type { + BasicPermission, PermissionAttributes, Permission, PermissionAuthorizer, + ResourcePermission, AuthorizeRequestOptions, } from './permission'; diff --git a/plugins/permission-common/src/types/permission.ts b/plugins/permission-common/src/types/permission.ts index 16934d8771..0777e24eb4 100644 --- a/plugins/permission-common/src/types/permission.ts +++ b/plugins/permission-common/src/types/permission.ts @@ -28,6 +28,8 @@ export type PermissionAttributes = { /** * A permission that can be checked through authorization. * + * @remarks + * * Permissions are the "what" part of authorization, the action to be performed. This may be reading * an entity from the catalog, executing a software template, or any other action a plugin author * may wish to protect. @@ -36,7 +38,13 @@ export type PermissionAttributes = { * evaluated using an authorization policy. * @public */ -export type Permission = { +export type Permission = BasicPermission | ResourcePermission; + +/** + * A standard {@link Permission} with no additional capabilities or restrictions. + * @public + */ +export type BasicPermission = { /** * The name of the permission. */ @@ -47,13 +55,19 @@ export type Permission = { * all by name. */ attributes: PermissionAttributes; +}; + +/** + * ResourcePermissions are {@link Permission}s that can be authorized based on + * characteristics of a resource such a catalog entity. + * @public + */ +export type ResourcePermission = BasicPermission & { /** - * Some permissions can be authorized based on characteristics of a resource - * such a catalog entity. For these permissions, the resourceType field - * denotes the type of the resource whose resourceRef should be passed when + * Denotes the type of the resource whose resourceRef should be passed when * authorizing. */ - resourceType?: string; + resourceType: T; }; /** From 899d38ea68e23e6c0250c11182855f8c1a15ba5c Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 3 Mar 2022 18:05:23 +0000 Subject: [PATCH 026/225] permission-common: add utility types for creating and refining Permissions Signed-off-by: Mike Lewis --- .changeset/warm-mangos-compete.md | 4 +- .../permission-backend/src/service/router.ts | 3 +- plugins/permission-common/api-report.md | 19 +++++++ .../src/PermissionClient.test.ts | 20 ++++---- .../src/permissions/createPermission.ts | 50 +++++++++++++++++++ .../src/permissions/index.ts | 1 + .../permission-common/src/permissions/util.ts | 19 ++++++- .../src/ServerPermissionClient.test.ts | 7 ++- 8 files changed, 106 insertions(+), 17 deletions(-) create mode 100644 plugins/permission-common/src/permissions/createPermission.ts diff --git a/.changeset/warm-mangos-compete.md b/.changeset/warm-mangos-compete.md index 3ad688c372..3215b36d22 100644 --- a/.changeset/warm-mangos-compete.md +++ b/.changeset/warm-mangos-compete.md @@ -2,4 +2,6 @@ '@backstage/plugin-permission-common': patch --- -Add more specific `Permission` types +- Add more specific `Permission` types. +- Add `createPermission` helper to infer the appropriate type for some permission input. +- Add `isResourcePermission` helper to refine Permissions to ResourcePermissions. diff --git a/plugins/permission-backend/src/service/router.ts b/plugins/permission-backend/src/service/router.ts index 51e3ce960e..4b5b8f5abb 100644 --- a/plugins/permission-backend/src/service/router.ts +++ b/plugins/permission-backend/src/service/router.ts @@ -35,6 +35,7 @@ import { Identified, AuthorizeRequest, AuthorizeResponse, + isResourcePermission, } from '@backstage/plugin-permission-common'; import { ApplyConditionsRequestEntry, @@ -109,7 +110,7 @@ const handleRequest = async ( }; } - if (!('resourceType' in request.permission)) { + if (!isResourcePermission(request.permission)) { throw new Error( `Conditional decision returned from permission policy for non-resource permission ${request.permission.name}`, ); diff --git a/plugins/permission-common/api-report.md b/plugins/permission-common/api-report.md index fcd1e1251b..d58d89f9cc 100644 --- a/plugins/permission-common/api-report.md +++ b/plugins/permission-common/api-report.md @@ -59,6 +59,19 @@ export type BasicPermission = { attributes: PermissionAttributes; }; +// @public +export function createPermission(input: { + name: string; + attributes: PermissionAttributes; + resourceType: TResourceType; +}): ResourcePermission; + +// @public +export function createPermission(input: { + name: string; + attributes: PermissionAttributes; +}): BasicPermission; + // @public export type DiscoveryApi = { getBaseUrl(pluginId: string): Promise; @@ -78,6 +91,12 @@ export function isDeletePermission(permission: Permission): boolean; // @public export function isReadPermission(permission: Permission): boolean; +// @public +export function isResourcePermission( + permission: Permission, + resourceType?: T, +): permission is ResourcePermission; + // @public export function isUpdatePermission(permission: Permission): boolean; diff --git a/plugins/permission-common/src/PermissionClient.test.ts b/plugins/permission-common/src/PermissionClient.test.ts index 0e57f618b7..4f66bcffd3 100644 --- a/plugins/permission-common/src/PermissionClient.test.ts +++ b/plugins/permission-common/src/PermissionClient.test.ts @@ -20,7 +20,7 @@ import { ConfigReader } from '@backstage/config'; import { PermissionClient } from './PermissionClient'; import { AuthorizeQuery, AuthorizeResult, Identified } from './types/api'; import { DiscoveryApi } from './types/discovery'; -import { Permission } from './types/permission'; +import { createPermission } from './permissions'; const server = setupServer(); const token = 'fake-token'; @@ -36,16 +36,11 @@ const client: PermissionClient = new PermissionClient({ config: new ConfigReader({ permission: { enabled: true } }), }); -const mockPermission: Permission = { +const mockPermission = createPermission({ name: 'test.permission', attributes: {}, - resourceType: 'test-resource', -}; - -const mockAuthorizeQuery = { - permission: mockPermission, - resourceRef: 'foo', -}; + resourceType: 'foo', +}); describe('PermissionClient', () => { beforeAll(() => server.listen({ onUnhandledRequest: 'error' })); @@ -53,6 +48,11 @@ describe('PermissionClient', () => { afterEach(() => server.resetHandlers()); describe('authorize', () => { + const mockAuthorizeQuery = { + permission: mockPermission, + resourceRef: 'foo:bar', + }; + const mockAuthorizeHandler = jest.fn((req, res, { json }: RestContext) => { const responses = req.body.items.map((a: Identified) => ({ id: a.id, @@ -84,7 +84,7 @@ describe('PermissionClient', () => { items: [ expect.objectContaining({ permission: mockPermission, - resourceRef: 'foo', + resourceRef: 'foo:bar', }), ], }); diff --git a/plugins/permission-common/src/permissions/createPermission.ts b/plugins/permission-common/src/permissions/createPermission.ts new file mode 100644 index 0000000000..b3e918ac85 --- /dev/null +++ b/plugins/permission-common/src/permissions/createPermission.ts @@ -0,0 +1,50 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + BasicPermission, + Permission, + PermissionAttributes, + ResourcePermission, +} from '../types'; + +/** + * Utility function for creating a valid {@link ResourcePermission}, inferring + * the appropriate type and resource type parameter. + * + * @public + */ +export function createPermission(input: { + name: string; + attributes: PermissionAttributes; + resourceType: TResourceType; +}): ResourcePermission; +/** + * Utility function for creating a valid {@link BasicPermission}. + * + * @public + */ +export function createPermission(input: { + name: string; + attributes: PermissionAttributes; +}): BasicPermission; +export function createPermission(input: { + name: string; + attributes: PermissionAttributes; + resourceType?: string; +}): Permission { + return input; +} diff --git a/plugins/permission-common/src/permissions/index.ts b/plugins/permission-common/src/permissions/index.ts index 736d898539..acb15e45cf 100644 --- a/plugins/permission-common/src/permissions/index.ts +++ b/plugins/permission-common/src/permissions/index.ts @@ -15,3 +15,4 @@ */ export * from './util'; +export { createPermission } from './createPermission'; diff --git a/plugins/permission-common/src/permissions/util.ts b/plugins/permission-common/src/permissions/util.ts index 188609f4ae..2843d97419 100644 --- a/plugins/permission-common/src/permissions/util.ts +++ b/plugins/permission-common/src/permissions/util.ts @@ -14,7 +14,24 @@ * limitations under the License. */ -import { Permission } from '../types'; +import { Permission, ResourcePermission } from '../types'; + +/** + * Check if a given permission is a {@link ResourcePermission}. When + * `resourceType` is supplied as the second parameter, also checks if + * the permission has the specified resource type. + * @public + */ +export function isResourcePermission( + permission: Permission, + resourceType?: T, +): permission is ResourcePermission { + if (!('resourceType' in permission)) { + return false; + } + + return !resourceType || permission.resourceType === resourceType; +} /** * Check if a given permission is related to a create action. diff --git a/plugins/permission-node/src/ServerPermissionClient.test.ts b/plugins/permission-node/src/ServerPermissionClient.test.ts index 53300061a0..f2302f8f0d 100644 --- a/plugins/permission-node/src/ServerPermissionClient.test.ts +++ b/plugins/permission-node/src/ServerPermissionClient.test.ts @@ -16,10 +16,10 @@ import { ServerPermissionClient } from './ServerPermissionClient'; import { - Permission, Identified, AuthorizeQuery, AuthorizeResult, + createPermission, } from '@backstage/plugin-permission-common'; import { ConfigReader } from '@backstage/config'; import { @@ -48,11 +48,10 @@ const discovery: PluginEndpointDiscovery = { return mockBaseUrl; }, }; -const testPermission: Permission = { +const testPermission = createPermission({ name: 'test.permission', attributes: {}, - resourceType: 'test-resource', -}; +}); const config = new ConfigReader({ permission: { enabled: true }, backend: { auth: { keys: [{ secret: 'a-secret-key' }] } }, From ada44467338dddf6f08df07059bbecba3af85ae6 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 3 Mar 2022 18:39:06 +0000 Subject: [PATCH 027/225] permission-common: use createCondition helper when creating conditions Signed-off-by: Mike Lewis --- .changeset/afraid-boats-check.md | 6 ++++ .changeset/metal-queens-cheat.md | 6 ++++ .../src/search/DefaultCatalogCollator.ts | 4 ++- .../search/DefaultCatalogCollatorFactory.ts | 4 ++- plugins/catalog-common/api-report.md | 17 ++++++----- plugins/catalog-common/src/permissions.ts | 30 +++++++++---------- plugins/jenkins-common/api-report.md | 4 +-- plugins/jenkins-common/src/permissions.ts | 6 ++-- plugins/techdocs-backend/package.json | 1 + .../src/search/DefaultTechDocsCollator.ts | 4 ++- .../search/DefaultTechDocsCollatorFactory.ts | 4 ++- 11 files changed, 54 insertions(+), 32 deletions(-) create mode 100644 .changeset/afraid-boats-check.md create mode 100644 .changeset/metal-queens-cheat.md diff --git a/.changeset/afraid-boats-check.md b/.changeset/afraid-boats-check.md new file mode 100644 index 0000000000..d36fda4e03 --- /dev/null +++ b/.changeset/afraid-boats-check.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-techdocs-backend': patch +--- + +Specify type of `visibilityPermission` property on collators and collator factories. diff --git a/.changeset/metal-queens-cheat.md b/.changeset/metal-queens-cheat.md new file mode 100644 index 0000000000..b2d152b3a9 --- /dev/null +++ b/.changeset/metal-queens-cheat.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-common': patch +'@backstage/plugin-jenkins-common': patch +--- + +Use `createPermission` helper when creating permissions. diff --git a/plugins/catalog-backend/src/search/DefaultCatalogCollator.ts b/plugins/catalog-backend/src/search/DefaultCatalogCollator.ts index ac9a33bf62..bb44670443 100644 --- a/plugins/catalog-backend/src/search/DefaultCatalogCollator.ts +++ b/plugins/catalog-backend/src/search/DefaultCatalogCollator.ts @@ -33,6 +33,7 @@ import { catalogEntityReadPermission, CatalogEntityDocument, } from '@backstage/plugin-catalog-common'; +import { Permission } from '@backstage/plugin-permission-common'; /** * @public @@ -45,7 +46,8 @@ export class DefaultCatalogCollator { protected filter?: GetEntitiesRequest['filter']; protected readonly catalogClient: CatalogApi; public readonly type: string = 'software-catalog'; - public readonly visibilityPermission = catalogEntityReadPermission; + public readonly visibilityPermission: Permission = + catalogEntityReadPermission; protected tokenManager: TokenManager; static fromConfig( diff --git a/plugins/catalog-backend/src/search/DefaultCatalogCollatorFactory.ts b/plugins/catalog-backend/src/search/DefaultCatalogCollatorFactory.ts index 4d28559c82..98bcfcd8d4 100644 --- a/plugins/catalog-backend/src/search/DefaultCatalogCollatorFactory.ts +++ b/plugins/catalog-backend/src/search/DefaultCatalogCollatorFactory.ts @@ -34,6 +34,7 @@ import { catalogEntityReadPermission, CatalogEntityDocument, } from '@backstage/plugin-catalog-common'; +import { Permission } from '@backstage/plugin-permission-common'; import { Readable } from 'stream'; /** @public */ @@ -49,7 +50,8 @@ export type DefaultCatalogCollatorFactoryOptions = { /** @public */ export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory { public readonly type: string = 'software-catalog'; - public readonly visibilityPermission = catalogEntityReadPermission; + public readonly visibilityPermission: Permission = + catalogEntityReadPermission; private locationTemplate: string; private filter?: GetEntitiesRequest['filter']; diff --git a/plugins/catalog-common/api-report.md b/plugins/catalog-common/api-report.md index a73cae9994..12ad6af751 100644 --- a/plugins/catalog-common/api-report.md +++ b/plugins/catalog-common/api-report.md @@ -3,14 +3,15 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BasicPermission } from '@backstage/plugin-permission-common'; import { IndexableDocument } from '@backstage/search-common'; -import { Permission } from '@backstage/plugin-permission-common'; +import { ResourcePermission } from '@backstage/plugin-permission-common'; // @alpha -export const catalogEntityCreatePermission: Permission; +export const catalogEntityCreatePermission: BasicPermission; // @alpha -export const catalogEntityDeletePermission: Permission; +export const catalogEntityDeletePermission: ResourcePermission<'catalog-entity'>; // @public export interface CatalogEntityDocument extends IndexableDocument { @@ -29,19 +30,19 @@ export interface CatalogEntityDocument extends IndexableDocument { } // @alpha -export const catalogEntityReadPermission: Permission; +export const catalogEntityReadPermission: ResourcePermission<'catalog-entity'>; // @alpha -export const catalogEntityRefreshPermission: Permission; +export const catalogEntityRefreshPermission: ResourcePermission<'catalog-entity'>; // @alpha -export const catalogLocationCreatePermission: Permission; +export const catalogLocationCreatePermission: BasicPermission; // @alpha -export const catalogLocationDeletePermission: Permission; +export const catalogLocationDeletePermission: BasicPermission; // @alpha -export const catalogLocationReadPermission: Permission; +export const catalogLocationReadPermission: BasicPermission; // @alpha export const RESOURCE_TYPE_CATALOG_ENTITY = 'catalog-entity'; diff --git a/plugins/catalog-common/src/permissions.ts b/plugins/catalog-common/src/permissions.ts index 31a8f32118..51a15bb85e 100644 --- a/plugins/catalog-common/src/permissions.ts +++ b/plugins/catalog-common/src/permissions.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Permission } from '@backstage/plugin-permission-common'; +import { createPermission } from '@backstage/plugin-permission-common'; /** * Permission resource type which corresponds to catalog entities. @@ -32,13 +32,13 @@ export const RESOURCE_TYPE_CATALOG_ENTITY = 'catalog-entity'; * exist in the catalog — both in the frontend and in API responses. * @alpha */ -export const catalogEntityReadPermission: Permission = { +export const catalogEntityReadPermission = createPermission({ name: 'catalog.entity.read', attributes: { action: 'read', }, resourceType: RESOURCE_TYPE_CATALOG_ENTITY, -}; +}); /** * This permission is used to authorize actions that involve creating a new @@ -46,38 +46,38 @@ export const catalogEntityReadPermission: Permission = { * catalog. * @alpha */ -export const catalogEntityCreatePermission: Permission = { +export const catalogEntityCreatePermission = createPermission({ name: 'catalog.entity.create', attributes: { action: 'create', }, -}; +}); /** * This permission is used to designate actions that involve removing one or * more entities from the catalog. * @alpha */ -export const catalogEntityDeletePermission: Permission = { +export const catalogEntityDeletePermission = createPermission({ name: 'catalog.entity.delete', attributes: { action: 'delete', }, resourceType: RESOURCE_TYPE_CATALOG_ENTITY, -}; +}); /** * This permission is used to designate refreshing one or more entities from the * catalog. * @alpha */ -export const catalogEntityRefreshPermission: Permission = { +export const catalogEntityRefreshPermission = createPermission({ name: 'catalog.entity.refresh', attributes: { action: 'update', }, resourceType: RESOURCE_TYPE_CATALOG_ENTITY, -}; +}); /** * This permission is used to designate actions that involve reading one or more @@ -87,33 +87,33 @@ export const catalogEntityRefreshPermission: Permission = { * not exist in the catalog — both in the frontend and in API responses. * @alpha */ -export const catalogLocationReadPermission: Permission = { +export const catalogLocationReadPermission = createPermission({ name: 'catalog.location.read', attributes: { action: 'read', }, -}; +}); /** * This permission is used to designate actions that involve creating catalog * locations. * @alpha */ -export const catalogLocationCreatePermission: Permission = { +export const catalogLocationCreatePermission = createPermission({ name: 'catalog.location.create', attributes: { action: 'create', }, -}; +}); /** * This permission is used to designate actions that involve deleting locations * from the catalog. * @alpha */ -export const catalogLocationDeletePermission: Permission = { +export const catalogLocationDeletePermission = createPermission({ name: 'catalog.location.delete', attributes: { action: 'delete', }, -}; +}); diff --git a/plugins/jenkins-common/api-report.md b/plugins/jenkins-common/api-report.md index 7b0d3759ba..771161e1cb 100644 --- a/plugins/jenkins-common/api-report.md +++ b/plugins/jenkins-common/api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { Permission } from '@backstage/plugin-permission-common'; +import { ResourcePermission } from '@backstage/plugin-permission-common'; // @public -export const jenkinsExecutePermission: Permission; +export const jenkinsExecutePermission: ResourcePermission<'catalog-entity'>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/jenkins-common/src/permissions.ts b/plugins/jenkins-common/src/permissions.ts index 2fa8c14232..5ca5ec6adf 100644 --- a/plugins/jenkins-common/src/permissions.ts +++ b/plugins/jenkins-common/src/permissions.ts @@ -14,17 +14,17 @@ * limitations under the License. */ import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; -import { Permission } from '@backstage/plugin-permission-common'; +import { createPermission } from '@backstage/plugin-permission-common'; /** * This permission is used to determine if a user is allowed to execute an action in jenkins plugin * * @public */ -export const jenkinsExecutePermission: Permission = { +export const jenkinsExecutePermission = createPermission({ name: 'jenkins.execute', attributes: { action: 'update', }, resourceType: RESOURCE_TYPE_CATALOG_ENTITY, -}; +}); diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 7d512656c9..b278f8919a 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -41,6 +41,7 @@ "@backstage/errors": "^1.0.0", "@backstage/integration": "^1.0.1-next.0", "@backstage/plugin-catalog-common": "^1.0.1-next.0", + "@backstage/plugin-permission-common": "^0.5.3", "@backstage/plugin-search-common": "^0.3.3-next.0", "@backstage/plugin-techdocs-node": "^1.0.1-next.0", "@types/express": "^4.17.6", diff --git a/plugins/techdocs-backend/src/search/DefaultTechDocsCollator.ts b/plugins/techdocs-backend/src/search/DefaultTechDocsCollator.ts index 7529eaca66..bf647322cf 100644 --- a/plugins/techdocs-backend/src/search/DefaultTechDocsCollator.ts +++ b/plugins/techdocs-backend/src/search/DefaultTechDocsCollator.ts @@ -30,6 +30,7 @@ import { Logger } from 'winston'; import pLimit from 'p-limit'; import { Config } from '@backstage/config'; import { catalogEntityReadPermission } from '@backstage/plugin-catalog-common'; +import { Permission } from '@backstage/plugin-permission-common'; import { CatalogApi, CatalogClient, @@ -73,7 +74,8 @@ type EntityInfo = { */ export class DefaultTechDocsCollator { public readonly type: string = 'techdocs'; - public readonly visibilityPermission = catalogEntityReadPermission; + public readonly visibilityPermission: Permission = + catalogEntityReadPermission; private constructor( private readonly legacyPathCasing: boolean, diff --git a/plugins/techdocs-backend/src/search/DefaultTechDocsCollatorFactory.ts b/plugins/techdocs-backend/src/search/DefaultTechDocsCollatorFactory.ts index 41d637e319..915b027854 100644 --- a/plugins/techdocs-backend/src/search/DefaultTechDocsCollatorFactory.ts +++ b/plugins/techdocs-backend/src/search/DefaultTechDocsCollatorFactory.ts @@ -31,6 +31,7 @@ import { } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; import { catalogEntityReadPermission } from '@backstage/plugin-catalog-common'; +import { Permission } from '@backstage/plugin-permission-common'; import { DocumentCollatorFactory } from '@backstage/plugin-search-common'; import { TechDocsDocument } from '@backstage/plugin-techdocs-node'; import unescape from 'lodash/unescape'; @@ -74,7 +75,8 @@ type EntityInfo = { */ export class DefaultTechDocsCollatorFactory implements DocumentCollatorFactory { public readonly type: string = 'techdocs'; - public readonly visibilityPermission = catalogEntityReadPermission; + public readonly visibilityPermission: Permission = + catalogEntityReadPermission; private discovery: PluginEndpointDiscovery; private locationTemplate: string; From 9cbb270aef79d7b642a51906df58343b4a97b3d3 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Fri, 4 Mar 2022 14:51:53 +0000 Subject: [PATCH 028/225] permissions: add a discriminator type to Permission Signed-off-by: Mike Lewis --- .changeset/pink-horses-cough.md | 7 +++ .changeset/unlucky-schools-heal.md | 3 +- .../PermissionApi/MockPermissionApi.test.ts | 10 +++- .../src/service/router.test.ts | 57 ++++++++++++++++++- .../permission-backend/src/service/router.ts | 41 ++++++++----- plugins/permission-common/api-report.md | 23 +++++--- .../src/permissions/createPermission.ts | 21 ++++++- plugins/permission-common/src/types/index.ts | 1 + .../permission-common/src/types/permission.ts | 48 +++++++++------- .../src/components/PermissionedRoute.test.tsx | 5 +- .../src/hooks/usePermission.test.tsx | 11 ++-- .../service/AuthorizedSearchEngine.test.ts | 17 +++--- 12 files changed, 181 insertions(+), 63 deletions(-) create mode 100644 .changeset/pink-horses-cough.md diff --git a/.changeset/pink-horses-cough.md b/.changeset/pink-horses-cough.md new file mode 100644 index 0000000000..dc49ba6b83 --- /dev/null +++ b/.changeset/pink-horses-cough.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-permission-react': patch +'@backstage/plugin-search-backend': patch +'@backstage/test-utils': patch +--- + +Use `createPermission` helper to create valid `Permission` objects in test suites. diff --git a/.changeset/unlucky-schools-heal.md b/.changeset/unlucky-schools-heal.md index 1f2930b29a..55daf4e65c 100644 --- a/.changeset/unlucky-schools-heal.md +++ b/.changeset/unlucky-schools-heal.md @@ -2,4 +2,5 @@ '@backstage/plugin-permission-backend': patch --- -Add more specific check for policies which return conditional decisions for non-resource permissions. +- Add more specific check for policies which return conditional decisions for non-resource permissions. +- Refine permission validation in authorize endpoint to differentiate between `BasicPermission` and `ResourcePermission` instances. diff --git a/packages/test-utils/src/testUtils/apis/PermissionApi/MockPermissionApi.test.ts b/packages/test-utils/src/testUtils/apis/PermissionApi/MockPermissionApi.test.ts index 88e7c995f5..b617d89cc4 100644 --- a/packages/test-utils/src/testUtils/apis/PermissionApi/MockPermissionApi.test.ts +++ b/packages/test-utils/src/testUtils/apis/PermissionApi/MockPermissionApi.test.ts @@ -16,7 +16,7 @@ import { AuthorizeResult, - Permission, + createPermission, } from '@backstage/plugin-permission-common'; import { MockPermissionApi } from './MockPermissionApi'; @@ -25,7 +25,9 @@ describe('MockPermissionApi', () => { const api = new MockPermissionApi(); await expect( - api.authorize({ permission: { name: 'permission.1' } as Permission }), + api.authorize({ + permission: createPermission({ name: 'permission.1', attributes: {} }), + }), ).resolves.toEqual({ result: AuthorizeResult.ALLOW }); }); @@ -37,7 +39,9 @@ describe('MockPermissionApi', () => { ); await expect( - api.authorize({ permission: { name: 'permission.2' } as Permission }), + api.authorize({ + permission: createPermission({ name: 'permission.2', attributes: {} }), + }), ).resolves.toEqual({ result: AuthorizeResult.DENY }); }); }); diff --git a/plugins/permission-backend/src/service/router.test.ts b/plugins/permission-backend/src/service/router.test.ts index b98b32b01c..6c6ad14af4 100644 --- a/plugins/permission-backend/src/service/router.test.ts +++ b/plugins/permission-backend/src/service/router.test.ts @@ -110,6 +110,7 @@ describe('createRouter', () => { { id: '123', permission: { + type: 'basic', name: 'test.permission1', attributes: {}, }, @@ -117,6 +118,7 @@ describe('createRouter', () => { { id: '234', permission: { + type: 'basic', name: 'test.permission2', attributes: {}, }, @@ -129,6 +131,7 @@ describe('createRouter', () => { expect(policy.handle).toHaveBeenCalledWith( { permission: { + type: 'basic', name: 'test.permission1', attributes: {}, }, @@ -138,6 +141,7 @@ describe('createRouter', () => { expect(policy.handle).toHaveBeenCalledWith( { permission: { + type: 'basic', name: 'test.permission2', attributes: {}, }, @@ -163,6 +167,7 @@ describe('createRouter', () => { { id: '123', permission: { + type: 'basic', name: 'test.permission', attributes: {}, }, @@ -174,6 +179,7 @@ describe('createRouter', () => { expect(policy.handle).toHaveBeenCalledWith( { permission: { + type: 'basic', name: 'test.permission', attributes: {}, }, @@ -201,6 +207,7 @@ describe('createRouter', () => { { id: '123', permission: { + type: 'resource', name: 'test.permission', resourceType: 'test-resource-1', attributes: {}, @@ -258,6 +265,7 @@ describe('createRouter', () => { { id: '123', permission: { + type: 'resource', name: 'test.permission.1', resourceType: 'test-resource-1', attributes: {}, @@ -267,6 +275,7 @@ describe('createRouter', () => { { id: '234', permission: { + type: 'resource', name: 'test.permission.2', resourceType: 'test-resource-2', attributes: {}, @@ -276,6 +285,7 @@ describe('createRouter', () => { { id: '345', permission: { + type: 'resource', name: 'test.permission.3', resourceType: 'test-resource-1', attributes: {}, @@ -285,6 +295,7 @@ describe('createRouter', () => { { id: '456', permission: { + type: 'resource', name: 'test.permission.4', resourceType: 'test-resource-2', attributes: {}, @@ -384,6 +395,7 @@ describe('createRouter', () => { { id: '123', permission: { + type: 'resource', name: 'test.permission.1', resourceType: 'test-resource-1', attributes: {}, @@ -393,6 +405,7 @@ describe('createRouter', () => { { id: '234', permission: { + type: 'resource', name: 'test.permission.2', resourceType: 'test-resource-2', attributes: {}, @@ -402,6 +415,7 @@ describe('createRouter', () => { { id: '345', permission: { + type: 'resource', name: 'test.permission.3', resourceType: 'test-resource-1', attributes: {}, @@ -411,6 +425,7 @@ describe('createRouter', () => { { id: '456', permission: { + type: 'resource', name: 'test.permission.4', resourceType: 'test-resource-1', attributes: {}, @@ -420,6 +435,7 @@ describe('createRouter', () => { { id: '567', permission: { + type: 'resource', name: 'test.permission.5', resourceType: 'test-resource-2', attributes: {}, @@ -429,6 +445,7 @@ describe('createRouter', () => { { id: '678', permission: { + type: 'basic', name: 'test.permission.6', attributes: {}, }, @@ -519,6 +536,7 @@ describe('createRouter', () => { { id: '123', permission: { + type: 'resource', name: 'test.permission.1', resourceType: 'test-resource-1', attributes: {}, @@ -528,6 +546,7 @@ describe('createRouter', () => { { id: '234', permission: { + type: 'resource', name: 'test.permission.2', resourceType: 'test-resource-2', attributes: {}, @@ -537,6 +556,7 @@ describe('createRouter', () => { { id: '345', permission: { + type: 'resource', name: 'test.permission.3', resourceType: 'test-resource-1', attributes: {}, @@ -546,6 +566,7 @@ describe('createRouter', () => { { id: '456', permission: { + type: 'resource', name: 'test.permission.4', resourceType: 'test-resource-1', attributes: {}, @@ -630,6 +651,7 @@ describe('createRouter', () => { id: '123', resourceRef: 'test/resource', permission: { + type: 'resource', name: 'test.permission', resourceType: 'test-resource-1', attributes: {}, @@ -639,6 +661,7 @@ describe('createRouter', () => { id: '234', resourceRef: 'test/resource', permission: { + type: 'resource', name: 'test.permission', resourceType: 'test-resource-1', attributes: {}, @@ -687,10 +710,37 @@ describe('createRouter', () => { undefined, '', {}, - [{ permission: { name: 'test.permission', attributes: {} } }], - { items: [{ permission: { name: 'test.permission', attributes: {} } }] }, + [ + { + permission: { + type: 'basic', + name: 'test.permission', + attributes: {}, + }, + }, + ], + { + items: [ + { + permission: { + type: 'basic', + name: 'test.permission', + attributes: {}, + }, + }, + ], + }, { items: [{ id: '123' }] }, - { items: [{ id: '123', permission: { name: 'test.permission' } }] }, + { + items: [ + { + id: '123', + permission: { name: 'test.permission', attributes: {} }, + }, + ], + }, + { items: [{ id: '123', permission: { type: 'basic', attributes: {} } }] }, + { items: [{ id: '123', permission: { type: 'basic' } }] }, { items: [ { id: '123', permission: { attributes: { invalid: 'attribute' } } }, @@ -724,6 +774,7 @@ describe('createRouter', () => { { id: '123', permission: { + type: 'resource', name: 'test.permission', resourceType: 'test-resource-1', attributes: {}, diff --git a/plugins/permission-backend/src/service/router.ts b/plugins/permission-backend/src/service/router.ts index 4b5b8f5abb..034ff0b9ed 100644 --- a/plugins/permission-backend/src/service/router.ts +++ b/plugins/permission-backend/src/service/router.ts @@ -36,6 +36,7 @@ import { AuthorizeRequest, AuthorizeResponse, isResourcePermission, + PermissionAttributes, } from '@backstage/plugin-permission-common'; import { ApplyConditionsRequestEntry, @@ -47,23 +48,35 @@ import { memoize } from 'lodash'; import DataLoader from 'dataloader'; import { Config } from '@backstage/config'; +const attributesSchema: z.ZodSchema = z.object({ + action: z + .union([ + z.literal('create'), + z.literal('read'), + z.literal('update'), + z.literal('delete'), + ]) + .optional(), +}); + +const permissionSchema = z.union([ + z.object({ + type: z.literal('basic'), + name: z.string(), + attributes: attributesSchema, + }), + z.object({ + type: z.literal('resource'), + name: z.string(), + attributes: attributesSchema, + resourceType: z.string(), + }), +]); + const querySchema: z.ZodSchema> = z.object({ id: z.string(), resourceRef: z.string().optional(), - permission: z.object({ - name: z.string(), - resourceType: z.string().optional(), - attributes: z.object({ - action: z - .union([ - z.literal('create'), - z.literal('read'), - z.literal('update'), - z.literal('delete'), - ]) - .optional(), - }), - }), + permission: permissionSchema, }); const requestSchema: z.ZodSchema = z.object({ diff --git a/plugins/permission-common/api-report.md b/plugins/permission-common/api-report.md index d58d89f9cc..77ab94b4e3 100644 --- a/plugins/permission-common/api-report.md +++ b/plugins/permission-common/api-report.md @@ -54,10 +54,7 @@ export enum AuthorizeResult { } // @public -export type BasicPermission = { - name: string; - attributes: PermissionAttributes; -}; +export type BasicPermission = PermissionBase<'basic', {}>; // @public export function createPermission(input: { @@ -122,6 +119,14 @@ export interface PermissionAuthorizer { ): Promise; } +// @public +export type PermissionBase = { + name: string; + attributes: PermissionAttributes; +} & { + type: TType; +} & TFields; + // @public export class PermissionClient implements PermissionAuthorizer { constructor(options: { discovery: DiscoveryApi; config: Config }); @@ -145,7 +150,11 @@ export type PermissionCriteria = | TQuery; // @public -export type ResourcePermission = BasicPermission & { - resourceType: T; -}; +export type ResourcePermission = + PermissionBase< + 'resource', + { + resourceType: TResourceType; + } + >; ``` diff --git a/plugins/permission-common/src/permissions/createPermission.ts b/plugins/permission-common/src/permissions/createPermission.ts index b3e918ac85..586403ceb4 100644 --- a/plugins/permission-common/src/permissions/createPermission.ts +++ b/plugins/permission-common/src/permissions/createPermission.ts @@ -41,10 +41,27 @@ export function createPermission(input: { name: string; attributes: PermissionAttributes; }): BasicPermission; -export function createPermission(input: { +export function createPermission({ + name, + attributes, + resourceType, +}: { name: string; attributes: PermissionAttributes; resourceType?: string; }): Permission { - return input; + if (resourceType) { + return { + type: 'resource', + name, + attributes, + resourceType, + }; + } + + return { + type: 'basic', + name, + attributes, + }; } diff --git a/plugins/permission-common/src/types/index.ts b/plugins/permission-common/src/types/index.ts index 2fdb553f09..71ef7695b8 100644 --- a/plugins/permission-common/src/types/index.ts +++ b/plugins/permission-common/src/types/index.ts @@ -33,6 +33,7 @@ export type { PermissionAttributes, Permission, PermissionAuthorizer, + PermissionBase, ResourcePermission, AuthorizeRequestOptions, } from './permission'; diff --git a/plugins/permission-common/src/types/permission.ts b/plugins/permission-common/src/types/permission.ts index 0777e24eb4..ff4e1e1e21 100644 --- a/plugins/permission-common/src/types/permission.ts +++ b/plugins/permission-common/src/types/permission.ts @@ -25,6 +25,23 @@ export type PermissionAttributes = { action?: 'create' | 'read' | 'update' | 'delete'; }; +/** + * Generic type for building {@link Permission} types. + * @public + */ +export type PermissionBase = { + /** + * The name of the permission. + */ + name: string; + /** + * {@link PermissionAttributes} which describe characteristics of the permission, to help + * policy authors make consistent decisions for similar permissions without referring to them + * all by name. + */ + attributes: PermissionAttributes; +} & { type: TType } & TFields; + /** * A permission that can be checked through authorization. * @@ -44,31 +61,24 @@ export type Permission = BasicPermission | ResourcePermission; * A standard {@link Permission} with no additional capabilities or restrictions. * @public */ -export type BasicPermission = { - /** - * The name of the permission. - */ - name: string; - /** - * {@link PermissionAttributes} which describe characteristics of the permission, to help - * policy authors make consistent decisions for similar permissions without referring to them - * all by name. - */ - attributes: PermissionAttributes; -}; +export type BasicPermission = PermissionBase<'basic', {}>; /** * ResourcePermissions are {@link Permission}s that can be authorized based on * characteristics of a resource such a catalog entity. * @public */ -export type ResourcePermission = BasicPermission & { - /** - * Denotes the type of the resource whose resourceRef should be passed when - * authorizing. - */ - resourceType: T; -}; +export type ResourcePermission = + PermissionBase< + 'resource', + { + /** + * Denotes the type of the resource whose resourceRef should be passed when + * authorizing. + */ + resourceType: TResourceType; + } + >; /** * A client interacting with the permission backend can implement this authorizer interface. diff --git a/plugins/permission-react/src/components/PermissionedRoute.test.tsx b/plugins/permission-react/src/components/PermissionedRoute.test.tsx index 3d7d1b7af7..45909b44de 100644 --- a/plugins/permission-react/src/components/PermissionedRoute.test.tsx +++ b/plugins/permission-react/src/components/PermissionedRoute.test.tsx @@ -18,6 +18,7 @@ import React from 'react'; import { PermissionedRoute } from '.'; import { usePermission } from '../hooks'; import { renderInTestApp } from '@backstage/test-utils'; +import { createPermission } from '@backstage/plugin-permission-common'; jest.mock('../hooks', () => ({ usePermission: jest.fn(), @@ -26,10 +27,10 @@ const mockUsePermission = usePermission as jest.MockedFunction< typeof usePermission >; -const permission = { +const permission = createPermission({ name: 'access.something', attributes: { action: 'read' as const }, -}; +}); describe('PermissionedRoute', () => { it('Does not render when loading', async () => { diff --git a/plugins/permission-react/src/hooks/usePermission.test.tsx b/plugins/permission-react/src/hooks/usePermission.test.tsx index d6c5b2ed33..f67f961dd2 100644 --- a/plugins/permission-react/src/hooks/usePermission.test.tsx +++ b/plugins/permission-react/src/hooks/usePermission.test.tsx @@ -17,15 +17,18 @@ import React, { FC } from 'react'; import { render } from '@testing-library/react'; import { usePermission } from './usePermission'; -import { AuthorizeResult } from '@backstage/plugin-permission-common'; +import { + AuthorizeResult, + createPermission, +} from '@backstage/plugin-permission-common'; import { TestApiProvider } from '@backstage/test-utils'; import { PermissionApi, permissionApiRef } from '../apis'; import { SWRConfig } from 'swr'; -const permission = { +const permission = createPermission({ name: 'access.something', - attributes: { action: 'read' as const }, -}; + attributes: { action: 'read' }, +}); const TestComponent: FC = () => { const { loading, allowed, error } = usePermission(permission); diff --git a/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts b/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts index ba63f8484e..76b3cf5184 100644 --- a/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts +++ b/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts @@ -18,6 +18,7 @@ import { ConfigReader } from '@backstage/config'; import { AuthorizeDecision, AuthorizeResult, + createPermission, PermissionAuthorizer, } from '@backstage/plugin-permission-common'; import { @@ -78,28 +79,28 @@ describe('AuthorizedSearchEngine', () => { const defaultTypes: Record = { [typeUsers]: { - visibilityPermission: { + visibilityPermission: createPermission({ name: 'search.users.read', attributes: { action: 'read' }, - }, + }), }, [typeTemplates]: { - visibilityPermission: { + visibilityPermission: createPermission({ name: 'search.templates.read', attributes: { action: 'read' }, - }, + }), }, [typeServices]: { - visibilityPermission: { + visibilityPermission: createPermission({ name: 'search.services.read', attributes: { action: 'read' }, - }, + }), }, [typeGroups]: { - visibilityPermission: { + visibilityPermission: createPermission({ name: 'search.groups.read', attributes: { action: 'read' }, - }, + }), }, }; From 8dc2be1daa80ef31cde17e86812c8063f7ba411c Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Tue, 15 Mar 2022 10:20:13 +0000 Subject: [PATCH 029/225] permission-common: add doc comment to PermissionBase.type Signed-off-by: MT Lewis --- plugins/permission-common/src/types/permission.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/permission-common/src/types/permission.ts b/plugins/permission-common/src/types/permission.ts index ff4e1e1e21..be820f1821 100644 --- a/plugins/permission-common/src/types/permission.ts +++ b/plugins/permission-common/src/types/permission.ts @@ -40,7 +40,15 @@ export type PermissionBase = { * all by name. */ attributes: PermissionAttributes; -} & { type: TType } & TFields; +} & { + /** + * String value indicating the type of the permission (e.g. 'basic', + * 'resource'). The allowed authorization flows in the permission system + * depend on the type. For example, a `resourceRef` should only be provided + * when authorizing permissions of type 'resource'. + */ + type: TType; +} & TFields; /** * A permission that can be checked through authorization. From 9a80cfc76845b52ddca472ff450cc340b465f1c9 Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Tue, 15 Mar 2022 10:22:21 +0000 Subject: [PATCH 030/225] permission-common: add comment explaining separation of type property on PermissionBase Signed-off-by: MT Lewis --- plugins/permission-common/src/types/permission.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/permission-common/src/types/permission.ts b/plugins/permission-common/src/types/permission.ts index be820f1821..ebfdadb48b 100644 --- a/plugins/permission-common/src/types/permission.ts +++ b/plugins/permission-common/src/types/permission.ts @@ -47,7 +47,7 @@ export type PermissionBase = { * depend on the type. For example, a `resourceRef` should only be provided * when authorizing permissions of type 'resource'. */ - type: TType; + type: TType; // Property appears on separate object to prevent expansion of Permission types in api reports. } & TFields; /** From f71db7b1a058088d6e1be99480670b7a5af0620a Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Tue, 15 Mar 2022 10:24:57 +0000 Subject: [PATCH 031/225] permission-react: clean up unneeded 'as const' in test suite Signed-off-by: MT Lewis --- .../permission-react/src/components/PermissionedRoute.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/permission-react/src/components/PermissionedRoute.test.tsx b/plugins/permission-react/src/components/PermissionedRoute.test.tsx index 45909b44de..9159227925 100644 --- a/plugins/permission-react/src/components/PermissionedRoute.test.tsx +++ b/plugins/permission-react/src/components/PermissionedRoute.test.tsx @@ -29,7 +29,7 @@ const mockUsePermission = usePermission as jest.MockedFunction< const permission = createPermission({ name: 'access.something', - attributes: { action: 'read' as const }, + attributes: { action: 'read' }, }); describe('PermissionedRoute', () => { From 5cae9897149e2a84e178353fde6faca88f1a79d1 Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Fri, 18 Mar 2022 14:10:30 +0000 Subject: [PATCH 032/225] test-utils: remove unnecessary changeset Signed-off-by: MT Lewis --- .changeset/pink-horses-cough.md | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .changeset/pink-horses-cough.md diff --git a/.changeset/pink-horses-cough.md b/.changeset/pink-horses-cough.md deleted file mode 100644 index dc49ba6b83..0000000000 --- a/.changeset/pink-horses-cough.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-permission-react': patch -'@backstage/plugin-search-backend': patch -'@backstage/test-utils': patch ---- - -Use `createPermission` helper to create valid `Permission` objects in test suites. From 9f9e709aa6ba295c3f4a09b9e33f1f9d7f8ae59d Mon Sep 17 00:00:00 2001 From: Shailendra Ahir Date: Tue, 22 Mar 2022 23:39:50 +0530 Subject: [PATCH 033/225] #8850 Added renderNode and renderLabel props to support custom node and custom label Signed-off-by: Shailendra Ahir --- .../EntityRelationsGraph/EntityRelationsGraph.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.tsx b/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.tsx index c5c83a54cd..19ca5398a6 100644 --- a/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.tsx +++ b/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.tsx @@ -79,6 +79,8 @@ export const EntityRelationsGraph = ({ relationPairs = ALL_RELATION_PAIRS, className, zoom = 'enabled', + renderNode, + renderLabel, }: { rootEntityNames: CompoundEntityRef | CompoundEntityRef[]; maxDepth?: number; @@ -91,6 +93,8 @@ export const EntityRelationsGraph = ({ relationPairs?: RelationPairs; className?: string; zoom?: 'enabled' | 'disabled' | 'enable-on-click'; + renderNode?: any; + renderLabel?: any; }) => { const theme = useTheme(); const classes = useStyles(); @@ -127,8 +131,8 @@ export const EntityRelationsGraph = ({ Date: Thu, 17 Mar 2022 13:06:20 +0100 Subject: [PATCH 034/225] add readmes in the original packages and plugins folders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/perfect-phones-roll.md | 5 +++++ .../create-app/templates/default-app/packages/README.md | 9 +++++++++ .../create-app/templates/default-app/plugins/README.md | 9 +++++++++ 3 files changed, 23 insertions(+) create mode 100644 .changeset/perfect-phones-roll.md create mode 100644 packages/create-app/templates/default-app/packages/README.md create mode 100644 packages/create-app/templates/default-app/plugins/README.md diff --git a/.changeset/perfect-phones-roll.md b/.changeset/perfect-phones-roll.md new file mode 100644 index 0000000000..c1f9ecdbc1 --- /dev/null +++ b/.changeset/perfect-phones-roll.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Add helpful README.md files in the original `packages` and `plugins` folders diff --git a/packages/create-app/templates/default-app/packages/README.md b/packages/create-app/templates/default-app/packages/README.md new file mode 100644 index 0000000000..6327fa0a99 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/README.md @@ -0,0 +1,9 @@ +# The Packages Folder + +This is where your own applications and centrally managed libraries live, each +in a separate folder of its own. + +From the start there's an `app` folder (for the frontend) and a `backend` folder +(for the Node backend), but you can also add more modules in here that house +your core additions and adaptations, such as themes, common React component +libraries, utilities, and similar. diff --git a/packages/create-app/templates/default-app/plugins/README.md b/packages/create-app/templates/default-app/plugins/README.md new file mode 100644 index 0000000000..58dc32cb08 --- /dev/null +++ b/packages/create-app/templates/default-app/plugins/README.md @@ -0,0 +1,9 @@ +# The Plugins Folder + +This is where your own plugins and their associated modules live, each in a +separate folder of its own. + +If you want to create a new plugin here, go to your project root directory, run +the command `yarn backstage-cli create`, and follow the on-screen instructions. + +You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)! From 504fa13cf4a8a8b14bef21c1fdc0dac109d2aabc Mon Sep 17 00:00:00 2001 From: Esteban Torres <2642850+esttorhe@users.noreply.github.com> Date: Tue, 22 Mar 2022 19:28:20 +0100 Subject: [PATCH 035/225] Updates CNCF data Adds reference to the current `incubation` stage and links "2 year" the blog-post part that mentions the transition in stages. Signed-off-by: Esteban Torres --- docs/overview/what-is-backstage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/overview/what-is-backstage.md b/docs/overview/what-is-backstage.md index 1197c37cc7..38b67e81de 100644 --- a/docs/overview/what-is-backstage.md +++ b/docs/overview/what-is-backstage.md @@ -37,8 +37,8 @@ Out of the box, Backstage includes: ## Backstage and the CNCF -Backstage is a CNCF Sandbox project. Read the announcement -[here](https://backstage.io/blog/2020/09/23/backstage-cncf-sandbox). +Backstage is a CNCF Incubation project after graduating from Sandbox. Read the announcement +[here](https://backstage.io/blog/2022/03/16/backstage-turns-two#out-of-the-sandbox-and-into-incubation). From 77800a32ddc3b7837bf3a4641571ff6925bf1a78 Mon Sep 17 00:00:00 2001 From: Shailendra Ahir Date: Wed, 23 Mar 2022 00:03:23 +0530 Subject: [PATCH 036/225] #8850 Added Changeset Signed-off-by: Shailendra Ahir --- .changeset/new-lions-run.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/new-lions-run.md diff --git a/.changeset/new-lions-run.md b/.changeset/new-lions-run.md new file mode 100644 index 0000000000..8e830b33fa --- /dev/null +++ b/.changeset/new-lions-run.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-graph': patch +--- + +Added renderNode and renderLabel property to EntityRelationsGraph to support customization using CustomNode and CustomLabel components From 68b4b16006dcb07b74269689ace4005e1104a5cc Mon Sep 17 00:00:00 2001 From: Naijith Gopal Date: Thu, 17 Feb 2022 23:08:13 +0530 Subject: [PATCH 037/225] bazaar: use token for backend requests Signed-off-by: Naijith Gopal --- plugins/bazaar/src/api.ts | 57 ++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/plugins/bazaar/src/api.ts b/plugins/bazaar/src/api.ts index 2d661506bc..71dd607606 100644 --- a/plugins/bazaar/src/api.ts +++ b/plugins/bazaar/src/api.ts @@ -58,37 +58,53 @@ export class BazaarClient implements BazaarApi { async updateProject(bazaarProject: any): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); + const { token } = await this.identityApi.getCredentials(); return await fetch(`${baseUrl}/projects`, { method: 'PUT', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, + headers: token + ? { + Authorization: `Bearer ${token}`, + Accept: 'application/json', + 'Content-Type': 'application/json', + } + : { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, body: JSON.stringify(bazaarProject), }).then(resp => resp.json()); } async addProject(bazaarProject: any): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); + const { token } = await this.identityApi.getCredentials(); return await fetch(`${baseUrl}/projects`, { method: 'POST', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, + headers: token + ? { + Authorization: `Bearer ${token}`, + Accept: 'application/json', + 'Content-Type': 'application/json', + } + : { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, body: JSON.stringify(bazaarProject), }).then(resp => resp.json()); } async getProjectById(id: number): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); + const { token } = await this.identityApi.getCredentials(); const response = await fetch( `${baseUrl}/projects/${encodeURIComponent(id)}`, { method: 'GET', + headers: token ? { Authorization: `Bearer ${token}` } : {}, }, ); @@ -97,11 +113,13 @@ export class BazaarClient implements BazaarApi { async getProjectByRef(entityRef: string): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); + const { token } = await this.identityApi.getCredentials(); const response = await fetch( `${baseUrl}/projects/${encodeURIComponent(entityRef)}`, { method: 'GET', + headers: token ? { Authorization: `Bearer ${token}` } : {}, }, ); @@ -110,11 +128,13 @@ export class BazaarClient implements BazaarApi { async getMembers(id: number): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); + const { token } = await this.identityApi.getCredentials(); return await fetch( `${baseUrl}/projects/${encodeURIComponent(id)}/members`, { method: 'GET', + headers: token ? { Authorization: `Bearer ${token}` } : {}, }, ).then(resp => resp.json()); } @@ -122,6 +142,7 @@ export class BazaarClient implements BazaarApi { async addMember(id: number, userId: string): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); const { picture } = await this.identityApi.getProfileInfo(); + const { token } = await this.identityApi.getCredentials(); await fetch( `${baseUrl}/projects/${encodeURIComponent( @@ -129,10 +150,16 @@ export class BazaarClient implements BazaarApi { )}/member/${encodeURIComponent(userId)}`, { method: 'PUT', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, + headers: token + ? { + Authorization: `Bearer ${token}`, + Accept: 'application/json', + 'Content-Type': 'application/json', + } + : { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, body: JSON.stringify({ picture }), }, ); @@ -140,6 +167,7 @@ export class BazaarClient implements BazaarApi { async deleteMember(id: number, userId: string): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); + const { token } = await this.identityApi.getCredentials(); await fetch( `${baseUrl}/projects/${encodeURIComponent( @@ -147,23 +175,28 @@ export class BazaarClient implements BazaarApi { )}/member/${encodeURIComponent(userId)}`, { method: 'DELETE', + headers: token ? { Authorization: `Bearer ${token}` } : {}, }, ); } async getProjects(): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); + const { token } = await this.identityApi.getCredentials(); return await fetch(`${baseUrl}/projects`, { method: 'GET', + headers: token ? { Authorization: `Bearer ${token}` } : {}, }).then(resp => resp.json()); } async deleteProject(id: number): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); + const { token } = await this.identityApi.getCredentials(); await fetch(`${baseUrl}/projects/${encodeURIComponent(id)}`, { method: 'DELETE', + headers: token ? { Authorization: `Bearer ${token}` } : {}, }); } } From 69738379c76f695a9790656a744e0c3da6d81921 Mon Sep 17 00:00:00 2001 From: Naijith Gopal Date: Thu, 17 Feb 2022 23:08:26 +0530 Subject: [PATCH 038/225] bazaar: use token for backend requests Signed-off-by: Naijith Gopal --- .changeset/big-buses-clap.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/big-buses-clap.md diff --git a/.changeset/big-buses-clap.md b/.changeset/big-buses-clap.md new file mode 100644 index 0000000000..fbaf943ea1 --- /dev/null +++ b/.changeset/big-buses-clap.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-bazaar': patch +--- + +using identity token as authz header in bazaar for api calls to backend From 89f5cb7237405f87eb4303597d25fceae2d89d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 22 Mar 2022 19:51:07 +0100 Subject: [PATCH 039/225] review comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/big-buses-clap.md | 2 +- plugins/bazaar/src/api.ts | 116 ++++++++++++----------------------- plugins/bazaar/src/plugin.ts | 6 +- 3 files changed, 45 insertions(+), 79 deletions(-) diff --git a/.changeset/big-buses-clap.md b/.changeset/big-buses-clap.md index fbaf943ea1..503aa314bc 100644 --- a/.changeset/big-buses-clap.md +++ b/.changeset/big-buses-clap.md @@ -2,4 +2,4 @@ '@backstage/plugin-bazaar': patch --- -using identity token as authz header in bazaar for api calls to backend +Pass authorization header with Backstage token to backend requests. diff --git a/plugins/bazaar/src/api.ts b/plugins/bazaar/src/api.ts index 71dd607606..d2486f74dc 100644 --- a/plugins/bazaar/src/api.ts +++ b/plugins/bazaar/src/api.ts @@ -17,6 +17,7 @@ import { createApiRef, DiscoveryApi, + FetchApi, IdentityApi, } from '@backstage/core-plugin-api'; @@ -47,65 +48,53 @@ export interface BazaarApi { export class BazaarClient implements BazaarApi { private readonly identityApi: IdentityApi; private readonly discoveryApi: DiscoveryApi; + private readonly fetchApi: FetchApi; constructor(options: { identityApi: IdentityApi; discoveryApi: DiscoveryApi; + fetchApi: FetchApi; }) { this.identityApi = options.identityApi; this.discoveryApi = options.discoveryApi; + this.fetchApi = options.fetchApi; } async updateProject(bazaarProject: any): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); - const { token } = await this.identityApi.getCredentials(); - return await fetch(`${baseUrl}/projects`, { - method: 'PUT', - headers: token - ? { - Authorization: `Bearer ${token}`, - Accept: 'application/json', - 'Content-Type': 'application/json', - } - : { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - body: JSON.stringify(bazaarProject), - }).then(resp => resp.json()); + return await this.fetchApi + .fetch(`${baseUrl}/projects`, { + method: 'PUT', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + body: JSON.stringify(bazaarProject), + }) + .then(resp => resp.json()); } async addProject(bazaarProject: any): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); - const { token } = await this.identityApi.getCredentials(); - return await fetch(`${baseUrl}/projects`, { - method: 'POST', - headers: token - ? { - Authorization: `Bearer ${token}`, - Accept: 'application/json', - 'Content-Type': 'application/json', - } - : { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - body: JSON.stringify(bazaarProject), - }).then(resp => resp.json()); + return await this.fetchApi + .fetch(`${baseUrl}/projects`, { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + body: JSON.stringify(bazaarProject), + }) + .then(resp => resp.json()); } async getProjectById(id: number): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); - const { token } = await this.identityApi.getCredentials(); - const response = await fetch( + const response = await this.fetchApi.fetch( `${baseUrl}/projects/${encodeURIComponent(id)}`, - { - method: 'GET', - headers: token ? { Authorization: `Bearer ${token}` } : {}, - }, ); return response.ok ? response : null; @@ -113,14 +102,9 @@ export class BazaarClient implements BazaarApi { async getProjectByRef(entityRef: string): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); - const { token } = await this.identityApi.getCredentials(); - const response = await fetch( + const response = await this.fetchApi.fetch( `${baseUrl}/projects/${encodeURIComponent(entityRef)}`, - { - method: 'GET', - headers: token ? { Authorization: `Bearer ${token}` } : {}, - }, ); return response.ok ? response : null; @@ -128,38 +112,26 @@ export class BazaarClient implements BazaarApi { async getMembers(id: number): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); - const { token } = await this.identityApi.getCredentials(); - return await fetch( - `${baseUrl}/projects/${encodeURIComponent(id)}/members`, - { - method: 'GET', - headers: token ? { Authorization: `Bearer ${token}` } : {}, - }, - ).then(resp => resp.json()); + return await this.fetchApi + .fetch(`${baseUrl}/projects/${encodeURIComponent(id)}/members`) + .then(resp => resp.json()); } async addMember(id: number, userId: string): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); const { picture } = await this.identityApi.getProfileInfo(); - const { token } = await this.identityApi.getCredentials(); - await fetch( + await this.fetchApi.fetch( `${baseUrl}/projects/${encodeURIComponent( id, )}/member/${encodeURIComponent(userId)}`, { method: 'PUT', - headers: token - ? { - Authorization: `Bearer ${token}`, - Accept: 'application/json', - 'Content-Type': 'application/json', - } - : { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, body: JSON.stringify({ picture }), }, ); @@ -167,36 +139,28 @@ export class BazaarClient implements BazaarApi { async deleteMember(id: number, userId: string): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); - const { token } = await this.identityApi.getCredentials(); - await fetch( + await this.fetchApi.fetch( `${baseUrl}/projects/${encodeURIComponent( id, )}/member/${encodeURIComponent(userId)}`, - { - method: 'DELETE', - headers: token ? { Authorization: `Bearer ${token}` } : {}, - }, + { method: 'DELETE' }, ); } async getProjects(): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); - const { token } = await this.identityApi.getCredentials(); - return await fetch(`${baseUrl}/projects`, { - method: 'GET', - headers: token ? { Authorization: `Bearer ${token}` } : {}, - }).then(resp => resp.json()); + return await this.fetchApi + .fetch(`${baseUrl}/projects`) + .then(resp => resp.json()); } async deleteProject(id: number): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('bazaar'); - const { token } = await this.identityApi.getCredentials(); - await fetch(`${baseUrl}/projects/${encodeURIComponent(id)}`, { + await this.fetchApi.fetch(`${baseUrl}/projects/${encodeURIComponent(id)}`, { method: 'DELETE', - headers: token ? { Authorization: `Bearer ${token}` } : {}, }); } } diff --git a/plugins/bazaar/src/plugin.ts b/plugins/bazaar/src/plugin.ts index 5eb5e2aacd..438208624e 100644 --- a/plugins/bazaar/src/plugin.ts +++ b/plugins/bazaar/src/plugin.ts @@ -21,6 +21,7 @@ import { createRoutableExtension, identityApiRef, discoveryApiRef, + fetchApiRef, } from '@backstage/core-plugin-api'; import { bazaarApiRef, BazaarClient } from './api'; @@ -35,9 +36,10 @@ export const bazaarPlugin = createPlugin({ deps: { identityApi: identityApiRef, discoveryApi: discoveryApiRef, + fetchApi: fetchApiRef, }, - factory: ({ identityApi, discoveryApi }) => - new BazaarClient({ identityApi, discoveryApi }), + factory: ({ identityApi, discoveryApi, fetchApi }) => + new BazaarClient({ identityApi, discoveryApi, fetchApi }), }), ], }); From 972ec948273d40c7e193aa28af3a6869138562c2 Mon Sep 17 00:00:00 2001 From: Esteban Torres Date: Tue, 22 Mar 2022 20:47:35 +0100 Subject: [PATCH 040/225] Changes some missing references Signed-off-by: Esteban Torres --- README.md | 4 ++-- docs/overview/background.md | 4 ++-- microsite/core/Footer.js | 2 +- microsite/pages/en/index.js | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1078631926..a13f9d5247 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # [Backstage](https://backstage.io) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) -[![CNCF Status](https://img.shields.io/badge/cncf%20status-sandbox-blue.svg)](https://www.cncf.io/projects) +[![CNCF Status](https://img.shields.io/badge/cncf%20status-incubation-blue.svg)](https://www.cncf.io/projects) [![Main CI Build](https://github.com/backstage/backstage/workflows/Main%20Master%20Build/badge.svg)](https://github.com/backstage/backstage/actions?query=workflow%3A%22Main+Master+Build%22) [![Discord](https://img.shields.io/discord/687207715902193673)](https://discord.gg/EBHEGzX) ![Code style](https://img.shields.io/badge/code_style-prettier-ff69b4.svg) @@ -25,7 +25,7 @@ Out of the box, Backstage includes: - [Backstage TechDocs](https://backstage.io/docs/features/techdocs/techdocs-overview) for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach - Plus, a growing ecosystem of [open source plugins](https://github.com/backstage/backstage/tree/master/plugins) that further expand Backstage’s customizability and functionality -Backstage was created by Spotify but is now hosted by the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io) as a Sandbox level project. Read the announcement [here](https://backstage.io/blog/2020/09/23/backstage-cncf-sandbox). +Backstage was created by Spotify but is now hosted by the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io) as an Incubation level project. Read the announcement [here](https://backstage.io/blog/2022/03/16/backstage-turns-two#out-of-the-sandbox-and-into-incubation). ## Project roadmap diff --git a/docs/overview/background.md b/docs/overview/background.md index 00fb5107ea..b74a2e0272 100644 --- a/docs/overview/background.md +++ b/docs/overview/background.md @@ -32,7 +32,7 @@ maintain, and find the documentation for all that software in Backstage. One place for everything. Accessible to everyone. Backstage was originally built by Spotify and then donated to the CNCF. -Backstage is currently in the Sandbox phase. Read the announcement -[here](https://backstage.io/blog/2020/09/23/backstage-cncf-sandbox). +Backstage is currently in the Incubation phase. Read the announcement +[here](https://backstage.io/blog/2022/03/16/backstage-turns-two#out-of-the-sandbox-and-into-incubation). diff --git a/microsite/core/Footer.js b/microsite/core/Footer.js index 1ea591b1d5..a7e5a1076c 100644 --- a/microsite/core/Footer.js +++ b/microsite/core/Footer.js @@ -51,7 +51,7 @@ class Footer extends React.Component { Subscribe to our newsletter - CNCF Sandbox + CNCF Incubation
    More
    diff --git a/microsite/pages/en/index.js b/microsite/pages/en/index.js index 90dbb88a5f..ba84d7d774 100644 --- a/microsite/pages/en/index.js +++ b/microsite/pages/en/index.js @@ -533,7 +533,7 @@ class Index extends React.Component { Cloud Native Computing Foundation {' '} - sandbox project + incubation project
    From 704d190c85a1339c54b23d57ab2cd858275f65c3 Mon Sep 17 00:00:00 2001 From: Shailendra Ahir Date: Wed, 23 Mar 2022 08:50:05 +0530 Subject: [PATCH 041/225] #8850 Added prop types and test cases Signed-off-by: Shailendra Ahir --- .../EntityRelationsGraph.test.tsx | 47 +++++++++++++++++++ .../EntityRelationsGraph.tsx | 6 +-- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.test.tsx b/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.test.tsx index 2bf303bb92..5d9e9b18a6 100644 --- a/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.test.tsx +++ b/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.test.tsx @@ -21,6 +21,7 @@ import { RELATION_OWNER_OF, RELATION_PART_OF, } from '@backstage/catalog-model'; +import { DependencyGraphTypes } from '@backstage/core-components'; import { CatalogApi, catalogApiRef } from '@backstage/plugin-catalog-react'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; import userEvent from '@testing-library/user-event'; @@ -30,6 +31,7 @@ import { EntityRelationsGraph } from './EntityRelationsGraph'; describe('', () => { let Wrapper: FunctionComponent; let catalog: jest.Mocked; + const CUSTOM_TEST_ID = 'custom-test-id'; beforeAll(() => { Object.defineProperty(window.SVGElement.prototype, 'getBBox', { @@ -378,4 +380,49 @@ describe('', () => { userEvent.click(await findByText('k:d/a1')); expect(onNodeClick).toBeCalledTimes(1); }); + + test('render custom node', async () => { + const renderNode = (props: DependencyGraphTypes.RenderNodeProps) => ( + + {props.node.id} + + + ); + + const { findAllByTestId, container } = await renderInTestApp( + + + , + ); + + const node = await findAllByTestId(CUSTOM_TEST_ID); + expect(node[0]).toBeInTheDocument(); + expect(container.querySelector('circle')).toBeInTheDocument(); + }); + + test('render custom label', async () => { + const renderLabel = (props: DependencyGraphTypes.RenderLabelProps) => ( + + {`Test-Label${props.edge.label}`} + + + ); + + const { findAllByTestId, findAllByText, container } = await renderInTestApp( + + + , + ); + const node = await findAllByTestId(CUSTOM_TEST_ID); + expect(node[0]).toBeInTheDocument(); + expect(container.querySelector('circle')).toBeInTheDocument(); + const labels = await findAllByText('Test-Labelvisible'); + expect(labels[0]).toBeInTheDocument(); + }); }); diff --git a/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.tsx b/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.tsx index 19ca5398a6..bf3fbf8f3a 100644 --- a/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.tsx +++ b/plugins/catalog-graph/src/components/EntityRelationsGraph/EntityRelationsGraph.tsx @@ -28,7 +28,7 @@ import React, { MouseEvent, useEffect, useMemo } from 'react'; import { CustomLabel } from './CustomLabel'; import { CustomNode } from './CustomNode'; import { ALL_RELATION_PAIRS, RelationPairs } from './relations'; -import { Direction, EntityNode } from './types'; +import { Direction, EntityEdge, EntityNode } from './types'; import { useEntityRelationNodesAndEdges } from './useEntityRelationNodesAndEdges'; const useStyles = makeStyles(theme => ({ @@ -93,8 +93,8 @@ export const EntityRelationsGraph = ({ relationPairs?: RelationPairs; className?: string; zoom?: 'enabled' | 'disabled' | 'enable-on-click'; - renderNode?: any; - renderLabel?: any; + renderNode?: DependencyGraphTypes.RenderNodeFunction; + renderLabel?: DependencyGraphTypes.RenderLabelFunction; }) => { const theme = useTheme(); const classes = useStyles(); From ac25b953cf7b22fb4a3410970bf69bf54f59cc74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:08:31 +0000 Subject: [PATCH 042/225] build(deps): bump @azure/storage-blob from 12.5.0 to 12.9.0 Bumps [@azure/storage-blob](https://github.com/Azure/azure-sdk-for-js) from 12.5.0 to 12.9.0. - [Release notes](https://github.com/Azure/azure-sdk-for-js/releases) - [Commits](https://github.com/Azure/azure-sdk-for-js/compare/@azure/storage-blob_12.5.0...@azure/storage-blob_12.9.0) --- updated-dependencies: - dependency-name: "@azure/storage-blob" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 96 +++++++++++++++++-------------------------------------- 1 file changed, 30 insertions(+), 66 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef5d447dda..ec6f9828fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -114,7 +114,7 @@ resolved "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz#dcccebb88406e5c76e0e1d52e8cc4c43a68b3ee7" integrity sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg== -"@azure/core-auth@^1.1.3", "@azure/core-auth@^1.3.0": +"@azure/core-auth@^1.3.0": version "1.3.2" resolved "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.3.2.tgz#6a2c248576c26df365f6c7881ca04b7f6d08e3d0" integrity sha512-7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA== @@ -135,36 +135,36 @@ "@azure/logger" "^1.0.0" tslib "^2.2.0" -"@azure/core-http@^1.2.0": - version "1.2.2" - resolved "https://registry.npmjs.org/@azure/core-http/-/core-http-1.2.2.tgz#a6f7717184fd2657d3acabd1d64dfdc0bd531ce3" - integrity sha512-9eu2OcbR7e44gqBy4U1Uv8NTWgLIMwKXMEGgO2MahsJy5rdTiAhs5fJHQffPq8uX2MFh21iBODwO9R/Xlov88A== +"@azure/core-http@^2.0.0": + version "2.2.4" + resolved "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.4.tgz#df5a5b4138dbbc4299879f2fc6f257d0a5f0401e" + integrity sha512-QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-auth" "^1.1.3" - "@azure/core-tracing" "1.0.0-preview.9" + "@azure/core-asynciterator-polyfill" "^1.0.0" + "@azure/core-auth" "^1.3.0" + "@azure/core-tracing" "1.0.0-preview.13" "@azure/logger" "^1.0.0" - "@opentelemetry/api" "^0.10.2" "@types/node-fetch" "^2.5.0" - "@types/tunnel" "^0.0.1" - form-data "^3.0.0" - node-fetch "^2.6.0" + "@types/tunnel" "^0.0.3" + form-data "^4.0.0" + node-fetch "^2.6.7" process "^0.11.10" tough-cookie "^4.0.0" - tslib "^2.0.0" + tslib "^2.2.0" tunnel "^0.0.6" uuid "^8.3.0" xml2js "^0.4.19" -"@azure/core-lro@^1.0.2": - version "1.0.3" - resolved "https://registry.npmjs.org/@azure/core-lro/-/core-lro-1.0.3.tgz#1ddfb4ecdb81ce87b5f5d972ffe2acbbc46e524e" - integrity sha512-Py2crJ84qx1rXkzIwfKw5Ni4WJuzVU7KAF6i1yP3ce8fbynUeu8eEWS4JGtSQgU7xv02G55iPDROifmSDbxeHA== +"@azure/core-lro@^2.2.0": + version "2.2.4" + resolved "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.4.tgz#42fbf4ae98093c59005206a4437ddcd057c57ca1" + integrity sha512-e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-http" "^1.2.0" - events "^3.0.0" - tslib "^2.0.0" + "@azure/core-tracing" "1.0.0-preview.13" + "@azure/logger" "^1.0.0" + tslib "^2.2.0" "@azure/core-paging@^1.1.1": version "1.1.3" @@ -188,15 +188,6 @@ tslib "^2.2.0" uuid "^8.3.0" -"@azure/core-tracing@1.0.0-preview.10": - version "1.0.0-preview.10" - resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.10.tgz#e7060272145dddad4486765030d1b037cd52a8ea" - integrity sha512-iIwjtMwQnsxB7cYkugMx+s4W1nfy3+pT/ceo+uW1fv4YDgYe84nh+QP0fEC9IH/3UATLSWbIBemdMHzk2APUrw== - dependencies: - "@opencensus/web-types" "0.0.7" - "@opentelemetry/api" "^0.10.2" - tslib "^2.0.0" - "@azure/core-tracing@1.0.0-preview.13": version "1.0.0-preview.13" resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz#55883d40ae2042f6f1e12b17dd0c0d34c536d644" @@ -205,15 +196,6 @@ "@opentelemetry/api" "^1.0.1" tslib "^2.2.0" -"@azure/core-tracing@1.0.0-preview.9": - version "1.0.0-preview.9" - resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.9.tgz#84f3b85572013f9d9b85e1e5d89787aa180787eb" - integrity sha512-zczolCLJ5QG42AEPQ+Qg9SRYNUyB+yZ5dzof4YEc+dyWczO9G2sBqbAjLB7IqrsdHN2apkiB2oXeDKCsq48jug== - dependencies: - "@opencensus/web-types" "0.0.7" - "@opentelemetry/api" "^0.10.2" - tslib "^2.0.0" - "@azure/core-util@^1.0.0-beta.1": version "1.0.0-beta.1" resolved "https://registry.npmjs.org/@azure/core-util/-/core-util-1.0.0-beta.1.tgz#2efd2c74b4b0a38180369f50fe274a3c4cd36e98" @@ -290,19 +272,18 @@ uuid "^8.3.0" "@azure/storage-blob@^12.5.0": - version "12.5.0" - resolved "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.5.0.tgz#1ddd8837d9a15ebe355e795375d13b406f2cb496" - integrity sha512-DgoefgODst2IPkkQsNdhtYdyJgSsAZC1pEujO6aD5y7uFy5GnzhYliobSrp204jYRyK5XeJ9iiePmy/SPtTbLA== + version "12.9.0" + resolved "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.9.0.tgz#4cbd8b4c7a47dd064867430db892f4ef2d8f17ab" + integrity sha512-ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-http" "^1.2.0" - "@azure/core-lro" "^1.0.2" + "@azure/core-http" "^2.0.0" + "@azure/core-lro" "^2.2.0" "@azure/core-paging" "^1.1.1" - "@azure/core-tracing" "1.0.0-preview.10" + "@azure/core-tracing" "1.0.0-preview.13" "@azure/logger" "^1.0.0" - "@opentelemetry/api" "^0.10.2" events "^3.0.0" - tslib "^2.0.0" + tslib "^2.2.0" "@babel/code-frame@7.0.0": version "7.0.0" @@ -4857,28 +4838,11 @@ fast-deep-equal "^3.1.3" lodash.clonedeep "^4.5.0" -"@opencensus/web-types@0.0.7": - version "0.0.7" - resolved "https://registry.npmjs.org/@opencensus/web-types/-/web-types-0.0.7.tgz#4426de1fe5aa8f624db395d2152b902874f0570a" - integrity sha512-xB+w7ZDAu3YBzqH44rCmG9/RlrOmFuDPt/bpf17eJr8eZSrLt7nc7LnWdxM9Mmoj/YKMHpxRg28txu3TcpiL+g== - -"@opentelemetry/api@^0.10.2": - version "0.10.2" - resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.2.tgz#9647b881f3e1654089ff7ea59d587b2d35060654" - integrity sha512-GtpMGd6vkzDMYcpu2t9LlhEgMy/SzBwRnz48EejlRArYqZzqSzAsKmegUK7zHgl+EOIaK9mKHhnRaQu3qw20cA== - dependencies: - "@opentelemetry/context-base" "^0.10.2" - "@opentelemetry/api@^1.0.1": version "1.0.4" resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== -"@opentelemetry/context-base@^0.10.2": - version "0.10.2" - resolved "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.10.2.tgz#55bea904b2b91aa8a8675df9eaba5961bddb1def" - integrity sha512-hZNKjKOYsckoOEgBziGMnBcX0M7EtstnCmwz5jZUOUYwlZ+/xxX6z3jPu1XVO2Jivk0eLfuP9GP+vFD49CMetw== - "@panva/asn1.js@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" @@ -6764,10 +6728,10 @@ resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== -"@types/tunnel@^0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.1.tgz#0d72774768b73df26f25df9184273a42da72b19c" - integrity sha512-AOqu6bQu5MSWwYvehMXLukFHnupHrpZ8nvgae5Ggie9UwzDR1CCwoXgSSWNZJuyOlCdfdsWMA5F2LlmvyoTv8A== +"@types/tunnel@^0.0.3": + version "0.0.3" + resolved "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz#f109e730b072b3136347561fc558c9358bb8c6e9" + integrity sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA== dependencies: "@types/node" "*" From cea7076d83f22357c8535e2df9f40a89cd981c4e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:09:00 +0000 Subject: [PATCH 043/225] build(deps): bump css-loader from 6.6.0 to 6.7.1 Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 6.6.0 to 6.7.1. - [Release notes](https://github.com/webpack-contrib/css-loader/releases) - [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-loader/compare/v6.6.0...v6.7.1) --- updated-dependencies: - dependency-name: css-loader dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef5d447dda..3695022c81 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10106,12 +10106,12 @@ css-in-js-utils@^2.0.0: isobject "^3.0.1" css-loader@^6.5.1: - version "6.6.0" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz#c792ad5510bd1712618b49381bd0310574fafbd3" - integrity sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg== + version "6.7.1" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e" + integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== dependencies: icss-utils "^5.1.0" - postcss "^8.4.5" + postcss "^8.4.7" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" @@ -20144,10 +20144,10 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.1.0, postcss@^8.4.5: - version "8.4.7" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.7.tgz#f99862069ec4541de386bf57f5660a6c7a0875a8" - integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A== +postcss@^8.1.0, postcss@^8.4.7: + version "8.4.12" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" + integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== dependencies: nanoid "^3.3.1" picocolors "^1.0.0" From c54ce828bdca20357b97df453194d173a22335d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:09:44 +0000 Subject: [PATCH 044/225] build(deps): bump eslint-plugin-jest from 25.3.4 to 26.1.2 Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 25.3.4 to 26.1.2. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v25.3.4...v26.1.2) --- updated-dependencies: - dependency-name: eslint-plugin-jest dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .changeset/dependabot-05b19b9.md | 5 +++++ packages/cli/package.json | 2 +- yarn.lock | 22 +++++++++++++++++----- 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 .changeset/dependabot-05b19b9.md diff --git a/.changeset/dependabot-05b19b9.md b/.changeset/dependabot-05b19b9.md new file mode 100644 index 0000000000..97845bb77d --- /dev/null +++ b/.changeset/dependabot-05b19b9.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +build(deps): bump `eslint-plugin-jest` from 25.3.4 to 26.1.2 diff --git a/packages/cli/package.json b/packages/cli/package.json index 59a9809670..c1649bc66a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -72,7 +72,7 @@ "eslint-formatter-friendly": "^7.0.0", "eslint-plugin-deprecation": "^1.3.2", "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^25.3.4", + "eslint-plugin-jest": "^26.1.2", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-monorepo": "^0.3.2", "eslint-plugin-react": "^7.28.0", diff --git a/yarn.lock b/yarn.lock index ef5d447dda..01247e79be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7027,6 +7027,18 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" +"@typescript-eslint/utils@^5.10.0": + version "5.16.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz#42218b459d6d66418a4eb199a382bdc261650679" + integrity sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.16.0" + "@typescript-eslint/types" "5.16.0" + "@typescript-eslint/typescript-estree" "5.16.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + "@typescript-eslint/visitor-keys@5.14.0": version "5.14.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" @@ -11775,12 +11787,12 @@ eslint-plugin-import@^2.25.4: resolve "^1.20.0" tsconfig-paths "^3.12.0" -eslint-plugin-jest@^25.3.4: - version "25.3.4" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.3.4.tgz#2031dfe495be1463330f8b80096ddc91f8e6387f" - integrity sha512-CCnwG71wvabmwq/qkz0HWIqBHQxw6pXB1uqt24dxqJ9WB34pVg49bL1sjXphlJHgTMWGhBjN1PicdyxDxrfP5A== +eslint-plugin-jest@^26.1.2: + version "26.1.2" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.1.2.tgz#0f1a15c62889fffc3f78a773749d672f1bedb15f" + integrity sha512-1bXCoRODPkGN06n9KAMls4Jm0eyS+0Q/LWcIxhqWR2ycV0Z7lnx2c10idk4dtFIJY5xStgiIr5snC6/rxcXpbw== dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" + "@typescript-eslint/utils" "^5.10.0" eslint-plugin-jsx-a11y@^6.5.1: version "6.5.1" From fc4ac32bfe84461735f05d1928be2692c067a778 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:10:52 +0000 Subject: [PATCH 045/225] build(deps): bump react-syntax-highlighter from 15.4.5 to 15.5.0 Bumps [react-syntax-highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter) from 15.4.5 to 15.5.0. - [Release notes](https://github.com/react-syntax-highlighter/react-syntax-highlighter/releases) - [Changelog](https://github.com/react-syntax-highlighter/react-syntax-highlighter/blob/master/CHANGELOG.MD) - [Commits](https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.4.5...15.5.0) --- updated-dependencies: - dependency-name: react-syntax-highlighter dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef5d447dda..bb68bb1b85 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20272,7 +20272,7 @@ printj@~1.1.0: resolved "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== -prismjs@^1.25.0, prismjs@~1.27.0: +prismjs@^1.27.0, prismjs@~1.27.0: version "1.27.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== @@ -20978,15 +20978,15 @@ react-sparklines@^1.7.0: prop-types "^15.5.10" react-syntax-highlighter@^15.4.5: - version "15.4.5" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.4.5.tgz#db900d411d32a65c8e90c39cd64555bf463e712e" - integrity sha512-RC90KQTxZ/b7+9iE6s9nmiFLFjWswUcfULi4GwVzdFVKVMQySkJWBuOmJFfjwjMVCo0IUUuJrWebNKyviKpwLQ== + version "15.5.0" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz#4b3eccc2325fa2ec8eff1e2d6c18fa4a9e07ab20" + integrity sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg== dependencies: "@babel/runtime" "^7.3.1" highlight.js "^10.4.1" lowlight "^1.17.0" - prismjs "^1.25.0" - refractor "^3.2.0" + prismjs "^1.27.0" + refractor "^3.6.0" react-test-renderer@^16.13.1: version "16.13.1" @@ -21379,7 +21379,7 @@ reflect-metadata@^0.1.13: resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -refractor@^3.2.0: +refractor@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz#ac318f5a0715ead790fcfb0c71f4dd83d977935a" integrity sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA== From 7e7ba704bebf8d405d82f54d8b36a778a3a6cbab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:11:29 +0000 Subject: [PATCH 046/225] build(deps): bump @spotify/eslint-config-base from 12.0.0 to 13.0.0 Bumps [@spotify/eslint-config-base](https://github.com/spotify/web-scripts) from 12.0.0 to 13.0.0. - [Release notes](https://github.com/spotify/web-scripts/releases) - [Changelog](https://github.com/spotify/web-scripts/blob/master/CHANGELOG.md) - [Commits](https://github.com/spotify/web-scripts/compare/v12.0.0...v13.0.0) --- updated-dependencies: - dependency-name: "@spotify/eslint-config-base" dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .changeset/dependabot-84caed8.md | 5 +++++ packages/cli/package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 .changeset/dependabot-84caed8.md diff --git a/.changeset/dependabot-84caed8.md b/.changeset/dependabot-84caed8.md new file mode 100644 index 0000000000..d4806431a0 --- /dev/null +++ b/.changeset/dependabot-84caed8.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +build(deps): bump `@spotify/eslint-config-base` from 12.0.0 to 13.0.0 diff --git a/packages/cli/package.json b/packages/cli/package.json index 59a9809670..c04972093d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -45,7 +45,7 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.0.0", "@rollup/plugin-yaml": "^3.1.0", - "@spotify/eslint-config-base": "^12.0.0", + "@spotify/eslint-config-base": "^13.0.0", "@spotify/eslint-config-react": "^12.0.0", "@spotify/eslint-config-typescript": "^12.0.0", "@sucrase/jest-plugin": "^2.1.1", diff --git a/yarn.lock b/yarn.lock index ef5d447dda..573a83e268 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5214,10 +5214,10 @@ resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@spotify/eslint-config-base@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-12.0.0.tgz#0b1e41bb436d5c1c20714703629514d64c3c0f06" - integrity sha512-5Uud/TmzakqmdUNCZpD8JFQRa2VG3dVd3DanSMpU/nVdu6K5LyX8EMU3Tz1vGP18Wih8iAu/sBSJhntNzw7e6w== +"@spotify/eslint-config-base@^13.0.0": + version "13.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-13.0.0.tgz#bb748bb2b705ffb5085f873aa0daf94dfad59985" + integrity sha512-BrnexUcUQkp6XUw8HWSmE4LpWtJGgEC6A7vrSkgpgKJtZaYkpw8O+Xnk60DA266ecbFHYbQD6ngqKHlvjNB+pA== "@spotify/eslint-config-react@^12.0.0": version "12.0.0" From cb938e2b7f93dfae6517ac26a4b5ffa12b0abafa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:12:06 +0000 Subject: [PATCH 047/225] build(deps): bump @gitbeaker/node from 35.4.0 to 35.5.0 Bumps [@gitbeaker/node](https://github.com/jdalrymple/gitbeaker) from 35.4.0 to 35.5.0. - [Release notes](https://github.com/jdalrymple/gitbeaker/releases) - [Changelog](https://github.com/jdalrymple/gitbeaker/blob/master/CHANGELOG.md) - [Commits](https://github.com/jdalrymple/gitbeaker/compare/35.4.0...35.5.0) --- updated-dependencies: - dependency-name: "@gitbeaker/node" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef5d447dda..df0fd53721 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2082,12 +2082,12 @@ query-string "^7.0.0" xcase "^2.0.1" -"@gitbeaker/core@^35.4.0": - version "35.4.0" - resolved "https://registry.npmjs.org/@gitbeaker/core/-/core-35.4.0.tgz#ebc3e46f9d8e17f85f81ccfe163cffdcd429545a" - integrity sha512-VjRmC/j1umhn0+f+DbrbxXDAc0uvGd32tJ4MCFQYkxw9ndr/0Rlg8iYvYN/zWyqtgr3SeTxMyS3Z9MtbWWhjBA== +"@gitbeaker/core@^35.5.0": + version "35.5.0" + resolved "https://registry.npmjs.org/@gitbeaker/core/-/core-35.5.0.tgz#e744ca9115133f8070a40b3bbfedf5a11801d341" + integrity sha512-ExAIDoUWmaY/QBNoUNkxEvvg79kF9ccFkEoFnHdKYvrqX2517OJCSoWoslGt9/XaSEcE9sTm7lYZrCmqExXsWg== dependencies: - "@gitbeaker/requester-utils" "^35.4.0" + "@gitbeaker/requester-utils" "^35.5.0" form-data "^4.0.0" li "^1.3.0" mime "^3.0.0" @@ -2095,12 +2095,12 @@ xcase "^2.0.1" "@gitbeaker/node@^35.1.0": - version "35.4.0" - resolved "https://registry.npmjs.org/@gitbeaker/node/-/node-35.4.0.tgz#096a28fd936dad9220625a917502063adf566acf" - integrity sha512-5isY4/ePtjIs7uFwVW8U5oNNwntyCa3eTs3+tb6CywtLGdlnenk0eNJjZ2Srn8xJOKsOCCpQkT5hP1AOKSAlAQ== + version "35.5.0" + resolved "https://registry.npmjs.org/@gitbeaker/node/-/node-35.5.0.tgz#9cb38c6532cf8cb32e0de7fa8dac6327adaca471" + integrity sha512-gjGSqnNLNz4aP28dX8Cy97n7MtGUaSewoc+oJAkPDgpA0y4gWhgxpzEEwXrhhPsQA4Cxig0CLpPHMTi1Q1fVvg== dependencies: - "@gitbeaker/core" "^35.4.0" - "@gitbeaker/requester-utils" "^35.4.0" + "@gitbeaker/core" "^35.5.0" + "@gitbeaker/requester-utils" "^35.5.0" delay "^5.0.0" got "11.8.3" xcase "^2.0.1" @@ -2114,10 +2114,10 @@ qs "^6.10.1" xcase "^2.0.1" -"@gitbeaker/requester-utils@^35.4.0": - version "35.4.0" - resolved "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-35.4.0.tgz#918be27441024c841d3f9e09c498e6b24de291e2" - integrity sha512-NkJ55oMM7TNMWUNnzeYLdLOIUFv1LBBN/PCM2u7J5+67gpck03YfWAkgrODIqBePFyrfm19pdka3SUlNBP0G2g== +"@gitbeaker/requester-utils@^35.5.0": + version "35.5.0" + resolved "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-35.5.0.tgz#22fb09698da018607c9ce70a62114747bd92752e" + integrity sha512-5weE7X7kfIuUHGWl0XfSt68kFMVXUg3SrUZW7MOS2Y0w2tj/H+6eomzJ7mYcJmI7ttNGIDGYhqxftPh8zLpi0w== dependencies: form-data "^4.0.0" qs "^6.10.1" From 803e4a99f0e6a602c64b8837810d90d4c5772964 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:12:42 +0000 Subject: [PATCH 048/225] build(deps): bump apollo-server-express from 3.6.4 to 3.6.5 Bumps [apollo-server-express](https://github.com/apollographql/apollo-server/tree/HEAD/packages/apollo-server-express) from 3.6.4 to 3.6.5. - [Release notes](https://github.com/apollographql/apollo-server/releases) - [Changelog](https://github.com/apollographql/apollo-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-server/commits/apollo-server-express@3.6.5/packages/apollo-server-express) --- updated-dependencies: - dependency-name: apollo-server-express dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef5d447dda..4195413f0e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7517,10 +7517,10 @@ apollo-datasource@^3.3.1: apollo-server-caching "^3.3.0" apollo-server-env "^4.2.1" -apollo-reporting-protobuf@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.3.0.tgz#2fc0f7508e488851eda8a6e7c8cc3b5a156ab44b" - integrity sha512-51Jwrg0NvHJfKz7TIGU8+Os3rUAqWtXeKRsRtKYtTeMSBPNhzz8UoGjAB3XyVmUXRE3IRmLtDPDRFL7qbxMI/w== +apollo-reporting-protobuf@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.3.1.tgz#8c8761f9ac4375fd8490262d6144057cec6ce0b3" + integrity sha512-tyvj3Vj71TCh6c8PtdHOLgHHBSJ05DF/A/Po3q8yfHTBkOPcOJZE/GGN/PT/pwKg7HHxKcAeHDw7+xciVvGx0w== dependencies: "@apollo/protobufjs" "1.2.2" @@ -7531,10 +7531,10 @@ apollo-server-caching@^3.3.0: dependencies: lru-cache "^6.0.0" -apollo-server-core@^3.6.4: - version "3.6.4" - resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.4.tgz#dcf3925173a8e9a501ed3975654cb2ed58af3710" - integrity sha512-zttpu/3IeDGhRgIGK84z9HwTgvETDl9zntXiQ0G1tBJgOhDvehSkMiOmy+FKR1HW9+94ao1Olz6ZIyhP0dvzSg== +apollo-server-core@^3.6.4, apollo-server-core@^3.6.5: + version "3.6.5" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.5.tgz#f8a30bab49d7ccbd9500b85968accae0d8631927" + integrity sha512-9lOTHnJnPV4TiVwt4DMl3HDWGebHxoJIU2tonOuIkRxOUjwCjsDsHfkIrPA3vutmXIb7R3OPxh/mofdDpm7DjQ== dependencies: "@apollographql/apollo-tools" "^0.5.1" "@apollographql/graphql-playground-html" "1.6.29" @@ -7542,12 +7542,12 @@ apollo-server-core@^3.6.4: "@graphql-tools/schema" "^8.0.0" "@josephg/resolvable" "^1.0.0" apollo-datasource "^3.3.1" - apollo-reporting-protobuf "^3.3.0" + apollo-reporting-protobuf "^3.3.1" apollo-server-caching "^3.3.0" apollo-server-env "^4.2.1" apollo-server-errors "^3.3.1" - apollo-server-plugin-base "^3.5.1" - apollo-server-types "^3.5.1" + apollo-server-plugin-base "^3.5.2" + apollo-server-types "^3.5.2" async-retry "^1.2.1" fast-json-stable-stringify "^2.1.0" graphql-tag "^2.11.0" @@ -7570,9 +7570,9 @@ apollo-server-errors@^3.3.1: integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== apollo-server-express@^3.0.0, apollo-server-express@^3.6.4: - version "3.6.4" - resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.4.tgz#759b64047a41068deb3af068ce02381404e3d6d0" - integrity sha512-lN73Ka7UZJINJzvMeRFIFn7898hGjTxVtRQwAzzmw5XSpWZZHZkTcAkoDxUs0GwU6h2LE14ogu2WJ4G8AZVl1Q== + version "3.6.5" + resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.5.tgz#e623ee6f2e2d4cc2b4075baf7624a899a21ec1a6" + integrity sha512-mV1Dif//BUq1WFlCWfaSlhsuxhcJ/gGD8HdQ6/s3JEspStS7SgmeSUIwJYl3vw8IA/8j7GNg/EINkc57x2UbdA== dependencies: "@types/accepts" "^1.3.5" "@types/body-parser" "1.19.2" @@ -7580,25 +7580,25 @@ apollo-server-express@^3.0.0, apollo-server-express@^3.6.4: "@types/express" "4.17.13" "@types/express-serve-static-core" "4.17.28" accepts "^1.3.5" - apollo-server-core "^3.6.4" - apollo-server-types "^3.5.1" + apollo-server-core "^3.6.5" + apollo-server-types "^3.5.2" body-parser "^1.19.0" cors "^2.8.5" parseurl "^1.3.3" -apollo-server-plugin-base@^3.5.1: - version "3.5.1" - resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.1.tgz#73fc1591522e36e32eff3d033975333e30cf1a7c" - integrity sha512-wgDHz3lLrCqpecDky3z6AOQ0vik0qs0Cya/Ti6n3ESYXJ9MdK3jE/QunATIrOYYJaa+NKl9V7YwU+/bojNfFuQ== +apollo-server-plugin-base@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.2.tgz#18a08353f5ea207a07f2c1e66dd7ef2335ce8c84" + integrity sha512-SwIf1waDmNDb0kmn57QR++InwK6Iv/X2slpm/aFIoqFBe91r6uJfakJvQZuh8dLEgk68gxqFsT8zHRpxBclE+g== dependencies: - apollo-server-types "^3.5.1" + apollo-server-types "^3.5.2" -apollo-server-types@^3.5.1: - version "3.5.1" - resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.1.tgz#73fc8aa82b3175fde3906fa3d6786ee4d3e8c982" - integrity sha512-zG7xLl4mmHuZMAYOfjWKHY/IC/GgIkJ3HnYuR7FRrnPpRA9Yt5Kf1M1rjm1Esuqzpb/dt8pM7cX40QaIQObCYQ== +apollo-server-types@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.2.tgz#903d499a70b9010764cbab4d704ddb8c086aa06f" + integrity sha512-vhcbIWsBkoNibABOym4AAPBoNDjokhjUQokKYdwZMeqrb850PMQdNJFrGyXT5onP408Ghv4O8PfgBuPQmeJhVQ== dependencies: - apollo-reporting-protobuf "^3.3.0" + apollo-reporting-protobuf "^3.3.1" apollo-server-caching "^3.3.0" apollo-server-env "^4.2.1" From 2e37989aa26bb7eefe20262f83ea286a616b21fb Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Wed, 23 Mar 2022 08:34:39 +0100 Subject: [PATCH 049/225] removing duplicated start lines Signed-off-by: Suzanne Daniels --- docs/overview/support.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/overview/support.md b/docs/overview/support.md index 98450e5add..9eb2700cc8 100644 --- a/docs/overview/support.md +++ b/docs/overview/support.md @@ -32,7 +32,6 @@ with your recording's information. Example: ```yaml --- ---- title: # name of the meetup date: February 23, 2022 # date, format: Month day, year. This is the index field. category: Meetup # Can be Event, Meetup, Webinar @@ -50,7 +49,6 @@ with your meetup's information. Example: ```yaml --- ---- title: # name of the meetup date: February 23, 2022 # date, format: Month day, year. This is the index field. category: Upcoming # Should be "Upcoming" From 1d1e052583a7c3177517e7a0ee4bf57794b09214 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 23 Mar 2022 10:05:51 +0100 Subject: [PATCH 050/225] We are 1.x now, so it's `minor` changeset Signed-off-by: blam --- .changeset/angry-pens-begin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/angry-pens-begin.md b/.changeset/angry-pens-begin.md index b8d6f80292..ed5bbf4c4e 100644 --- a/.changeset/angry-pens-begin.md +++ b/.changeset/angry-pens-begin.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-scaffolder-backend': minor --- Override default commit message and author details in GitLab action From b58ce42200d949d394134e9919a14afba9427417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 23 Mar 2022 10:38:14 +0100 Subject: [PATCH 051/225] bump past vulnerable minimist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- cypress/yarn.lock | 6 +++--- microsite/yarn.lock | 6 +++--- storybook/yarn.lock | 6 +++--- yarn.lock | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/cypress/yarn.lock b/cypress/yarn.lock index 96bc765d0d..f301e87d3a 100644 --- a/cypress/yarn.lock +++ b/cypress/yarn.lock @@ -907,9 +907,9 @@ minimatch@^3.0.4: brace-expansion "^1.1.7" minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== mkdirp@^0.5.4: version "0.5.5" diff --git a/microsite/yarn.lock b/microsite/yarn.lock index 45143bafb4..e854dc9b09 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -4375,9 +4375,9 @@ minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: brace-expansion "^1.1.7" minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== mixin-deep@^1.1.3, mixin-deep@^1.2.0: version "1.3.2" diff --git a/storybook/yarn.lock b/storybook/yarn.lock index deac652f9d..fabc3b643d 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -6016,9 +6016,9 @@ minimatch@^3.0.2, minimatch@^3.0.4: brace-expansion "^1.1.7" minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass-collect@^1.0.2: version "1.0.2" diff --git a/yarn.lock b/yarn.lock index bfeb7fd87f..3da34cc881 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17809,9 +17809,9 @@ minimist-options@4.1.0, minimist-options@^4.0.2: kind-of "^6.0.3" minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minimisted@^2.0.0: version "2.0.1" From aaacf4483419eb777d1e4691c6a3d70311e772d6 Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Wed, 23 Mar 2022 10:38:18 +0100 Subject: [PATCH 052/225] - Adding past community sessions - Updated upcoming session with better img - Fixing sort mechanism for on-demand - Improving text on /community - Updating instructions to reflect changes in sorting Signed-off-by: Suzanne Daniels --- docs/overview/support.md | 8 ++++---- microsite/data/on-demand/20211117-01.yaml | 7 +++++++ microsite/data/on-demand/20211118-01.yaml | 7 +++++++ microsite/data/on-demand/20211215-01.yaml | 7 +++++++ microsite/data/on-demand/20211216-01.yaml | 7 +++++++ microsite/data/on-demand/20220323.yaml | 2 +- microsite/pages/en/community.js | 4 ++-- microsite/pages/en/on-demand.js | 2 +- 8 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 microsite/data/on-demand/20211117-01.yaml create mode 100644 microsite/data/on-demand/20211118-01.yaml create mode 100644 microsite/data/on-demand/20211215-01.yaml create mode 100644 microsite/data/on-demand/20211216-01.yaml diff --git a/docs/overview/support.md b/docs/overview/support.md index 9eb2700cc8..5122a1c9ff 100644 --- a/docs/overview/support.md +++ b/docs/overview/support.md @@ -28,12 +28,12 @@ Check out the Backstage.io [Backstage Community Hub](https://backstage.io/commun To add a new recording to the [meetup page](https://backstage.io/on-demand) create a file in [`microsite/data/on-demand`](https://github.com/backstage/backstage/tree/master/microsite/data/on-demand) -with your recording's information. Example: +with your recording's information. Filenames should be in the format `yyyymmdd-xx.yaml`. The page will sort using the filename. Example file content: ```yaml --- title: # name of the meetup -date: February 23, 2022 # date, format: Month day, year. This is the index field. +date: February 23, 2022 # date, format: Month day, year. category: Meetup # Can be Event, Meetup, Webinar description: # description, summary youtubeUrl: # Url to youtube video @@ -45,12 +45,12 @@ youtubeImgUrl: # Url to the preview image, for Youtube this is the format: https To add an upcoming meetup to the [meetup page](https://backstage.io/on-demand) create a file in [`microsite/data/on-demand`](https://github.com/backstage/backstage/tree/master/microsite/data/on-demand) -with your meetup's information. Example: +with your meetup's information. Filenames should be in the format `yyyymmdd-xx.yaml`, the page will sort using the filename. Example file content: ```yaml --- title: # name of the meetup -date: February 23, 2022 # date, format: Month day, year. This is the index field. +date: February 23, 2022 # date, format: Month day, year. category: Upcoming # Should be "Upcoming" description: # description, summary youtubeUrl: # Url to youtube video diff --git a/microsite/data/on-demand/20211117-01.yaml b/microsite/data/on-demand/20211117-01.yaml new file mode 100644 index 0000000000..21410fc85f --- /dev/null +++ b/microsite/data/on-demand/20211117-01.yaml @@ -0,0 +1,7 @@ +--- +title: Community Sessions +date: November 17, 2021 +category: Meetup +description: At this month’s adopters session, get the scoop on Spotify’s plan for paid plugins, a first look at Box’s DevPortal, and answers to big questions, like “How will I know if Backstage will work at a large company like mine?” +youtubeUrl: https://youtu.be/apCDT3_DmFk +youtubeImgUrl: https://i1.ytimg.com/vi/apCDT3_DmFk/mqdefault.jpg diff --git a/microsite/data/on-demand/20211118-01.yaml b/microsite/data/on-demand/20211118-01.yaml new file mode 100644 index 0000000000..645e375757 --- /dev/null +++ b/microsite/data/on-demand/20211118-01.yaml @@ -0,0 +1,7 @@ +--- +title: Community Sessions +date: November 18, 2021 +category: Meetup +description: In the contributors track for this month’s community session, hear about upcoming deprecations, the fruits of Hacktoberfest, the future of both the Kubernetes plugin and the Tech Insights plugin, tips on contributing, and more. . +youtubeUrl: https://youtu.be/n1OWGwYAOiI +youtubeImgUrl: https://i1.ytimg.com/vi/n1OWGwYAOiI/mqdefault.jpg diff --git a/microsite/data/on-demand/20211215-01.yaml b/microsite/data/on-demand/20211215-01.yaml new file mode 100644 index 0000000000..ce51fe3a9c --- /dev/null +++ b/microsite/data/on-demand/20211215-01.yaml @@ -0,0 +1,7 @@ +--- +title: Community Sessions +date: December 15, 2021 +category: Meetup +description: At our final adopters session of 2021, the community received a grab bag of end-of-year treats, including eye-catching infographics, a presentation from finance startup Brex about their path to adopting Backstage, and tips on branding your Backstage portal. Plus, get your official Backstage Zoom background. But first up, a quick look back at the year that was. +youtubeUrl: https://youtu.be/0QMQYSTKAx0 +youtubeImgUrl: https://i1.ytimg.com/vi/0QMQYSTKAx0/mqdefault.jpg diff --git a/microsite/data/on-demand/20211216-01.yaml b/microsite/data/on-demand/20211216-01.yaml new file mode 100644 index 0000000000..9600a5f13b --- /dev/null +++ b/microsite/data/on-demand/20211216-01.yaml @@ -0,0 +1,7 @@ +--- +title: Community Sessions +date: December 16, 2021 +category: Meetup +description: At our final contributors session of 2021, see how the new Backstage Upgrade Helper works and enjoy smoother upgrades, hear updates from the maintainers, and meet our contributor of the month. As in the adopters session, first we celebrate the year’s milestones and share a few resources you can use to spread the word about Backstage. +youtubeUrl: https://youtu.be/nYjI2j-lWEM +youtubeImgUrl: https://i1.ytimg.com/vi/nYjI2j-lWEM/mqdefault.jpg diff --git a/microsite/data/on-demand/20220323.yaml b/microsite/data/on-demand/20220323.yaml index 4a55111c3e..d18c795bf1 100644 --- a/microsite/data/on-demand/20220323.yaml +++ b/microsite/data/on-demand/20220323.yaml @@ -4,6 +4,6 @@ date: March 23, 2022 category: Upcoming description: Join the maintainers and contributors for the Contributor Community Sessions youtubeUrl: https://youtu.be/evf_LV0KzIk -youtubeImgUrl: https://i1.ytimg.com/vi/evf_LV0KzIk/mqdefault.jpg +youtubeImgUrl: http://localhost:3000/img/b-sessions.png rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com eventUrl: https://github.com/backstage/community/issues diff --git a/microsite/pages/en/community.js b/microsite/pages/en/community.js index 35eb6d766c..e5a15d1bd2 100644 --- a/microsite/pages/en/community.js +++ b/microsite/pages/en/community.js @@ -22,7 +22,7 @@ const Background = props => { What's the use of having fun if you can't share it? Exactly. Join the vibrant community around the Backstage project. Be it on GitHub, social media, Discord... You'll find a welcoming - environment, to ensure this we follow the{' '} + environment. To ensure this, we follow the{' '} {' '} CNCF Code of Conduct @@ -74,7 +74,7 @@ const Background = props => { Backstage (Backstage of Backstage? Backerstage?). An open discussion with maintainers and contributors of Backstage. - Watch now + Meetups yaml.load(fs.readFileSync(`./data/on-demand/${file}`, 'utf8'))) - .sort((b, a) => a.date.toLowerCase().localeCompare(b.date.toLowerCase())); + .reverse(); const truncate = text => text.length > 170 ? text.substr(0, 170) + '...' : text; From 11045d68a9500ebf44fdba5527af2dc2245823ce Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 11:03:10 +0100 Subject: [PATCH 053/225] workflows: changeset feedback automation tweaks Signed-off-by: Patrik Oldsberg --- .github/workflows/automate_changeset_feedback.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index 468606709b..0a95c6a7d9 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -1,4 +1,4 @@ -name: Automate Changeset Feedback +name: Automate changeset feedback on: pull_request: types: @@ -29,9 +29,11 @@ jobs: - name: Post Feedback uses: actions/github-script@v5 + if: github.event.pull_request.user.login != 'backstage-service' env: ISSUE_NUMBER: ${{ github.event.pull_request.number }} with: + github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} script: | const owner = "backstage"; const repo = "backstage"; @@ -56,8 +58,8 @@ jobs: if (existingComment.body !== body) { console.log(`updating existing comment in #${issue_number}`); await github.rest.issues.updateComment({ - repo, owner, + repo, comment_id: existingComment.id, body, }); @@ -67,8 +69,8 @@ jobs: } else { console.log(`removing comment from #${issue_number}`); await github.rest.issues.deleteComment({ - repo, owner, + repo, comment_id: existingComment.id, body, }); @@ -76,8 +78,8 @@ jobs: } else if (body) { console.log(`creating comment for #${issue_number}`); await github.rest.issues.createComment({ - repo, owner, + repo, issue_number, body, }); From 70181cddd58e8589567c0f5a4bcae70c27d346c9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 12:43:03 +0100 Subject: [PATCH 054/225] workflows: skip changeset feedback back to bot account Signed-off-by: Patrik Oldsberg --- .github/workflows/automate_changeset_feedback.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index 0a95c6a7d9..f666978b77 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -7,6 +7,7 @@ on: permissions: issues: write + pull-requests: write jobs: feedback: @@ -33,7 +34,6 @@ jobs: env: ISSUE_NUMBER: ${{ github.event.pull_request.number }} with: - github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} script: | const owner = "backstage"; const repo = "backstage"; From 7cdc9ecc07f3ff44a791318d8abdedbf3eebae3b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 12:43:34 +0100 Subject: [PATCH 055/225] workflows: make changeset feedback diff only PR contents Signed-off-by: Patrik Oldsberg --- .github/workflows/automate_changeset_feedback.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index f666978b77..fff6e95071 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -16,17 +16,19 @@ jobs: steps: - uses: actions/checkout@v2 with: - ref: ${{ github.head_ref }} + # Fetch the commit that's merged into the base rather than the target ref + # This will let us diff only the contents of the PR, without fetching more history + ref: 'refs/pull/${{ github.event.pull_request.number }}/merge' - name: fetch base - run: git fetch origin ${{ github.base_ref }} + run: git fetch --depth 1 origin ${{ github.base_ref }} # We avoid using the in-source script since this workflow has elevated permissions that we don't want to expose - name: Generate Feedback id: generate-feedback run: | wget -O generate.js https://raw.githubusercontent.com/backstage/backstage/master/scripts/generate-changeset-feedback.js 1>&2 - node generate.js origin/${{ github.base_ref }} > feedback.txt + node generate.js FETCH_HEAD > feedback.txt - name: Post Feedback uses: actions/github-script@v5 From d392e27f5c0ec44d887ef92b1046161bab787941 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 12:44:00 +0100 Subject: [PATCH 056/225] workflows: changeset feedback no longer breaks when changesets are removed Signed-off-by: Patrik Oldsberg --- scripts/generate-changeset-feedback.js | 46 +++++++++++++++----------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/scripts/generate-changeset-feedback.js b/scripts/generate-changeset-feedback.js index ca29e15530..588b13654c 100644 --- a/scripts/generate-changeset-feedback.js +++ b/scripts/generate-changeset-feedback.js @@ -80,35 +80,41 @@ async function listPackages() { })); } -async function parseChangesets(filePaths) { +async function loadChangesets(filePaths) { const changesets = []; for (const filePath of filePaths) { if (!filePath.startsWith('.changeset/') || !filePath.endsWith('.md')) { continue; } - const content = await fs.promises.readFile(filePath, 'utf8'); - let lines = content.split(/\r?\n/); + try { + const content = await fs.promises.readFile(filePath, 'utf8'); + let lines = content.split(/\r?\n/); - lines = lines.slice(lines.findIndex(line => line === '---') + 1); - lines = lines.slice( - 0, - lines.findIndex(line => line === '---'), - ); + lines = lines.slice(lines.findIndex(line => line === '---') + 1); + lines = lines.slice( + 0, + lines.findIndex(line => line === '---'), + ); - const bumps = new Map(); - for (const line of lines) { - const match = line.match(/^'(.*)': (patch|minor|major)$/); - if (!match) { - throw new Error(`Invalid changeset line: ${line}`); + const bumps = new Map(); + for (const line of lines) { + const match = line.match(/^'(.*)': (patch|minor|major)$/); + if (!match) { + throw new Error(`Invalid changeset line: ${line}`); + } + + bumps.set(match[1], match[2]); } - bumps.set(match[1], match[2]); + changesets.push({ + filePath, + bumps, + }); + } catch (error) { + if (error.code !== 'ENOENT') { + throw error; + } } - - changesets.push({ - filePath, - bumps, - }); } return changesets; @@ -247,7 +253,7 @@ async function main() { const changedFiles = await listChangedFiles(diffRef); const packages = await listPackages(); - const changesets = await parseChangesets(changedFiles); + const changesets = await loadChangesets(changedFiles); const changedPackages = await listChangedPackages(changedFiles, packages); process.stderr.write( From a0941d5fc3f41f65df410ab18b9a1d2786845501 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 15:23:45 +0100 Subject: [PATCH 057/225] workflows: switch changeset feedback back to service account Signed-off-by: Patrik Oldsberg --- .github/workflows/automate_changeset_feedback.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index fff6e95071..7afa66d4b9 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -5,10 +5,6 @@ on: - opened - synchronize -permissions: - issues: write - pull-requests: write - jobs: feedback: if: github.repository == 'backstage/backstage' # prevent running on forks @@ -23,7 +19,7 @@ jobs: - name: fetch base run: git fetch --depth 1 origin ${{ github.base_ref }} - # We avoid using the in-source script since this workflow has elevated permissions that we don't want to expose + # We avoid using the in-source script just in case - name: Generate Feedback id: generate-feedback run: | @@ -36,6 +32,7 @@ jobs: env: ISSUE_NUMBER: ${{ github.event.pull_request.number }} with: + github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} script: | const owner = "backstage"; const repo = "backstage"; From b6178776a833de193fef1de72a0e41dced873fff Mon Sep 17 00:00:00 2001 From: Suzanne Daniels Date: Wed, 23 Mar 2022 16:42:39 +0100 Subject: [PATCH 058/225] - adding upcoming meetups - changing sort to sort the readdirfilesync - preparing /live page for adopters meetup - changing embed of livepage to correct domain - fix small typos - removing . . in recording 20211118 Signed-off-by: Suzanne Daniels --- microsite/data/on-demand/20211118-01.yaml | 2 +- microsite/data/on-demand/20220323.yaml | 2 +- microsite/data/on-demand/20220420-1.yaml | 9 +++++++++ microsite/data/on-demand/20220427-1.yaml | 9 +++++++++ microsite/pages/en/community.js | 4 ++-- microsite/pages/en/live.js | 4 ++-- microsite/pages/en/on-demand.js | 5 +++-- 7 files changed, 27 insertions(+), 8 deletions(-) create mode 100644 microsite/data/on-demand/20220420-1.yaml create mode 100644 microsite/data/on-demand/20220427-1.yaml diff --git a/microsite/data/on-demand/20211118-01.yaml b/microsite/data/on-demand/20211118-01.yaml index 645e375757..754344a62e 100644 --- a/microsite/data/on-demand/20211118-01.yaml +++ b/microsite/data/on-demand/20211118-01.yaml @@ -2,6 +2,6 @@ title: Community Sessions date: November 18, 2021 category: Meetup -description: In the contributors track for this month’s community session, hear about upcoming deprecations, the fruits of Hacktoberfest, the future of both the Kubernetes plugin and the Tech Insights plugin, tips on contributing, and more. . +description: In the contributors track for this month’s community session, hear about upcoming deprecations, the fruits of Hacktoberfest, the future of both the Kubernetes plugin and the Tech Insights plugin, tips on contributing, and more. youtubeUrl: https://youtu.be/n1OWGwYAOiI youtubeImgUrl: https://i1.ytimg.com/vi/n1OWGwYAOiI/mqdefault.jpg diff --git a/microsite/data/on-demand/20220323.yaml b/microsite/data/on-demand/20220323.yaml index d18c795bf1..4306eaefdf 100644 --- a/microsite/data/on-demand/20220323.yaml +++ b/microsite/data/on-demand/20220323.yaml @@ -4,6 +4,6 @@ date: March 23, 2022 category: Upcoming description: Join the maintainers and contributors for the Contributor Community Sessions youtubeUrl: https://youtu.be/evf_LV0KzIk -youtubeImgUrl: http://localhost:3000/img/b-sessions.png +youtubeImgUrl: https://backstage.io/img/b-sessions.png rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com eventUrl: https://github.com/backstage/community/issues diff --git a/microsite/data/on-demand/20220420-1.yaml b/microsite/data/on-demand/20220420-1.yaml new file mode 100644 index 0000000000..a32402aa68 --- /dev/null +++ b/microsite/data/on-demand/20220420-1.yaml @@ -0,0 +1,9 @@ +--- +title: Adopters Community Sessions +date: April 20, 2022 +category: Upcoming +description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc. +youtubeUrl: https://youtu.be/mFi_X58igzk +youtubeImgUrl: https://backstage.io/img/b-sessions.png +rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com +eventUrl: https://github.com/backstage/community/issues diff --git a/microsite/data/on-demand/20220427-1.yaml b/microsite/data/on-demand/20220427-1.yaml new file mode 100644 index 0000000000..f6b8873bb8 --- /dev/null +++ b/microsite/data/on-demand/20220427-1.yaml @@ -0,0 +1,9 @@ +--- +title: Contributor Community Sessions +date: April 27, 2022 +category: Upcoming +description: Join the maintainers and contributors for the Contributor Community Sessions +youtubeUrl: https://youtu.be/evf_LV0KzIk +youtubeImgUrl: https://backstage.io/img/b-sessions.png +rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com +eventUrl: https://github.com/backstage/community/issues diff --git a/microsite/pages/en/community.js b/microsite/pages/en/community.js index e5a15d1bd2..a6795e2c24 100644 --- a/microsite/pages/en/community.js +++ b/microsite/pages/en/community.js @@ -62,8 +62,8 @@ const Background = props => {
    Backstage Community Sessions is the monthly meetup where we all come together to listen to the latest maintainer updates, learn - from eachother about adopting, share exciting new demos or discuss - any relevat topic like developer effectiveness, developer + from each other about adopting, share exciting new demos or + discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc. diff --git a/microsite/pages/en/live.js b/microsite/pages/en/live.js index 583ba5af10..0cde700697 100644 --- a/microsite/pages/en/live.js +++ b/microsite/pages/en/live.js @@ -36,7 +36,7 @@ const Background = props => { diff --git a/microsite/pages/en/on-demand.js b/microsite/pages/en/on-demand.js index 9fa58fa902..41a730205b 100644 --- a/microsite/pages/en/on-demand.js +++ b/microsite/pages/en/on-demand.js @@ -16,8 +16,9 @@ const { const ondemandDirectory = require('path').join(process.cwd(), 'data/on-demand'); const ondemandMetadata = fs .readdirSync(ondemandDirectory) - .map(file => yaml.load(fs.readFileSync(`./data/on-demand/${file}`, 'utf8'))) - .reverse(); + .sort() + .reverse() + .map(file => yaml.load(fs.readFileSync(`./data/on-demand/${file}`, 'utf8'))); const truncate = text => text.length > 170 ? text.substr(0, 170) + '...' : text; From 8c8bee47f4a74ea82049dd5c2006661807ee0fdd Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Tue, 8 Mar 2022 10:08:32 +0000 Subject: [PATCH 059/225] catalog-common: add CatalogEntityPermission convenience type Signed-off-by: Mike Lewis --- .changeset/rare-waves-hammer.md | 5 +++++ plugins/catalog-common/api-report.md | 5 +++++ plugins/catalog-common/src/index.ts | 1 + plugins/catalog-common/src/permissions.ts | 14 +++++++++++++- 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 .changeset/rare-waves-hammer.md diff --git a/.changeset/rare-waves-hammer.md b/.changeset/rare-waves-hammer.md new file mode 100644 index 0000000000..9981b20440 --- /dev/null +++ b/.changeset/rare-waves-hammer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-common': patch +--- + +Add `CatalogEntityPermission` convenience type. diff --git a/plugins/catalog-common/api-report.md b/plugins/catalog-common/api-report.md index 12ad6af751..c15cbae103 100644 --- a/plugins/catalog-common/api-report.md +++ b/plugins/catalog-common/api-report.md @@ -29,6 +29,11 @@ export interface CatalogEntityDocument extends IndexableDocument { type: string; } +// @alpha +export type CatalogEntityPermission = ResourcePermission< + typeof RESOURCE_TYPE_CATALOG_ENTITY +>; + // @alpha export const catalogEntityReadPermission: ResourcePermission<'catalog-entity'>; diff --git a/plugins/catalog-common/src/index.ts b/plugins/catalog-common/src/index.ts index 08184eb871..dfa90c448b 100644 --- a/plugins/catalog-common/src/index.ts +++ b/plugins/catalog-common/src/index.ts @@ -31,5 +31,6 @@ export { catalogLocationCreatePermission, catalogLocationDeletePermission, } from './permissions'; +export type { CatalogEntityPermission } from './permissions'; export * from './search'; diff --git a/plugins/catalog-common/src/permissions.ts b/plugins/catalog-common/src/permissions.ts index 51a15bb85e..aa95e8c00f 100644 --- a/plugins/catalog-common/src/permissions.ts +++ b/plugins/catalog-common/src/permissions.ts @@ -14,7 +14,10 @@ * limitations under the License. */ -import { createPermission } from '@backstage/plugin-permission-common'; +import { + createPermission, + ResourcePermission, +} from '@backstage/plugin-permission-common'; /** * Permission resource type which corresponds to catalog entities. @@ -24,6 +27,15 @@ import { createPermission } from '@backstage/plugin-permission-common'; */ export const RESOURCE_TYPE_CATALOG_ENTITY = 'catalog-entity'; +/** + * Convenience type for catalog entity + * {@link @backstage/plugin-permission-common#ResourcePermission}s. + * @alpha + */ +export type CatalogEntityPermission = ResourcePermission< + typeof RESOURCE_TYPE_CATALOG_ENTITY +>; + /** * This permission is used to authorize actions that involve reading one or more * entities from the catalog. From 0ffd88a90e06f3fa12ae3ffc32da9d4ec9bda432 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Mon, 7 Mar 2022 17:38:17 +0000 Subject: [PATCH 060/225] catalog-react: require CatalogEntityPermission in useEntityPermission Now that we have stricter typing for permissions, we can restrict the useEntityPermission hook to only be used with permissions of type `CatalogEntityPermission`. Signed-off-by: Mike Lewis --- .changeset/clever-donuts-teach.md | 5 +++++ plugins/catalog-react/api-report.md | 4 ++-- plugins/catalog-react/package.json | 1 + plugins/catalog-react/src/hooks/useEntityPermission.ts | 6 +++--- 4 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 .changeset/clever-donuts-teach.md diff --git a/.changeset/clever-donuts-teach.md b/.changeset/clever-donuts-teach.md new file mode 100644 index 0000000000..eb828dfa4e --- /dev/null +++ b/.changeset/clever-donuts-teach.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Prevent permissions with types other than `CatalogEntityPermission` from being used with the `useEntityPermission` hook. diff --git a/plugins/catalog-react/api-report.md b/plugins/catalog-react/api-report.md index b90072beba..e25c3c92bd 100644 --- a/plugins/catalog-react/api-report.md +++ b/plugins/catalog-react/api-report.md @@ -8,6 +8,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { CATALOG_FILTER_EXISTS } from '@backstage/catalog-client'; import { CatalogApi } from '@backstage/catalog-client'; +import { CatalogEntityPermission } from '@backstage/plugin-catalog-common'; import { ComponentEntity } from '@backstage/catalog-model'; import { ComponentProps } from 'react'; import { CompoundEntityRef } from '@backstage/catalog-model'; @@ -16,7 +17,6 @@ import { IconButton } from '@material-ui/core'; import { LinkProps } from '@backstage/core-components'; import { Observable } from '@backstage/types'; import { Overrides } from '@material-ui/core/styles/overrides'; -import { Permission } from '@backstage/plugin-permission-common'; import { PropsWithChildren } from 'react'; import { default as React_2 } from 'react'; import { ReactNode } from 'react'; @@ -489,7 +489,7 @@ export function useEntityOwnership(): { }; // @alpha -export function useEntityPermission(permission: Permission): { +export function useEntityPermission(permission: CatalogEntityPermission): { loading: boolean; allowed: boolean; error?: Error; diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 336052a88e..62b101d909 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -40,6 +40,7 @@ "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/integration": "^1.0.1-next.0", + "@backstage/plugin-catalog-common": "^1.0.1-next.0", "@backstage/plugin-permission-common": "^0.5.3", "@backstage/plugin-permission-react": "^0.3.4", "@backstage/theme": "^0.2.15", diff --git a/plugins/catalog-react/src/hooks/useEntityPermission.ts b/plugins/catalog-react/src/hooks/useEntityPermission.ts index 55d863726e..bd8f565ecb 100644 --- a/plugins/catalog-react/src/hooks/useEntityPermission.ts +++ b/plugins/catalog-react/src/hooks/useEntityPermission.ts @@ -15,7 +15,7 @@ */ import { stringifyEntityRef } from '@backstage/catalog-model'; -import { Permission } from '@backstage/plugin-permission-common'; +import { CatalogEntityPermission } from '@backstage/plugin-catalog-common'; import { usePermission } from '@backstage/plugin-permission-react'; import { useAsyncEntity } from './useEntity'; @@ -23,14 +23,14 @@ import { useAsyncEntity } from './useEntity'; * A thin wrapper around the * {@link @backstage/plugin-permission-react#usePermission} hook which uses the * current entity in context to make an authorization request for the given - * permission. + * {@link @backstage/plugin-catalog-common#CatalogEntityPermission}. * * Note: this hook blocks the permission request until the entity has loaded in * context. If you have the entityRef and need concurrent requests, use the * `usePermission` hook directly. * @alpha */ -export function useEntityPermission(permission: Permission): { +export function useEntityPermission(permission: CatalogEntityPermission): { loading: boolean; allowed: boolean; error?: Error; From 8cb7acd781aa2a424cfa7870065b53d43ffd36d5 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Fri, 11 Mar 2022 09:21:58 +0000 Subject: [PATCH 061/225] catalog-react: stop using CatalogEntityPermission convenience type There's currently an issue with importing alpha exports from other packages in the monorepo. This works around the issue for now by skipping the use of the `CatalogEntityPermission` convenience type, using `ResourcePermission<'catalog-entity'>` directly instead. cf. https://github.com/backstage/backstage/pull/10128 Signed-off-by: Mike Lewis --- .changeset/clever-donuts-teach.md | 2 +- plugins/catalog-react/api-report.md | 6 ++++-- plugins/catalog-react/src/hooks/useEntityPermission.ts | 6 ++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.changeset/clever-donuts-teach.md b/.changeset/clever-donuts-teach.md index eb828dfa4e..2304de1137 100644 --- a/.changeset/clever-donuts-teach.md +++ b/.changeset/clever-donuts-teach.md @@ -2,4 +2,4 @@ '@backstage/plugin-catalog-react': patch --- -Prevent permissions with types other than `CatalogEntityPermission` from being used with the `useEntityPermission` hook. +Prevent permissions with types other than `ResourcePermission<'catalog-entity'>` from being used with the `useEntityPermission` hook. diff --git a/plugins/catalog-react/api-report.md b/plugins/catalog-react/api-report.md index e25c3c92bd..71ba6452da 100644 --- a/plugins/catalog-react/api-report.md +++ b/plugins/catalog-react/api-report.md @@ -8,7 +8,6 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { CATALOG_FILTER_EXISTS } from '@backstage/catalog-client'; import { CatalogApi } from '@backstage/catalog-client'; -import { CatalogEntityPermission } from '@backstage/plugin-catalog-common'; import { ComponentEntity } from '@backstage/catalog-model'; import { ComponentProps } from 'react'; import { CompoundEntityRef } from '@backstage/catalog-model'; @@ -20,6 +19,7 @@ import { Overrides } from '@material-ui/core/styles/overrides'; import { PropsWithChildren } from 'react'; import { default as React_2 } from 'react'; import { ReactNode } from 'react'; +import { ResourcePermission } from '@backstage/plugin-permission-common'; import { RouteRef } from '@backstage/core-plugin-api'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { StyleRules } from '@material-ui/core/styles/withStyles'; @@ -489,7 +489,9 @@ export function useEntityOwnership(): { }; // @alpha -export function useEntityPermission(permission: CatalogEntityPermission): { +export function useEntityPermission( + permission: ResourcePermission<'catalog-entity'>, +): { loading: boolean; allowed: boolean; error?: Error; diff --git a/plugins/catalog-react/src/hooks/useEntityPermission.ts b/plugins/catalog-react/src/hooks/useEntityPermission.ts index bd8f565ecb..e9fdbaaa6a 100644 --- a/plugins/catalog-react/src/hooks/useEntityPermission.ts +++ b/plugins/catalog-react/src/hooks/useEntityPermission.ts @@ -15,7 +15,7 @@ */ import { stringifyEntityRef } from '@backstage/catalog-model'; -import { CatalogEntityPermission } from '@backstage/plugin-catalog-common'; +import { ResourcePermission } from '@backstage/plugin-permission-common'; import { usePermission } from '@backstage/plugin-permission-react'; import { useAsyncEntity } from './useEntity'; @@ -30,7 +30,9 @@ import { useAsyncEntity } from './useEntity'; * `usePermission` hook directly. * @alpha */ -export function useEntityPermission(permission: CatalogEntityPermission): { +export function useEntityPermission( + permission: ResourcePermission<'catalog-entity'>, +): { loading: boolean; allowed: boolean; error?: Error; From 146ea2117b4eff25ce0cf174347710719a6985a5 Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Fri, 18 Mar 2022 14:26:16 +0000 Subject: [PATCH 062/225] catalog-common: mention that CatalogEntityPermission type is alpha in changeset Signed-off-by: MT Lewis --- .changeset/rare-waves-hammer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/rare-waves-hammer.md b/.changeset/rare-waves-hammer.md index 9981b20440..5b9f7c845d 100644 --- a/.changeset/rare-waves-hammer.md +++ b/.changeset/rare-waves-hammer.md @@ -2,4 +2,4 @@ '@backstage/plugin-catalog-common': patch --- -Add `CatalogEntityPermission` convenience type. +Add `@alpha` `CatalogEntityPermission` convenience type, available for import from `@backstage/plugin-catalog-common/alpha`. From 1e0dbd4fb5bcd627488af70dbe7c9bd2680fd925 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Tue, 22 Mar 2022 20:11:20 -0400 Subject: [PATCH 063/225] Add todo Signed-off-by: Joe Porpeglia --- plugins/catalog-react/src/hooks/useEntityPermission.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/catalog-react/src/hooks/useEntityPermission.ts b/plugins/catalog-react/src/hooks/useEntityPermission.ts index e9fdbaaa6a..e1a8d2e420 100644 --- a/plugins/catalog-react/src/hooks/useEntityPermission.ts +++ b/plugins/catalog-react/src/hooks/useEntityPermission.ts @@ -31,6 +31,8 @@ import { useAsyncEntity } from './useEntity'; * @alpha */ export function useEntityPermission( + // TODO(joeporpeglia) Replace with `CatalogEntityPermission` when the issue described in + // https://github.com/backstage/backstage/pull/10128 is fixed. permission: ResourcePermission<'catalog-entity'>, ): { loading: boolean; From 30f98843591195ac92b7f1ba9292fd81572881d1 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Tue, 8 Mar 2022 09:48:18 +0000 Subject: [PATCH 064/225] search: check for non-resource permissions when authorizing results Now that we can differentiate between ResourcePermissions and other kinds of permissions, we can skip authorizing result-by-result when the permission for a given document type is not a ResourcePermission. Signed-off-by: Mike Lewis --- .changeset/big-mayflies-sin.md | 5 +++++ .../src/service/AuthorizedSearchEngine.test.ts | 4 ++++ .../search-backend/src/service/AuthorizedSearchEngine.ts | 7 ++++++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 .changeset/big-mayflies-sin.md diff --git a/.changeset/big-mayflies-sin.md b/.changeset/big-mayflies-sin.md new file mode 100644 index 0000000000..6aa18fc9c5 --- /dev/null +++ b/.changeset/big-mayflies-sin.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend': patch +--- + +Check for non-resource permissions when authorizing result-by-result in AuthorizedSearchEngine. diff --git a/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts b/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts index 76b3cf5184..4198730947 100644 --- a/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts +++ b/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts @@ -82,24 +82,28 @@ describe('AuthorizedSearchEngine', () => { visibilityPermission: createPermission({ name: 'search.users.read', attributes: { action: 'read' }, + resourceType: 'test-user', }), }, [typeTemplates]: { visibilityPermission: createPermission({ name: 'search.templates.read', attributes: { action: 'read' }, + resourceType: 'test-template', }), }, [typeServices]: { visibilityPermission: createPermission({ name: 'search.services.read', attributes: { action: 'read' }, + resourceType: 'test-service', }), }, [typeGroups]: { visibilityPermission: createPermission({ name: 'search.groups.read', attributes: { action: 'read' }, + resourceType: 'test-group', }), }, }; diff --git a/plugins/search-backend/src/service/AuthorizedSearchEngine.ts b/plugins/search-backend/src/service/AuthorizedSearchEngine.ts index 2a5fc471f5..cba5f0eca8 100644 --- a/plugins/search-backend/src/service/AuthorizedSearchEngine.ts +++ b/plugins/search-backend/src/service/AuthorizedSearchEngine.ts @@ -21,6 +21,7 @@ import { AuthorizeDecision, AuthorizeQuery, AuthorizeResult, + isResourcePermission, PermissionAuthorizer, } from '@backstage/plugin-permission-common'; import { @@ -197,7 +198,11 @@ export class AuthorizedSearchEngine implements SearchEngine { const permission = this.types[result.type]?.visibilityPermission; const resourceRef = result.document.authorization?.resourceRef; - if (!permission || !resourceRef) { + if ( + !permission || + !isResourcePermission(permission) || + !resourceRef + ) { return result; } From 9da18e47153c412ae254b83428007fefbdf5ab0c Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Fri, 18 Mar 2022 14:17:46 +0000 Subject: [PATCH 065/225] search: throw error for unexpected non-resource permissions when authorizing result-by-result We only reach this point in the code for types where the initial authorization returned CONDITIONAL -- ALLOWs return early immediately above, and types where the decision was DENY get filtered out entirely when querying. This means the call to isResourcePermission here is mostly about narrowing the types, since the only way for it to be false is if the PermissionPolicy returned a CONDITIONAL decision for a non-resource permission, which can't happen - it would throw an error during validation in the permission-backend. Signed-off-by: MT Lewis --- .../src/service/AuthorizedSearchEngine.ts | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/plugins/search-backend/src/service/AuthorizedSearchEngine.ts b/plugins/search-backend/src/service/AuthorizedSearchEngine.ts index cba5f0eca8..3e7dc6e147 100644 --- a/plugins/search-backend/src/service/AuthorizedSearchEngine.ts +++ b/plugins/search-backend/src/service/AuthorizedSearchEngine.ts @@ -198,14 +198,27 @@ export class AuthorizedSearchEngine implements SearchEngine { const permission = this.types[result.type]?.visibilityPermission; const resourceRef = result.document.authorization?.resourceRef; - if ( - !permission || - !isResourcePermission(permission) || - !resourceRef - ) { + if (!permission || !resourceRef) { return result; } + // We only reach this point in the code for types where the initial + // authorization returned CONDITIONAL -- ALLOWs return early + // immediately above, and types where the decision was DENY get + // filtered out entirely when querying. + // + // This means the call to isResourcePermission here is mostly about + // narrowing the type of permission - the only way to get here with a + // non-resource permission is if the PermissionPolicy returns a + // CONDITIONAL decision for a non-resource permission, which can't + // happen - it would throw an error during validation in the + // permission-backend. + if (!isResourcePermission(permission)) { + throw new Error( + `Unexpected conditional decision returned for non-resource permission "${permission.name}"`, + ); + } + return authorizer .load({ permission, resourceRef }) .then(decision => From 5bdcb8c45d945ce23eae813e83b797f1c9abd013 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Mon, 7 Mar 2022 17:39:37 +0000 Subject: [PATCH 066/225] permission-react: more restrictive typing for usePermission and PermissionedRoute Signed-off-by: Mike Lewis --- .changeset/blue-beers-kiss.md | 5 +++ plugins/permission-react/api-report.md | 23 +++++++---- .../src/components/PermissionedRoute.tsx | 26 ++++++++++--- .../src/hooks/usePermission.ts | 38 ++++++++++++++----- 4 files changed, 70 insertions(+), 22 deletions(-) create mode 100644 .changeset/blue-beers-kiss.md diff --git a/.changeset/blue-beers-kiss.md b/.changeset/blue-beers-kiss.md new file mode 100644 index 0000000000..b05f99ebc9 --- /dev/null +++ b/.changeset/blue-beers-kiss.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-react': minor +--- + +**BREAKING**: More restrictive typing for `usePermission` hook and `PermissionedRoute` component. It's no longer possible to pass a `resourceRef` unless the permission is of type `ResourcPermission`. diff --git a/plugins/permission-react/api-report.md b/plugins/permission-react/api-report.md index 1bcb01fa32..81d9e09743 100644 --- a/plugins/permission-react/api-report.md +++ b/plugins/permission-react/api-report.md @@ -12,6 +12,7 @@ import { DiscoveryApi } from '@backstage/core-plugin-api'; import { IdentityApi } from '@backstage/core-plugin-api'; import { Permission } from '@backstage/plugin-permission-common'; import { ReactElement } from 'react'; +import { ResourcePermission } from '@backstage/plugin-permission-common'; import { Route } from 'react-router'; // @public (undocumented) @@ -44,17 +45,25 @@ export const permissionApiRef: ApiRef; // @public export const PermissionedRoute: ( props: ComponentProps & { - permission: Permission; - resourceRef?: string; errorComponent?: ReactElement | null; - }, + } & ( + | { + permission: Exclude; + resourceRef?: never; + } + | { + permission: ResourcePermission; + resourceRef: string | undefined; + } + ), ) => JSX.Element; // @public -export const usePermission: ( - permission: Permission, - resourceRef?: string | undefined, -) => AsyncPermissionResult; +export function usePermission( + ...[permission, resourceRef]: + | [ResourcePermission, string | undefined] + | [Exclude] +): AsyncPermissionResult; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/permission-react/src/components/PermissionedRoute.tsx b/plugins/permission-react/src/components/PermissionedRoute.tsx index 76017308aa..92b1830eca 100644 --- a/plugins/permission-react/src/components/PermissionedRoute.tsx +++ b/plugins/permission-react/src/components/PermissionedRoute.tsx @@ -18,7 +18,11 @@ import React, { ComponentProps, ReactElement } from 'react'; import { Route } from 'react-router'; import { useApp } from '@backstage/core-plugin-api'; import { usePermission } from '../hooks'; -import { Permission } from '@backstage/plugin-permission-common'; +import { + isResourcePermission, + Permission, + ResourcePermission, +} from '@backstage/plugin-permission-common'; /** * Returns a React Router Route which only renders the element when authorized. If unauthorized, the Route will render a @@ -28,13 +32,25 @@ import { Permission } from '@backstage/plugin-permission-common'; */ export const PermissionedRoute = ( props: ComponentProps & { - permission: Permission; - resourceRef?: string; errorComponent?: ReactElement | null; - }, + } & ( + | { + permission: Exclude; + resourceRef?: never; + } + | { + permission: ResourcePermission; + resourceRef: string | undefined; + } + ), ) => { const { permission, resourceRef, errorComponent, ...otherProps } = props; - const permissionResult = usePermission(permission, resourceRef); + + const permissionResult = usePermission( + ...(isResourcePermission(permission) + ? [permission, resourceRef] + : [permission]), + ); const app = useApp(); const { NotFoundErrorPage } = app.getComponents(); diff --git a/plugins/permission-react/src/hooks/usePermission.ts b/plugins/permission-react/src/hooks/usePermission.ts index cc27f82c59..f2895ffdcb 100644 --- a/plugins/permission-react/src/hooks/usePermission.ts +++ b/plugins/permission-react/src/hooks/usePermission.ts @@ -17,8 +17,11 @@ import { useApi } from '@backstage/core-plugin-api'; import { permissionApiRef } from '../apis'; import { + AuthorizeQuery, AuthorizeResult, + isResourcePermission, Permission, + ResourcePermission, } from '@backstage/plugin-permission-common'; import useSWR from 'swr'; @@ -30,25 +33,40 @@ export type AsyncPermissionResult = { }; /** - * React hook utility for authorization. Given a - * {@link @backstage/plugin-permission-common#Permission} and an optional - * resourceRef, it will return whether or not access is allowed (for the given - * resource, if resourceRef is provided). See + * React hook utility for authorization. Given either a non-resource + * {@link @backstage/plugin-permission-common#Permission} or a + * {@link @backstage/plugin-permission-common#ResourcePermission} and an + * optional resourceRef, it will return whether or not access is allowed (for + * the given resource, if resourceRef is provided). See * {@link @backstage/plugin-permission-common/PermissionClient#authorize} for * more details. * + * The resourceRef parameter is optional to allow calling this hook with an + * entity that might be loading asynchronously, but when resourceRef is not + * supplied, the value of `allowed` will always be false. + * * Note: This hook uses stale-while-revalidate to help avoid flicker in UI * elements that would be conditionally rendered based on the `allowed` result * of this hook. * @public */ -export const usePermission = ( - permission: Permission, - resourceRef?: string, -): AsyncPermissionResult => { +export function usePermission( + ...[permission, resourceRef]: + | [ResourcePermission, string | undefined] + | [Exclude] +): AsyncPermissionResult { const permissionApi = useApi(permissionApiRef); const { data, error } = useSWR({ permission, resourceRef }, async args => { - const { result } = await permissionApi.authorize(args); + // We could make the resourceRef parameter required to avoid this check, but + // it would make using this hook difficult in situations where the entity + // must be asynchronously loaded, so instead we short-circuit to a deny when + // no resourceRef is supplied, on the assumption that the resourceRef is + // still loading outside the hook. + if (isResourcePermission(args.permission) && !args.resourceRef) { + return AuthorizeResult.DENY; + } + + const { result } = await permissionApi.authorize(args as AuthorizeQuery); return result; }); @@ -59,4 +77,4 @@ export const usePermission = ( return { loading: true, allowed: false }; } return { loading: false, allowed: data === AuthorizeResult.ALLOW }; -}; +} From d88b5b3009825614412c311caf24514c731fb35a Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Tue, 15 Mar 2022 10:52:53 +0000 Subject: [PATCH 067/225] permission-react: fix changeset typo Co-authored-by: Joe Porpeglia Signed-off-by: MT Lewis --- .changeset/blue-beers-kiss.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/blue-beers-kiss.md b/.changeset/blue-beers-kiss.md index b05f99ebc9..15ea58efb4 100644 --- a/.changeset/blue-beers-kiss.md +++ b/.changeset/blue-beers-kiss.md @@ -2,4 +2,4 @@ '@backstage/plugin-permission-react': minor --- -**BREAKING**: More restrictive typing for `usePermission` hook and `PermissionedRoute` component. It's no longer possible to pass a `resourceRef` unless the permission is of type `ResourcPermission`. +**BREAKING**: More restrictive typing for `usePermission` hook and `PermissionedRoute` component. It's no longer possible to pass a `resourceRef` unless the permission is of type `ResourcePermission`. From 91703e8086287a882d1fdec8d2176da557bb0ec5 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Wed, 16 Mar 2022 17:14:07 -0400 Subject: [PATCH 068/225] permission-react: use object instead of tuple for usePermission args Co-authored-by: Mike Lewis Signed-off-by: Joe Porpeglia --- .../src/hooks/useEntityPermission.ts | 6 +++--- .../src/components/PermissionedRoute.tsx | 6 +++--- .../src/hooks/usePermission.ts | 19 ++++++++++++++----- .../ScaffolderPage/ScaffolderPage.tsx | 4 +++- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/plugins/catalog-react/src/hooks/useEntityPermission.ts b/plugins/catalog-react/src/hooks/useEntityPermission.ts index e1a8d2e420..3a2c12ff36 100644 --- a/plugins/catalog-react/src/hooks/useEntityPermission.ts +++ b/plugins/catalog-react/src/hooks/useEntityPermission.ts @@ -48,10 +48,10 @@ export function useEntityPermission( allowed, loading: loadingPermission, error: permissionError, - } = usePermission( + } = usePermission({ permission, - entity ? stringifyEntityRef(entity) : undefined, - ); + resourceRef: entity ? stringifyEntityRef(entity) : undefined, + }); if (loadingEntity || loadingPermission) { return { loading: true, allowed: false }; diff --git a/plugins/permission-react/src/components/PermissionedRoute.tsx b/plugins/permission-react/src/components/PermissionedRoute.tsx index 92b1830eca..dd39c5bb4f 100644 --- a/plugins/permission-react/src/components/PermissionedRoute.tsx +++ b/plugins/permission-react/src/components/PermissionedRoute.tsx @@ -47,9 +47,9 @@ export const PermissionedRoute = ( const { permission, resourceRef, errorComponent, ...otherProps } = props; const permissionResult = usePermission( - ...(isResourcePermission(permission) - ? [permission, resourceRef] - : [permission]), + isResourcePermission(permission) + ? { permission, resourceRef } + : { permission }, ); const app = useApp(); const { NotFoundErrorPage } = app.getComponents(); diff --git a/plugins/permission-react/src/hooks/usePermission.ts b/plugins/permission-react/src/hooks/usePermission.ts index f2895ffdcb..6a00e07663 100644 --- a/plugins/permission-react/src/hooks/usePermission.ts +++ b/plugins/permission-react/src/hooks/usePermission.ts @@ -32,6 +32,17 @@ export type AsyncPermissionResult = { error?: Error; }; +/** @public */ +export type UsePermissionProps = + | { + permission: Exclude; + resourceRef?: never; + } + | { + permission: ResourcePermission; + resourceRef: string | undefined; + }; + /** * React hook utility for authorization. Given either a non-resource * {@link @backstage/plugin-permission-common#Permission} or a @@ -41,7 +52,7 @@ export type AsyncPermissionResult = { * {@link @backstage/plugin-permission-common/PermissionClient#authorize} for * more details. * - * The resourceRef parameter is optional to allow calling this hook with an + * The resourceRef field is optional to allow calling this hook with an * entity that might be loading asynchronously, but when resourceRef is not * supplied, the value of `allowed` will always be false. * @@ -51,12 +62,10 @@ export type AsyncPermissionResult = { * @public */ export function usePermission( - ...[permission, resourceRef]: - | [ResourcePermission, string | undefined] - | [Exclude] + props: UsePermissionProps, ): AsyncPermissionResult { const permissionApi = useApi(permissionApiRef); - const { data, error } = useSWR({ permission, resourceRef }, async args => { + const { data, error } = useSWR(props, async (args: UsePermissionProps) => { // We could make the resourceRef parameter required to avoid this check, but // it would make using this hook difficult in situations where the entity // must be asynchronously loaded, so instead we short-circuit to a deny when diff --git a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx index a1ceec194d..a68e320c13 100644 --- a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx +++ b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx @@ -63,7 +63,9 @@ export const ScaffolderPageContents = ({ }, }; - const { allowed } = usePermission(catalogEntityCreatePermission); + const { allowed } = usePermission({ + permission: catalogEntityCreatePermission, + }); return ( From 8c6129d3e09f168a035d092bdc1107d7408b101c Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Thu, 17 Mar 2022 12:16:35 +0000 Subject: [PATCH 069/225] permission-react: inline parameter type to clean up the api report a bit Signed-off-by: MT Lewis --- plugins/permission-react/api-report.md | 12 +++++++--- .../src/hooks/usePermission.ts | 23 ++++++++----------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/plugins/permission-react/api-report.md b/plugins/permission-react/api-report.md index 81d9e09743..6b66376cb7 100644 --- a/plugins/permission-react/api-report.md +++ b/plugins/permission-react/api-report.md @@ -60,9 +60,15 @@ export const PermissionedRoute: ( // @public export function usePermission( - ...[permission, resourceRef]: - | [ResourcePermission, string | undefined] - | [Exclude] + input: + | { + permission: Exclude; + resourceRef?: never; + } + | { + permission: ResourcePermission; + resourceRef: string | undefined; + }, ): AsyncPermissionResult; // (No @packageDocumentation comment for this package) diff --git a/plugins/permission-react/src/hooks/usePermission.ts b/plugins/permission-react/src/hooks/usePermission.ts index 6a00e07663..1e7f45129d 100644 --- a/plugins/permission-react/src/hooks/usePermission.ts +++ b/plugins/permission-react/src/hooks/usePermission.ts @@ -32,17 +32,6 @@ export type AsyncPermissionResult = { error?: Error; }; -/** @public */ -export type UsePermissionProps = - | { - permission: Exclude; - resourceRef?: never; - } - | { - permission: ResourcePermission; - resourceRef: string | undefined; - }; - /** * React hook utility for authorization. Given either a non-resource * {@link @backstage/plugin-permission-common#Permission} or a @@ -62,10 +51,18 @@ export type UsePermissionProps = * @public */ export function usePermission( - props: UsePermissionProps, + input: + | { + permission: Exclude; + resourceRef?: never; + } + | { + permission: ResourcePermission; + resourceRef: string | undefined; + }, ): AsyncPermissionResult { const permissionApi = useApi(permissionApiRef); - const { data, error } = useSWR(props, async (args: UsePermissionProps) => { + const { data, error } = useSWR(input, async (args: typeof input) => { // We could make the resourceRef parameter required to avoid this check, but // it would make using this hook difficult in situations where the entity // must be asynchronously loaded, so instead we short-circuit to a deny when From 3e0bbeda8b45e6131424bb012bed318b21d29510 Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Thu, 17 Mar 2022 12:16:48 +0000 Subject: [PATCH 070/225] permission-react: fix usePermission tests Signed-off-by: MT Lewis --- plugins/permission-react/src/hooks/usePermission.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/permission-react/src/hooks/usePermission.test.tsx b/plugins/permission-react/src/hooks/usePermission.test.tsx index f67f961dd2..2862b10f96 100644 --- a/plugins/permission-react/src/hooks/usePermission.test.tsx +++ b/plugins/permission-react/src/hooks/usePermission.test.tsx @@ -31,7 +31,7 @@ const permission = createPermission({ }); const TestComponent: FC = () => { - const { loading, allowed, error } = usePermission(permission); + const { loading, allowed, error } = usePermission({ permission }); return (
    {loading && 'loading'} From c84d4ad37326cc0dba88615d8952b639768c346b Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Tue, 22 Mar 2022 11:02:34 -0400 Subject: [PATCH 071/225] Fix usePermission usage Signed-off-by: Joe Porpeglia --- .../src/next/TemplateListPage/RegisterExistingButton.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder/src/next/TemplateListPage/RegisterExistingButton.tsx b/plugins/scaffolder/src/next/TemplateListPage/RegisterExistingButton.tsx index 8269602703..16e0a355a3 100644 --- a/plugins/scaffolder/src/next/TemplateListPage/RegisterExistingButton.tsx +++ b/plugins/scaffolder/src/next/TemplateListPage/RegisterExistingButton.tsx @@ -39,7 +39,9 @@ export type RegisterExistingButtonProps = { */ export const RegisterExistingButton = (props: RegisterExistingButtonProps) => { const { title, to } = props; - const { allowed } = usePermission(catalogEntityCreatePermission); + const { allowed } = usePermission({ + permission: catalogEntityCreatePermission, + }); const isXSScreen = useMediaQuery(theme => theme.breakpoints.down('xs'), ); From 4431873583145df8d6c56f7fcccac5c878e308e0 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Wed, 23 Mar 2022 15:39:52 -0400 Subject: [PATCH 072/225] Add changeset Signed-off-by: Joe Porpeglia --- .changeset/thin-lizards-battle.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/thin-lizards-battle.md diff --git a/.changeset/thin-lizards-battle.md b/.changeset/thin-lizards-battle.md new file mode 100644 index 0000000000..de3658f042 --- /dev/null +++ b/.changeset/thin-lizards-battle.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-react': patch +'@backstage/plugin-scaffolder': patch +--- + +Update `usePermission` usage. From aabd601b114386a16b91d230e2c36ae36e50edb7 Mon Sep 17 00:00:00 2001 From: Simon Gellis Date: Wed, 23 Mar 2022 17:45:53 -0400 Subject: [PATCH 073/225] Support creating draft github PRs Signed-off-by: Simon Gellis --- .../actions/builtin/publish/githubPullRequest.test.ts | 2 ++ .../actions/builtin/publish/githubPullRequest.ts | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.test.ts index 464498c0c4..d030430924 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.test.ts @@ -85,6 +85,7 @@ describe('createPublishGithubPullRequestAction', () => { title: 'Create my new app', branchName: 'new-app', description: 'This PR is really good', + draft: true, }; mockFs({ @@ -109,6 +110,7 @@ describe('createPublishGithubPullRequestAction', () => { title: 'Create my new app', head: 'new-app', body: 'This PR is really good', + draft: true, changes: [ { commit: 'Create my new app', diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts index 30293f2654..ca4827e423 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts @@ -114,6 +114,7 @@ export const createPublishGithubPullRequestAction = ({ title: string; branchName: string; description: string; + draft?: boolean; repoUrl: string; targetPath?: string; sourcePath?: string; @@ -145,6 +146,11 @@ export const createPublishGithubPullRequestAction = ({ title: 'Pull Request Description', description: 'The description of the pull request', }, + draft: { + type: 'boolean', + title: 'Create as Draft', + description: 'Create a draft pull request', + }, sourcePath: { type: 'string', title: 'Working Subdirectory', @@ -186,6 +192,7 @@ export const createPublishGithubPullRequestAction = ({ branchName, title, description, + draft, targetPath, sourcePath, token: providedToken, @@ -264,6 +271,7 @@ export const createPublishGithubPullRequestAction = ({ changes, body: description, head: branchName, + draft, }); if (!response) { From 5fd5a1ae806614aa3a38c7e32c96f0f1ed4c5bba Mon Sep 17 00:00:00 2001 From: Simon Gellis Date: Wed, 23 Mar 2022 17:53:13 -0400 Subject: [PATCH 074/225] Update API docs Signed-off-by: Simon Gellis --- plugins/scaffolder-backend/api-report.md | 1 + .../src/scaffolder/actions/builtin/publish/githubPullRequest.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 89ca6b55bd..2c44004e5b 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -251,6 +251,7 @@ export const createPublishGithubPullRequestAction: ({ branchName: string; description: string; repoUrl: string; + draft?: boolean | undefined; targetPath?: string | undefined; sourcePath?: string | undefined; token?: string | undefined; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts index ca4827e423..3bf90d1e30 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts @@ -114,8 +114,8 @@ export const createPublishGithubPullRequestAction = ({ title: string; branchName: string; description: string; - draft?: boolean; repoUrl: string; + draft?: boolean; targetPath?: string; sourcePath?: string; token?: string; From f5f921dafb9ee07b89fd563d833834b7d02c1880 Mon Sep 17 00:00:00 2001 From: Simon Gellis Date: Wed, 23 Mar 2022 17:59:13 -0400 Subject: [PATCH 075/225] Add changeset Signed-off-by: Simon Gellis --- .changeset/moody-ducks-return.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/moody-ducks-return.md diff --git a/.changeset/moody-ducks-return.md b/.changeset/moody-ducks-return.md new file mode 100644 index 0000000000..93d03be66d --- /dev/null +++ b/.changeset/moody-ducks-return.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Add new option to create draft GitHub PRs From e704667f01167eb9fc727bb9911c494df1dccd4a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 23:54:51 +0100 Subject: [PATCH 076/225] workflows: switch changeset feedback to pull_request_target Signed-off-by: Patrik Oldsberg --- .../workflows/automate_changeset_feedback.yml | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index 7afa66d4b9..5e42695f1f 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -1,9 +1,19 @@ name: Automate changeset feedback on: - pull_request: - types: - - opened - - synchronize + pull_request_target: + +permissions: + pull-requests: write + actions: none + checks: none + contents: none + deployments: none + issues: none + packages: none + pages: none + repository-projects: none + security-events: none + statuses: none jobs: feedback: @@ -19,7 +29,7 @@ jobs: - name: fetch base run: git fetch --depth 1 origin ${{ github.base_ref }} - # We avoid using the in-source script just in case + # We avoid using the in-source script since this workflow has elevated permissions that we don't want to expose - name: Generate Feedback id: generate-feedback run: | @@ -32,7 +42,6 @@ jobs: env: ISSUE_NUMBER: ${{ github.event.pull_request.number }} with: - github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} script: | const owner = "backstage"; const repo = "backstage"; From 8943792a3f67811dfa9326582f108c78beb1dfa7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 23:55:21 +0100 Subject: [PATCH 077/225] workflows: avoid running changeset feedback on bot PRs altogether Signed-off-by: Patrik Oldsberg --- .github/workflows/automate_changeset_feedback.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index 5e42695f1f..7d1b286c3c 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -17,7 +17,8 @@ permissions: jobs: feedback: - if: github.repository == 'backstage/backstage' # prevent running on forks + # prevent running towards forks and version packages + if: github.repository == 'backstage/backstage' && github.event.pull_request.user.login != 'backstage-service' runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -38,7 +39,6 @@ jobs: - name: Post Feedback uses: actions/github-script@v5 - if: github.event.pull_request.user.login != 'backstage-service' env: ISSUE_NUMBER: ${{ github.event.pull_request.number }} with: From 918d695c62fafcafbb75b19f56ce45b70f82b827 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 00:17:04 +0100 Subject: [PATCH 078/225] workflows: make sure no existing feedback generate script exists Signed-off-by: Patrik Oldsberg --- .github/workflows/automate_changeset_feedback.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index 7d1b286c3c..efcbaf210b 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -34,6 +34,7 @@ jobs: - name: Generate Feedback id: generate-feedback run: | + rm -f generate.js wget -O generate.js https://raw.githubusercontent.com/backstage/backstage/master/scripts/generate-changeset-feedback.js 1>&2 node generate.js FETCH_HEAD > feedback.txt From e230f704dddaa344949afd90bb7042488158033d Mon Sep 17 00:00:00 2001 From: Shailendra Ahir Date: Thu, 24 Mar 2022 08:40:46 +0530 Subject: [PATCH 079/225] #8850 Updated api report Signed-off-by: Shailendra Ahir --- plugins/catalog-graph/api-report.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/catalog-graph/api-report.md b/plugins/catalog-graph/api-report.md index 82db1dac3b..d9d8019fd4 100644 --- a/plugins/catalog-graph/api-report.md +++ b/plugins/catalog-graph/api-report.md @@ -128,6 +128,8 @@ export const EntityRelationsGraph: ({ relationPairs, className, zoom, + renderNode, + renderLabel, }: { rootEntityNames: CompoundEntityRef | CompoundEntityRef[]; maxDepth?: number | undefined; @@ -142,6 +144,10 @@ export const EntityRelationsGraph: ({ relationPairs?: RelationPairs | undefined; className?: string | undefined; zoom?: 'disabled' | 'enabled' | 'enable-on-click' | undefined; + renderNode?: DependencyGraphTypes.RenderNodeFunction | undefined; + renderLabel?: + | DependencyGraphTypes.RenderLabelFunction + | undefined; }) => JSX.Element; // @public From ecd72391fb0501beb0b1894f73daedc59ca8fb9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 04:08:09 +0000 Subject: [PATCH 080/225] build(deps): bump @spotify/eslint-config-typescript Bumps [@spotify/eslint-config-typescript](https://github.com/spotify/web-scripts) from 12.0.0 to 13.0.0. - [Release notes](https://github.com/spotify/web-scripts/releases) - [Changelog](https://github.com/spotify/web-scripts/blob/master/CHANGELOG.md) - [Commits](https://github.com/spotify/web-scripts/compare/v12.0.0...v13.0.0) --- updated-dependencies: - dependency-name: "@spotify/eslint-config-typescript" dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .changeset/dependabot-c1fe92f.md | 5 +++++ packages/cli/package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 .changeset/dependabot-c1fe92f.md diff --git a/.changeset/dependabot-c1fe92f.md b/.changeset/dependabot-c1fe92f.md new file mode 100644 index 0000000000..8d106e3962 --- /dev/null +++ b/.changeset/dependabot-c1fe92f.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +build(deps): bump `@spotify/eslint-config-typescript` diff --git a/packages/cli/package.json b/packages/cli/package.json index fcf1f1346c..62a5f46a92 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -47,7 +47,7 @@ "@rollup/plugin-yaml": "^3.1.0", "@spotify/eslint-config-base": "^13.0.0", "@spotify/eslint-config-react": "^12.0.0", - "@spotify/eslint-config-typescript": "^12.0.0", + "@spotify/eslint-config-typescript": "^13.0.0", "@sucrase/jest-plugin": "^2.1.1", "@sucrase/webpack-loader": "^2.0.0", "@svgr/plugin-jsx": "6.2.x", diff --git a/yarn.lock b/yarn.lock index ef42dc9208..36068320ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5188,10 +5188,10 @@ resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-12.0.0.tgz#5b8d4bc3b81a8ec2824648f482f1f6c3cf711893" integrity sha512-lNHZRtJesNA273OJHBVUGAg2JYyVDZ+bsT7h3OwnX1HYgejJ3YcKPSziPM8TGFAN8DruH3tHFfaM63uAIA1+uw== -"@spotify/eslint-config-typescript@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#4c7af3f74a47668bec0c860b72e2a0103e78a138" - integrity sha512-nMVll8ZkN/W8+IHn6Iz3YzCKW0qhrn3TVfyxkAr3qmXm5cex+GzyUdZEuxb8rdN2inZL6A1Il2NFfO5p/UKxog== +"@spotify/eslint-config-typescript@^13.0.0": + version "13.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz#908a51e05de7ec9d2e3b136f9831e0ddb36c7f89" + integrity sha512-pR9hptdnu39FCofS9y4SbLRJOgGNhBsX6N24HD3LxbLnVedSF2kpqMmgaBw3W2T932oXSrJlf5nsCePWVsUTjQ== "@spotify/prettier-config@^12.0.0": version "12.0.0" From f672b24272b04207a2c77f166719ce813a9b95da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 04:11:15 +0000 Subject: [PATCH 081/225] build(deps): bump @graphql-tools/schema from 8.3.1 to 8.3.5 Bumps [@graphql-tools/schema](https://github.com/ardatan/graphql-tools/tree/HEAD/packages/schema) from 8.3.1 to 8.3.5. - [Release notes](https://github.com/ardatan/graphql-tools/releases) - [Changelog](https://github.com/ardatan/graphql-tools/blob/master/packages/schema/CHANGELOG.md) - [Commits](https://github.com/ardatan/graphql-tools/commits/@graphql-tools/schema@8.3.5/packages/schema) --- updated-dependencies: - dependency-name: "@graphql-tools/schema" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef42dc9208..e2d1ab9985 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2504,6 +2504,14 @@ p-limit "3.1.0" tslib "~2.3.0" +"@graphql-tools/merge@8.2.6", "@graphql-tools/merge@^8.2.1": + version "8.2.6" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz#7fb615fa9c143c3151ff025e501d52bd48186d19" + integrity sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw== + dependencies: + "@graphql-tools/utils" "8.6.5" + tslib "~2.3.0" + "@graphql-tools/merge@^6.0.0", "@graphql-tools/merge@^6.2.12": version "6.2.14" resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.14.tgz#694e2a2785ba47558e5665687feddd2935e9d94e" @@ -2513,14 +2521,6 @@ "@graphql-tools/utils" "^7.7.0" tslib "~2.2.0" -"@graphql-tools/merge@^8.2.1": - version "8.2.1" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.1.tgz#bf83aa06a0cfc6a839e52a58057a84498d0d51ff" - integrity sha512-Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA== - dependencies: - "@graphql-tools/utils" "^8.5.1" - tslib "~2.3.0" - "@graphql-tools/mock@^8.1.2": version "8.5.1" resolved "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.5.1.tgz#379d18eafdcb65486beb8f9247b33b7b693c53aa" @@ -2573,7 +2573,7 @@ relay-compiler "12.0.0" tslib "~2.3.0" -"@graphql-tools/schema@8.3.1", "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": +"@graphql-tools/schema@8.3.1": version "8.3.1" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74" integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ== @@ -2592,6 +2592,16 @@ tslib "~2.2.0" value-or-promise "1.0.6" +"@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": + version "8.3.5" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz#ebec0c0c7f53e591d34375d6f81d0660852fcaca" + integrity sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg== + dependencies: + "@graphql-tools/merge" "8.2.6" + "@graphql-tools/utils" "8.6.5" + tslib "~2.3.0" + value-or-promise "1.0.11" + "@graphql-tools/url-loader@^6.0.0": version "6.10.1" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz#dc741e4299e0e7ddf435eba50a1f713b3e763b33" @@ -2649,13 +2659,20 @@ dependencies: tslib "~2.3.0" -"@graphql-tools/utils@8.6.2", "@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.5.3", "@graphql-tools/utils@^8.6.0": +"@graphql-tools/utils@8.6.2": version "8.6.2" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.2.tgz#095408135f091aac68fe18a0a21b708e685500da" integrity sha512-x1DG0cJgpJtImUlNE780B/dfp8pxvVxOD6UeykFH5rHes26S4kGokbgU8F1IgrJ1vAPm/OVBHtd2kicTsPfwdA== dependencies: tslib "~2.3.0" +"@graphql-tools/utils@8.6.5", "@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.5.3", "@graphql-tools/utils@^8.6.0": + version "8.6.5" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.5.tgz#ac04571b03f854c7a938b2ab700516a6c6d32335" + integrity sha512-mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA== + dependencies: + tslib "~2.3.0" + "@graphql-tools/utils@^7.0.0", "@graphql-tools/utils@^7.1.2", "@graphql-tools/utils@^7.5.0", "@graphql-tools/utils@^7.7.0", "@graphql-tools/utils@^7.7.1", "@graphql-tools/utils@^7.8.1", "@graphql-tools/utils@^7.9.0": version "7.10.0" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz#07a4cb5d1bec1ff1dc1d47a935919ee6abd38699" From f151dfee5a225522590a14c02e9517371f41e420 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 04:13:00 +0000 Subject: [PATCH 082/225] build(deps): bump eslint-webpack-plugin from 2.6.0 to 3.1.1 Bumps [eslint-webpack-plugin](https://github.com/webpack-contrib/eslint-webpack-plugin) from 2.6.0 to 3.1.1. - [Release notes](https://github.com/webpack-contrib/eslint-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/eslint-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/eslint-webpack-plugin/compare/v2.6.0...v3.1.1) --- updated-dependencies: - dependency-name: eslint-webpack-plugin dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .changeset/dependabot-6754062.md | 5 +++++ packages/cli/package.json | 2 +- yarn.lock | 19 +++++-------------- 3 files changed, 11 insertions(+), 15 deletions(-) create mode 100644 .changeset/dependabot-6754062.md diff --git a/.changeset/dependabot-6754062.md b/.changeset/dependabot-6754062.md new file mode 100644 index 0000000000..14d9648071 --- /dev/null +++ b/.changeset/dependabot-6754062.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +build(deps): bump `eslint-webpack-plugin` from 2.6.0 to 3.1.1 diff --git a/packages/cli/package.json b/packages/cli/package.json index fcf1f1346c..62ed41ab4d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -77,7 +77,7 @@ "eslint-plugin-monorepo": "^0.3.2", "eslint-plugin-react": "^7.28.0", "eslint-plugin-react-hooks": "^4.3.0", - "eslint-webpack-plugin": "^2.6.0", + "eslint-webpack-plugin": "^3.1.1", "express": "^4.17.1", "fork-ts-checker-webpack-plugin": "^7.0.0-alpha.8", "fs-extra": "10.0.1", diff --git a/yarn.lock b/yarn.lock index ef42dc9208..1b94eb69f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5817,15 +5817,7 @@ "@types/eslint" "*" "@types/estree" "*" -"@types/eslint@*": - version "6.1.8" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-6.1.8.tgz#7e868f89bc1e520323d405940e49cb912ede5bba" - integrity sha512-CJBhm9pYdUS8cFVbXACWlLxZWFBTQMiM0eI6RYxng3u9oQ9gHdQ5PN89DHPrK4RISRzX62nRsteUlbBgEIdSug== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/eslint@^7.28.2": +"@types/eslint@*", "@types/eslint@^7.28.2": version "7.29.0" resolved "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== @@ -11856,13 +11848,12 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint-webpack-plugin@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.6.0.tgz#3bd4ada4e539cb1f6687d2f619073dbb509361cd" - integrity sha512-V+LPY/T3kur5QO3u+1s34VDTcRxjXWPUGM4hlmTb5DwVD0OQz631yGTxJZf4SpAqAjdbBVe978S8BJeHpAdOhQ== +eslint-webpack-plugin@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz#83dad2395e5f572d6f4d919eedaa9cf902890fcb" + integrity sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg== dependencies: "@types/eslint" "^7.28.2" - arrify "^2.0.1" jest-worker "^27.3.1" micromatch "^4.0.4" normalize-path "^3.0.0" From 2566b48ebb6d303dfd9a8504c457333c50f4212d Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 17 Feb 2022 00:36:13 +0700 Subject: [PATCH 083/225] transitive ownership of entities for group kind Signed-off-by: Prasetya Aria Wibawa --- plugins/org/package.json | 1 + .../OwnershipCard/DirectRelationsGrid.tsx | 122 ++++++++ .../Cards/OwnershipCard/OwnershipCard.tsx | 261 ++++++------------ .../OwnershipCard/TransitiveRelationsGrid.tsx | 122 ++++++++ .../Cards/OwnershipCard/useDirectEntities.ts | 138 +++++++++ .../OwnershipCard/useTransitiveEntities.ts | 180 ++++++++++++ 6 files changed, 641 insertions(+), 183 deletions(-) create mode 100644 plugins/org/src/components/Cards/OwnershipCard/DirectRelationsGrid.tsx create mode 100644 plugins/org/src/components/Cards/OwnershipCard/TransitiveRelationsGrid.tsx create mode 100644 plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts create mode 100644 plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts diff --git a/plugins/org/package.json b/plugins/org/package.json index 11478bbe64..8b8c6709dc 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -34,6 +34,7 @@ "@material-ui/lab": "4.0.0-alpha.57", "pluralize": "^8.0.0", "qs": "^6.10.1", + "p-limit": "^3.1.0", "react-router": "6.0.0-beta.0", "react-router-dom": "6.0.0-beta.0", "react-use": "^17.2.4" diff --git a/plugins/org/src/components/Cards/OwnershipCard/DirectRelationsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/DirectRelationsGrid.tsx new file mode 100644 index 0000000000..a7cd521ecc --- /dev/null +++ b/plugins/org/src/components/Cards/OwnershipCard/DirectRelationsGrid.tsx @@ -0,0 +1,122 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity } from '@backstage/catalog-model'; +import { Link, Progress, ResponseErrorPanel } from '@backstage/core-components'; +import { useRouteRef } from '@backstage/core-plugin-api'; +import { BackstageTheme } from '@backstage/theme'; +import { + Box, + createStyles, + Grid, + makeStyles, + Typography, +} from '@material-ui/core'; +import React from 'react'; +import pluralize from 'pluralize'; +import { catalogIndexRouteRef } from '../../../routes'; +import { useDirectEntities } from './useDirectEntities'; + +const useStyles = makeStyles((theme: BackstageTheme) => + createStyles({ + card: { + border: `1px solid ${theme.palette.divider}`, + boxShadow: theme.shadows[2], + borderRadius: '4px', + padding: theme.spacing(2), + color: '#fff', + transition: `${theme.transitions.duration.standard}ms`, + '&:hover': { + boxShadow: theme.shadows[4], + }, + }, + bold: { + fontWeight: theme.typography.fontWeightBold, + }, + entityTypeBox: { + background: (props: { type: string }) => + theme.getPageTheme({ themeId: props.type }).backgroundImage, + }, + }), +); + +const EntityCountTile = ({ + counter, + type, + name, + url, +}: { + counter: number; + type: string; + name: string; + url: string; +}) => { + const classes = useStyles({ type }); + + return ( + + + + {counter} + + + {pluralize(name, counter)} + + + + ); +}; + +export const DirectRelationsGrid = ({ + entity, + entityFilterKind, +}: { + entity: Entity; + entityFilterKind?: string[]; +}) => { + const catalogLink = useRouteRef(catalogIndexRouteRef); + + const { componentsWithCounters, loading, error } = useDirectEntities( + entity, + entityFilterKind, + ); + + if (loading) { + return ; + } else if (error) { + return ; + } + + return ( + + {componentsWithCounters?.map(c => ( + + + + ))} + + ); +}; diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx index fb49843e92..9ede02ce6e 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx @@ -14,122 +14,61 @@ * limitations under the License. */ -import { Entity, UserEntity } from '@backstage/catalog-model'; +import { Entity } from '@backstage/catalog-model'; +import { InfoCard, InfoCardVariants } from '@backstage/core-components'; +import { useEntity } from '@backstage/plugin-catalog-react'; import { - InfoCard, - InfoCardVariants, - Link, - Progress, - ResponseErrorPanel, -} from '@backstage/core-components'; -import { useApi, useRouteRef } from '@backstage/core-plugin-api'; -import { - catalogApiRef, - humanizeEntityRef, - isOwnerOf, - useEntity, -} from '@backstage/plugin-catalog-react'; -import { BackstageTheme } from '@backstage/theme'; -import { - Box, - createStyles, - Grid, + List, + ListItem, + ListItemSecondaryAction, + ListItemText, makeStyles, - Typography, + Switch, + Tooltip, } from '@material-ui/core'; -import qs from 'qs'; -import React from 'react'; -import pluralize from 'pluralize'; -import useAsync from 'react-use/lib/useAsync'; -import { catalogIndexRouteRef } from '../../../routes'; +import React, { useState } from 'react'; +import { DirectRelationsGrid } from './DirectRelationsGrid'; +import { TransitiveRelationsGrid } from './TransitiveRelationsGrid'; -type EntityTypeProps = { - kind: string; - type: string; - count: number; -}; - -const useStyles = makeStyles((theme: BackstageTheme) => - createStyles({ - card: { - border: `1px solid ${theme.palette.divider}`, - boxShadow: theme.shadows[2], - borderRadius: '4px', - padding: theme.spacing(2), - color: '#fff', - transition: `${theme.transitions.duration.standard}ms`, - '&:hover': { - boxShadow: theme.shadows[4], - }, +const useStyles = makeStyles(theme => ({ + list: { + [theme.breakpoints.down('xs')]: { + padding: `0 0 12px`, }, - bold: { - fontWeight: theme.typography.fontWeightBold, + }, + listItemText: { + [theme.breakpoints.down('xs')]: { + paddingRight: 0, + paddingLeft: 0, }, - entityTypeBox: { - background: (props: { type: string }) => - theme.getPageTheme({ themeId: props.type }).backgroundImage, + }, + listItemSecondaryAction: { + [theme.breakpoints.down('xs')]: { + width: '100%', + top: 'auto', + right: 'auto', + position: 'relative', + transform: 'unset', }, - }), -); - -const EntityCountTile = ({ - counter, - type, - name, - url, -}: { - counter: number; - type: string; - name: string; - url: string; -}) => { - const classes = useStyles({ type }); + }, +})); +const directRelationsGrid = (entity: Entity, entityFilterKind?: string[]) => { return ( - - - - {counter} - - - {pluralize(name, counter)} - - - + ); }; -const getQueryParams = ( - owner: Entity, - selectedEntity: EntityTypeProps, -): string => { - const ownerName = humanizeEntityRef(owner, { defaultKind: 'group' }); - const { kind, type } = selectedEntity; - const filters = { - kind, - type, - owners: [ownerName], - user: 'all', - }; - if (owner.kind === 'User') { - const user = owner as UserEntity; - filters.owners = [...filters.owners, ...(user.spec.memberOf ?? [])]; - } - const queryParams = qs.stringify( - { - filters, - }, - { - arrayFormat: 'repeat', - }, +const transitiveRelationsGrid = ( + entity: Entity, + entityFilterKind?: string[], +) => { + return ( + ); - - return queryParams; }; export const OwnershipCard = ({ @@ -139,90 +78,46 @@ export const OwnershipCard = ({ variant?: InfoCardVariants; entityFilterKind?: string[]; }) => { + const [relationsType, setRelationsType] = useState('direct'); + const classes = useStyles(); const { entity } = useEntity(); - const catalogApi = useApi(catalogApiRef); - const catalogLink = useRouteRef(catalogIndexRouteRef); - - const { - loading, - error, - value: componentsWithCounters, - } = useAsync(async () => { - const kinds = entityFilterKind ?? ['Component', 'API']; - const entitiesList = await catalogApi.getEntities({ - filter: { - kind: kinds, - }, - fields: [ - 'kind', - 'metadata.name', - 'metadata.namespace', - 'spec.type', - 'relations', - ], - }); - - const ownedEntitiesList = entitiesList.items.filter(component => - isOwnerOf(entity, component), - ); - - const counts = ownedEntitiesList.reduce( - (acc: EntityTypeProps[], ownedEntity) => { - const match = acc.find( - x => - x.kind === ownedEntity.kind && - x.type === (ownedEntity.spec?.type ?? ownedEntity.kind), - ); - if (match) { - match.count += 1; - } else { - acc.push({ - kind: ownedEntity.kind, - type: ownedEntity.spec?.type?.toString() ?? ownedEntity.kind, - count: 1, - }); - } - return acc; - }, - [], - ); - - // Return top N (six) entities to be displayed in ownership boxes - const topN = counts.sort((a, b) => b.count - a.count).slice(0, 6); - - return topN.map(topOwnedEntity => ({ - counter: topOwnedEntity.count, - type: topOwnedEntity.type, - name: topOwnedEntity.type.toLocaleUpperCase('en-US'), - queryParams: getQueryParams(entity, topOwnedEntity), - })) as Array<{ - counter: number; - type: string; - name: string; - queryParams: string; - }>; - }, [catalogApi, entity]); - - if (loading) { - return ; - } else if (error) { - return ; - } + const isGroup = entity.kind === 'Group'; + const renderedGrid = + relationsType !== 'direct' && isGroup + ? transitiveRelationsGrid(entity, entityFilterKind) + : directRelationsGrid(entity, entityFilterKind); return ( - - {componentsWithCounters?.map(c => ( - - - - ))} - + + + + + Direct Relations + + + relationsType === 'direct' + ? setRelationsType('transitive') + : setRelationsType('direct') + } + name="pin" + inputProps={{ 'aria-label': 'Pin Sidebar Switch' }} + disabled={!isGroup} + /> + + Transitive Relations + + + + {renderedGrid} ); }; diff --git a/plugins/org/src/components/Cards/OwnershipCard/TransitiveRelationsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/TransitiveRelationsGrid.tsx new file mode 100644 index 0000000000..8ed4d1c413 --- /dev/null +++ b/plugins/org/src/components/Cards/OwnershipCard/TransitiveRelationsGrid.tsx @@ -0,0 +1,122 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity } from '@backstage/catalog-model'; +import { Link, Progress, ResponseErrorPanel } from '@backstage/core-components'; +import { useRouteRef } from '@backstage/core-plugin-api'; +import { BackstageTheme } from '@backstage/theme'; +import { + Box, + createStyles, + Grid, + makeStyles, + Typography, +} from '@material-ui/core'; +import React from 'react'; +import pluralize from 'pluralize'; +import { catalogIndexRouteRef } from '../../../routes'; +import { useTransitiveEntities } from './useTransitiveEntities'; + +const useStyles = makeStyles((theme: BackstageTheme) => + createStyles({ + card: { + border: `1px solid ${theme.palette.divider}`, + boxShadow: theme.shadows[2], + borderRadius: '4px', + padding: theme.spacing(2), + color: '#fff', + transition: `${theme.transitions.duration.standard}ms`, + '&:hover': { + boxShadow: theme.shadows[4], + }, + }, + bold: { + fontWeight: theme.typography.fontWeightBold, + }, + entityTypeBox: { + background: (props: { type: string }) => + theme.getPageTheme({ themeId: props.type }).backgroundImage, + }, + }), +); + +const EntityCountTile = ({ + counter, + type, + name, + url, +}: { + counter: number; + type: string; + name: string; + url: string; +}) => { + const classes = useStyles({ type }); + + return ( + + + + {counter} + + + {pluralize(name, counter)} + + + + ); +}; + +// can only be used for group entity +export const TransitiveRelationsGrid = ({ + entity, + entityFilterKind, +}: { + entity: Entity; + entityFilterKind?: string[]; +}) => { + const catalogLink = useRouteRef(catalogIndexRouteRef); + const { componentsWithCounters, loading, error } = useTransitiveEntities( + entity, + entityFilterKind, + ); + + if (loading) { + return ; + } else if (error) { + return ; + } + + return ( + + {componentsWithCounters?.map(c => ( + + + + ))} + + ); +}; diff --git a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts new file mode 100644 index 0000000000..5e12d839de --- /dev/null +++ b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts @@ -0,0 +1,138 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity, UserEntity } from '@backstage/catalog-model'; +import { useApi } from '@backstage/core-plugin-api'; +import { + catalogApiRef, + formatEntityRefTitle, + isOwnerOf, +} from '@backstage/plugin-catalog-react'; +import qs from 'qs'; +import { useAsync } from 'react-use'; + +type EntityTypeProps = { + kind: string; + type: string; + count: number; +}; + +const getQueryParams = ( + owner: Entity, + selectedEntity: EntityTypeProps, +): string => { + const ownerName = formatEntityRefTitle(owner, { defaultKind: 'group' }); + const { kind, type } = selectedEntity; + const filters = { + kind, + type, + owners: [ownerName], + user: 'all', + }; + if (owner.kind === 'User') { + const user = owner as UserEntity; + filters.owners = [...filters.owners, ...user.spec.memberOf]; + } + const queryParams = qs.stringify({ + filters, + }); + + return queryParams; +}; + +export function useDirectEntities( + entity: Entity, + entityFilterKind?: string[], +): { + componentsWithCounters: + | { + counter: number; + type: string; + name: string; + queryParams: string; + }[] + | undefined; + loading: boolean; + error?: Error; +} { + const catalogApi = useApi(catalogApiRef); + + const { + loading, + error, + value: componentsWithCounters, + } = useAsync(async () => { + const kinds = entityFilterKind ?? ['Component', 'API', 'System']; + const entitiesList = await catalogApi.getEntities({ + filter: { + kind: kinds, + }, + fields: [ + 'kind', + 'metadata.name', + 'metadata.namespace', + 'spec.type', + 'relations', + ], + }); + + const ownedEntitiesList = entitiesList.items.filter(component => + isOwnerOf(entity, component), + ); + + const counts = ownedEntitiesList.reduce( + (acc: EntityTypeProps[], ownedEntity) => { + const match = acc.find( + x => + x.kind === ownedEntity.kind && + x.type === (ownedEntity.spec?.type ?? ownedEntity.kind), + ); + if (match) { + match.count += 1; + } else { + acc.push({ + kind: ownedEntity.kind, + type: ownedEntity.spec?.type?.toString() ?? ownedEntity.kind, + count: 1, + }); + } + return acc; + }, + [], + ); + + // Return top N (six) entities to be displayed in ownership boxes + const topN = counts.sort((a, b) => b.count - a.count).slice(0, 6); + + return topN.map(topOwnedEntity => ({ + counter: topOwnedEntity.count, + type: topOwnedEntity.type, + name: topOwnedEntity.type.toLocaleUpperCase('en-US'), + queryParams: getQueryParams(entity, topOwnedEntity), + })) as Array<{ + counter: number; + type: string; + name: string; + queryParams: string; + }>; + }, [catalogApi, entity]); + + return { + componentsWithCounters, + loading, + error, + }; +} diff --git a/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts new file mode 100644 index 0000000000..f2665ec798 --- /dev/null +++ b/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts @@ -0,0 +1,180 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity, RELATION_PARENT_OF } from '@backstage/catalog-model'; +import { + catalogApiRef, + getEntityRelations, +} from '@backstage/plugin-catalog-react'; +import limiterFactory from 'p-limit'; +import { useApi } from '@backstage/core-plugin-api'; +import { useAsync } from 'react-use'; +import { CatalogListResponse } from '@backstage/catalog-client'; +import qs from 'qs'; + +const limiter = limiterFactory(10); + +type EntityTypeProps = { + kind: string; + type: string; + count: number; +}; + +const getQueryParams = ( + owners: string[], + selectedEntity: EntityTypeProps, +): string => { + const { kind, type } = selectedEntity; + const filters = { + kind, + type, + owners, + user: 'all', + }; + const queryParams = qs.stringify({ + filters, + }); + + return queryParams; +}; + +export function useTransitiveEntities( + entity: Entity, + entityFilterKind?: string[], +): { + componentsWithCounters: + | { + counter: number; + type: string; + name: string; + queryParams: string; + }[] + | undefined; + loading: boolean; + error?: Error; +} { + const catalogApi = useApi(catalogApiRef); + const requestedEntities: Entity[] = []; + const outstandingEntities = new Map>(); + const processedEntities = new Set(); + requestedEntities.push(entity); + let isLoop = true; + let currentEntity = entity; + const kinds = entityFilterKind ?? ['Component', 'API', 'System']; + + const { + loading, + error, + value: componentsWithCounters, + } = useAsync(async () => { + while (isLoop) { + const childRelations = getEntityRelations( + currentEntity, + RELATION_PARENT_OF, + { + kind: 'Group', + }, + ); + + await Promise.all( + childRelations.map(childGroup => + limiter(async () => { + const promise = catalogApi.getEntityByName({ + kind: 'Group', + namespace: 'default', + name: childGroup.name, + }); + + outstandingEntities.set(childGroup.name, promise); + try { + const processedEntity = await promise; + if (processedEntity) { + requestedEntities.push(processedEntity); + } + } finally { + outstandingEntities.delete(childGroup.name); + } + }), + ), + ); + requestedEntities.shift(); + processedEntities.add(currentEntity.metadata.name); + currentEntity = requestedEntities[0]; + if (requestedEntities.length === 0) isLoop = false; + } + + const owners = Array.from(processedEntities); + + const ownedAggregationEntitiesList: CatalogListResponse = + await catalogApi.getEntities({ + filter: [ + { + kind: kinds, + 'spec.owner': owners, + }, + ], + fields: [ + 'kind', + 'metadata.name', + 'metadata.namespace', + 'spec.type', + 'relations', + ], + }); + + const counts = ownedAggregationEntitiesList.items.reduce( + (acc: EntityTypeProps[], ownedEntity) => { + const match = acc.find( + x => + x.kind === ownedEntity.kind && + x.type === (ownedEntity.spec?.type ?? ownedEntity.kind), + ); + if (match) { + match.count += 1; + } else { + acc.push({ + kind: ownedEntity.kind, + type: ownedEntity.spec?.type?.toString() ?? ownedEntity.kind, + count: 1, + }); + } + return acc; + }, + [], + ); + + // Return top N (six) entities to be displayed in ownership boxes + const topN = counts.sort((a, b) => b.count - a.count).slice(0, 6); + + return topN.map(topOwnedEntity => ({ + counter: topOwnedEntity.count, + type: topOwnedEntity.type, + name: topOwnedEntity.type.toLocaleUpperCase('en-US'), + queryParams: getQueryParams(owners, topOwnedEntity), + })) as Array<{ + counter: number; + type: string; + name: string; + queryParams: string; + }>; + }, [catalogApi, entity]); + + return { + componentsWithCounters, + loading, + error, + }; +} From 19fe9bfafb6b22d67ad437d959fde8e57ea34a12 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 17 Feb 2022 07:02:42 +0700 Subject: [PATCH 084/225] add checked props to switch component Signed-off-by: Prasetya Aria Wibawa --- .../org/src/components/Cards/OwnershipCard/OwnershipCard.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx index 9ede02ce6e..d524c25c51 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx @@ -78,10 +78,10 @@ export const OwnershipCard = ({ variant?: InfoCardVariants; entityFilterKind?: string[]; }) => { - const [relationsType, setRelationsType] = useState('direct'); const classes = useStyles(); const { entity } = useEntity(); const isGroup = entity.kind === 'Group'; + const [relationsType, setRelationsType] = useState('direct'); const renderedGrid = relationsType !== 'direct' && isGroup ? transitiveRelationsGrid(entity, entityFilterKind) @@ -102,7 +102,7 @@ export const OwnershipCard = ({ > relationsType === 'direct' ? setRelationsType('transitive') From 111995470d715054cfaeb0083a17897e6deccfeb Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 17 Feb 2022 07:15:49 +0700 Subject: [PATCH 085/225] add changeset Signed-off-by: Prasetya Aria Wibawa --- .changeset/mighty-suns-drop.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/mighty-suns-drop.md diff --git a/.changeset/mighty-suns-drop.md b/.changeset/mighty-suns-drop.md new file mode 100644 index 0000000000..4f34ad14ad --- /dev/null +++ b/.changeset/mighty-suns-drop.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-org': patch +--- + +add transtive ownership type for kind group in OwnershipCard From 539a0d754c88d08c6f49abbfc2af857b7f791477 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 17 Feb 2022 07:30:18 +0700 Subject: [PATCH 086/225] remove catalogListResponse from import statement Signed-off-by: Prasetya Aria Wibawa --- .../OwnershipCard/useTransitiveEntities.ts | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts index f2665ec798..de03b4b617 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts @@ -22,7 +22,6 @@ import { import limiterFactory from 'p-limit'; import { useApi } from '@backstage/core-plugin-api'; import { useAsync } from 'react-use'; -import { CatalogListResponse } from '@backstage/catalog-client'; import qs from 'qs'; const limiter = limiterFactory(10); @@ -118,22 +117,21 @@ export function useTransitiveEntities( const owners = Array.from(processedEntities); - const ownedAggregationEntitiesList: CatalogListResponse = - await catalogApi.getEntities({ - filter: [ - { - kind: kinds, - 'spec.owner': owners, - }, - ], - fields: [ - 'kind', - 'metadata.name', - 'metadata.namespace', - 'spec.type', - 'relations', - ], - }); + const ownedAggregationEntitiesList = await catalogApi.getEntities({ + filter: [ + { + kind: kinds, + 'spec.owner': owners, + }, + ], + fields: [ + 'kind', + 'metadata.name', + 'metadata.namespace', + 'spec.type', + 'relations', + ], + }); const counts = ownedAggregationEntitiesList.items.reduce( (acc: EntityTypeProps[], ownedEntity) => { From b0dcb1289f16cd3103cd1d90ed7a33d33c6c61d8 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 17 Feb 2022 07:42:14 +0700 Subject: [PATCH 087/225] fix typo comment in changeset Signed-off-by: Prasetya Aria Wibawa --- .changeset/mighty-suns-drop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/mighty-suns-drop.md b/.changeset/mighty-suns-drop.md index 4f34ad14ad..80f7b88e2b 100644 --- a/.changeset/mighty-suns-drop.md +++ b/.changeset/mighty-suns-drop.md @@ -2,4 +2,4 @@ '@backstage/plugin-org': patch --- -add transtive ownership type for kind group in OwnershipCard +add transitive ownership type for kind group in OwnershipCard From 8e9ddcc5f04aecad14130ab73b8f033245ea0c12 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 17 Feb 2022 08:59:53 +0700 Subject: [PATCH 088/225] change label props Signed-off-by: Prasetya Aria Wibawa --- .../org/src/components/Cards/OwnershipCard/OwnershipCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx index d524c25c51..18dd57cc1d 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx @@ -109,7 +109,7 @@ export const OwnershipCard = ({ : setRelationsType('direct') } name="pin" - inputProps={{ 'aria-label': 'Pin Sidebar Switch' }} + inputProps={{ 'aria-label': 'Ownership Type Switch' }} disabled={!isGroup} /> From 21f99270bbbc6b32387944dae816a944d59e95a7 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 18 Feb 2022 16:52:33 +0700 Subject: [PATCH 089/225] change transitive word to aggregated Signed-off-by: Prasetya Aria Wibawa --- .changeset/mighty-suns-drop.md | 2 +- ...lationsGrid.tsx => AggregatedRelationsGrid.tsx} | 6 +++--- .../Cards/OwnershipCard/OwnershipCard.tsx | 14 +++++++------- ...nsitiveEntities.ts => useAggregatedEntities.ts} | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) rename plugins/org/src/components/Cards/OwnershipCard/{TransitiveRelationsGrid.tsx => AggregatedRelationsGrid.tsx} (94%) rename plugins/org/src/components/Cards/OwnershipCard/{useTransitiveEntities.ts => useAggregatedEntities.ts} (99%) diff --git a/.changeset/mighty-suns-drop.md b/.changeset/mighty-suns-drop.md index 80f7b88e2b..f8bb686aaf 100644 --- a/.changeset/mighty-suns-drop.md +++ b/.changeset/mighty-suns-drop.md @@ -2,4 +2,4 @@ '@backstage/plugin-org': patch --- -add transitive ownership type for kind group in OwnershipCard +add aggregated ownership type for kind group in OwnershipCard diff --git a/plugins/org/src/components/Cards/OwnershipCard/TransitiveRelationsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/AggregatedRelationsGrid.tsx similarity index 94% rename from plugins/org/src/components/Cards/OwnershipCard/TransitiveRelationsGrid.tsx rename to plugins/org/src/components/Cards/OwnershipCard/AggregatedRelationsGrid.tsx index 8ed4d1c413..4839e4db56 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/TransitiveRelationsGrid.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/AggregatedRelationsGrid.tsx @@ -28,7 +28,7 @@ import { import React from 'react'; import pluralize from 'pluralize'; import { catalogIndexRouteRef } from '../../../routes'; -import { useTransitiveEntities } from './useTransitiveEntities'; +import { useAggregatedEntities } from './useAggregatedEntities'; const useStyles = makeStyles((theme: BackstageTheme) => createStyles({ @@ -86,7 +86,7 @@ const EntityCountTile = ({ }; // can only be used for group entity -export const TransitiveRelationsGrid = ({ +export const AggregatedRelationsGrid = ({ entity, entityFilterKind, }: { @@ -94,7 +94,7 @@ export const TransitiveRelationsGrid = ({ entityFilterKind?: string[]; }) => { const catalogLink = useRouteRef(catalogIndexRouteRef); - const { componentsWithCounters, loading, error } = useTransitiveEntities( + const { componentsWithCounters, loading, error } = useAggregatedEntities( entity, entityFilterKind, ); diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx index 18dd57cc1d..4612fce931 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx @@ -28,7 +28,7 @@ import { } from '@material-ui/core'; import React, { useState } from 'react'; import { DirectRelationsGrid } from './DirectRelationsGrid'; -import { TransitiveRelationsGrid } from './TransitiveRelationsGrid'; +import { AggregatedRelationsGrid } from './AggregatedRelationsGrid'; const useStyles = makeStyles(theme => ({ list: { @@ -59,12 +59,12 @@ const directRelationsGrid = (entity: Entity, entityFilterKind?: string[]) => { ); }; -const transitiveRelationsGrid = ( +const aggregatedRelationsGrid = ( entity: Entity, entityFilterKind?: string[], ) => { return ( - @@ -84,7 +84,7 @@ export const OwnershipCard = ({ const [relationsType, setRelationsType] = useState('direct'); const renderedGrid = relationsType !== 'direct' && isGroup - ? transitiveRelationsGrid(entity, entityFilterKind) + ? aggregatedRelationsGrid(entity, entityFilterKind) : directRelationsGrid(entity, entityFilterKind); return ( @@ -97,7 +97,7 @@ export const OwnershipCard = ({ relationsType === 'direct' - ? setRelationsType('transitive') + ? setRelationsType('aggregated') : setRelationsType('direct') } name="pin" @@ -113,7 +113,7 @@ export const OwnershipCard = ({ disabled={!isGroup} /> - Transitive Relations + Aggregated Relations diff --git a/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts similarity index 99% rename from plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts rename to plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts index de03b4b617..2707ba70e7 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useTransitiveEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts @@ -50,7 +50,7 @@ const getQueryParams = ( return queryParams; }; -export function useTransitiveEntities( +export function useAggregatedEntities( entity: Entity, entityFilterKind?: string[], ): { From fce26e8204035629396e95fe9a2397da92952999 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 18 Feb 2022 22:05:40 +0700 Subject: [PATCH 090/225] change to use supported version of useAsync Signed-off-by: Prasetya Aria Wibawa --- .../src/components/Cards/OwnershipCard/useAggregatedEntities.ts | 2 +- .../org/src/components/Cards/OwnershipCard/useDirectEntities.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts index 2707ba70e7..e8fb2d52dc 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts @@ -21,7 +21,7 @@ import { } from '@backstage/plugin-catalog-react'; import limiterFactory from 'p-limit'; import { useApi } from '@backstage/core-plugin-api'; -import { useAsync } from 'react-use'; +import useAsync from 'react-use/lib/useAsync'; import qs from 'qs'; const limiter = limiterFactory(10); diff --git a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts index 5e12d839de..48e6c9d74b 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts @@ -22,7 +22,7 @@ import { isOwnerOf, } from '@backstage/plugin-catalog-react'; import qs from 'qs'; -import { useAsync } from 'react-use'; +import useAsync from 'react-use/lib/useAsync'; type EntityTypeProps = { kind: string; From 3e1a4ed473b1253a4612e0c55dc220fb1b6b0a2b Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 18 Feb 2022 22:31:13 +0700 Subject: [PATCH 091/225] use additional kind system for OwnershipCard test Signed-off-by: Prasetya Aria Wibawa --- .../src/components/Cards/OwnershipCard/OwnershipCard.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx index 483cf9744f..c48e06d7a7 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx @@ -160,7 +160,7 @@ describe('OwnershipCard', () => { ); expect(catalogApi.getEntities).toHaveBeenCalledWith({ - filter: { kind: ['Component', 'API'] }, + filter: { kind: ['Component', 'API', 'System'] }, fields: [ 'kind', 'metadata.name', From 8183a00eae2bdf278b3129101f9ac62a33729ed5 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 18 Feb 2022 22:52:04 +0700 Subject: [PATCH 092/225] change system test expectation for displays entity counts case Signed-off-by: Prasetya Aria Wibawa --- .../src/components/Cards/OwnershipCard/OwnershipCard.test.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx index c48e06d7a7..911dd2fb68 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx @@ -182,7 +182,9 @@ describe('OwnershipCard', () => { expect( queryByText(getByText('LIBRARY').parentElement!, '1'), ).toBeInTheDocument(); - expect(() => getByText('SYSTEM')).toThrowError(); + expect( + queryByText(getByText('SYSTEM').parentElement!, '1'), + ).toBeInTheDocument(); }); it('applies CustomFilterDefinition', async () => { From 5606d6065b07e1efc4debd31b7703df65b29f3e9 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Wed, 2 Mar 2022 16:34:10 +0700 Subject: [PATCH 093/225] use getEntityRelations to get all memberOf groups Signed-off-by: Prasetya Aria Wibawa --- .../Cards/OwnershipCard/useDirectEntities.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts index 48e6c9d74b..9ad4843040 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts @@ -14,12 +14,13 @@ * limitations under the License. */ -import { Entity, UserEntity } from '@backstage/catalog-model'; +import { Entity, RELATION_MEMBER_OF } from '@backstage/catalog-model'; import { useApi } from '@backstage/core-plugin-api'; import { catalogApiRef, formatEntityRefTitle, isOwnerOf, + getEntityRelations, } from '@backstage/plugin-catalog-react'; import qs from 'qs'; import useAsync from 'react-use/lib/useAsync'; @@ -43,8 +44,11 @@ const getQueryParams = ( user: 'all', }; if (owner.kind === 'User') { - const user = owner as UserEntity; - filters.owners = [...filters.owners, ...user.spec.memberOf]; + const ownerGroups = getEntityRelations(owner, RELATION_MEMBER_OF, { + kind: 'Group', + }); + const ownerGroupsName = ownerGroups.map(ownerGroup => ownerGroup.name); + filters.owners = [...filters.owners, ...ownerGroupsName]; } const queryParams = qs.stringify({ filters, From b759a21c96ef61f1b70c5af1f48ac6e3a40359f2 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Wed, 2 Mar 2022 16:56:32 +0700 Subject: [PATCH 094/225] change isOwnerOf to use filter relations.ownedBy Signed-off-by: Prasetya Aria Wibawa --- .../Cards/OwnershipCard/useDirectEntities.ts | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts index 9ad4843040..da50842fea 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts @@ -14,12 +14,15 @@ * limitations under the License. */ -import { Entity, RELATION_MEMBER_OF } from '@backstage/catalog-model'; +import { + Entity, + RELATION_MEMBER_OF, + stringifyEntityRef, +} from '@backstage/catalog-model'; import { useApi } from '@backstage/core-plugin-api'; import { catalogApiRef, formatEntityRefTitle, - isOwnerOf, getEntityRelations, } from '@backstage/plugin-catalog-react'; import qs from 'qs'; @@ -80,10 +83,13 @@ export function useDirectEntities( value: componentsWithCounters, } = useAsync(async () => { const kinds = entityFilterKind ?? ['Component', 'API', 'System']; - const entitiesList = await catalogApi.getEntities({ - filter: { - kind: kinds, - }, + const ownedEntitiesListResponse = await catalogApi.getEntities({ + filter: [ + { + kind: kinds, + 'relations.ownedBy': [stringifyEntityRef(entity)], + }, + ], fields: [ 'kind', 'metadata.name', @@ -93,11 +99,7 @@ export function useDirectEntities( ], }); - const ownedEntitiesList = entitiesList.items.filter(component => - isOwnerOf(entity, component), - ); - - const counts = ownedEntitiesList.reduce( + const counts = ownedEntitiesListResponse.items.reduce( (acc: EntityTypeProps[], ownedEntity) => { const match = acc.find( x => From d9497b9b6e62cbd11dfe063a3fde64d9bc9b5541 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Wed, 2 Mar 2022 18:38:35 +0700 Subject: [PATCH 095/225] change filterKinds in OwnershipCard test Signed-off-by: Prasetya Aria Wibawa --- .../Cards/OwnershipCard/OwnershipCard.test.tsx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx index 911dd2fb68..4314c280cf 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx @@ -112,9 +112,9 @@ const getEntitiesMock = ( request?: GetEntitiesRequest, ): Promise => { const filterKinds = - !Array.isArray(request?.filter) && Array.isArray(request?.filter?.kind) - ? request?.filter?.kind ?? [] - : []; // we expect the request to be like { filter: { kind: ['API','System'], .... }. If changed in OwnerShipCard, let's change in also here + Array.isArray(request?.filter) && Array.isArray(request?.filter[0].kind) + ? request?.filter[0].kind ?? [] + : []; // we expect the request to be like { filter: [{ kind: ['API','System'], 'relations.ownedBy': [group:default/my-team], .... }]. If changed in OwnerShipCard, let's change in also here return Promise.resolve({ items: items.filter(item => filterKinds.find(k => k === item.kind)), } as GetEntitiesResponse); @@ -160,7 +160,13 @@ describe('OwnershipCard', () => { ); expect(catalogApi.getEntities).toHaveBeenCalledWith({ - filter: { kind: ['Component', 'API', 'System'] }, + filter: [ + { + kind: ['Component', 'API', 'System'], + 'relations.ownedBy': ['group:default/my-team'], + }, + ], + // filter: { kind: ['Component', 'API', 'System'] }, fields: [ 'kind', 'metadata.name', @@ -182,6 +188,7 @@ describe('OwnershipCard', () => { expect( queryByText(getByText('LIBRARY').parentElement!, '1'), ).toBeInTheDocument(); + expect(getByText('SYSTEM')).toBeInTheDocument(); expect( queryByText(getByText('SYSTEM').parentElement!, '1'), ).toBeInTheDocument(); From 303bc1c7fbbecb333554500ae02e4ba4dc50720b Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 4 Mar 2022 09:22:11 +0700 Subject: [PATCH 096/225] use prettier Signed-off-by: Prasetya Aria Wibawa --- .../org/src/components/Cards/OwnershipCard/OwnershipCard.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx index 4612fce931..37541a786a 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx @@ -97,8 +97,9 @@ export const OwnershipCard = ({ Date: Fri, 4 Mar 2022 10:59:10 +0700 Subject: [PATCH 097/225] change to use getEntityByRef Signed-off-by: Prasetya Aria Wibawa --- .../Cards/OwnershipCard/useAggregatedEntities.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts index e8fb2d52dc..45595acb78 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts @@ -91,12 +91,7 @@ export function useAggregatedEntities( await Promise.all( childRelations.map(childGroup => limiter(async () => { - const promise = catalogApi.getEntityByName({ - kind: 'Group', - namespace: 'default', - name: childGroup.name, - }); - + const promise = catalogApi.getEntityByRef(childGroup); outstandingEntities.set(childGroup.name, promise); try { const processedEntity = await promise; From da70c0ef1a038c02f7d3e498bf8161593e98ded4 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 4 Mar 2022 11:37:55 +0700 Subject: [PATCH 098/225] check looping from length of requestedEntities Signed-off-by: Prasetya Aria Wibawa --- .../components/Cards/OwnershipCard/useAggregatedEntities.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts index 45595acb78..e6ef55b32b 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts @@ -70,7 +70,6 @@ export function useAggregatedEntities( const outstandingEntities = new Map>(); const processedEntities = new Set(); requestedEntities.push(entity); - let isLoop = true; let currentEntity = entity; const kinds = entityFilterKind ?? ['Component', 'API', 'System']; @@ -79,7 +78,7 @@ export function useAggregatedEntities( error, value: componentsWithCounters, } = useAsync(async () => { - while (isLoop) { + while (requestedEntities.length > 0) { const childRelations = getEntityRelations( currentEntity, RELATION_PARENT_OF, @@ -106,12 +105,11 @@ export function useAggregatedEntities( ); requestedEntities.shift(); processedEntities.add(currentEntity.metadata.name); + // always set currentEntity to the first element of array requestedEntities currentEntity = requestedEntities[0]; - if (requestedEntities.length === 0) isLoop = false; } const owners = Array.from(processedEntities); - const ownedAggregationEntitiesList = await catalogApi.getEntities({ filter: [ { From 4a790094ee77817bfedf21ba06eba5a932c8e385 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 4 Mar 2022 11:38:41 +0700 Subject: [PATCH 099/225] use humanizeEntityRef Signed-off-by: Prasetya Aria Wibawa --- .../Cards/OwnershipCard/useDirectEntities.ts | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts index da50842fea..20d4c3a76d 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts @@ -22,8 +22,8 @@ import { import { useApi } from '@backstage/core-plugin-api'; import { catalogApiRef, - formatEntityRefTitle, getEntityRelations, + humanizeEntityRef, } from '@backstage/plugin-catalog-react'; import qs from 'qs'; import useAsync from 'react-use/lib/useAsync'; @@ -38,7 +38,7 @@ const getQueryParams = ( owner: Entity, selectedEntity: EntityTypeProps, ): string => { - const ownerName = formatEntityRefTitle(owner, { defaultKind: 'group' }); + const ownerName = humanizeEntityRef(owner, { defaultKind: 'group' }); const { kind, type } = selectedEntity; const filters = { kind, @@ -60,6 +60,24 @@ const getQueryParams = ( return queryParams; }; +const getOwnersEntityRef = (owner: Entity): string[] => { + let owners = [stringifyEntityRef(owner)]; + if (owner.kind === 'User') { + const ownerGroups = getEntityRelations(owner, RELATION_MEMBER_OF, { + kind: 'Group', + }); + const ownerGroupsName = ownerGroups.map(ownerGroup => + stringifyEntityRef({ + kind: ownerGroup.kind, + namespace: ownerGroup.namespace, + name: ownerGroup.name, + }), + ); + owners = [...owners, ...ownerGroupsName]; + } + return owners; +}; + export function useDirectEntities( entity: Entity, entityFilterKind?: string[], @@ -83,11 +101,12 @@ export function useDirectEntities( value: componentsWithCounters, } = useAsync(async () => { const kinds = entityFilterKind ?? ['Component', 'API', 'System']; - const ownedEntitiesListResponse = await catalogApi.getEntities({ + const owners = getOwnersEntityRef(entity); + const ownedEntitiesList = await catalogApi.getEntities({ filter: [ { kind: kinds, - 'relations.ownedBy': [stringifyEntityRef(entity)], + 'relations.ownedBy': owners, }, ], fields: [ @@ -99,7 +118,7 @@ export function useDirectEntities( ], }); - const counts = ownedEntitiesListResponse.items.reduce( + const counts = ownedEntitiesList.items.reduce( (acc: EntityTypeProps[], ownedEntity) => { const match = acc.find( x => From 80b47162be6cf8403c3aab7d42582481e5747e21 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 4 Mar 2022 12:09:41 +0700 Subject: [PATCH 100/225] fix failing test for links to the catalog with group filter Signed-off-by: Prasetya Aria Wibawa --- .../components/Cards/OwnershipCard/OwnershipCard.test.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx index 4314c280cf..6c9b25fd08 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx @@ -166,7 +166,6 @@ describe('OwnershipCard', () => { 'relations.ownedBy': ['group:default/my-team'], }, ], - // filter: { kind: ['Component', 'API', 'System'] }, fields: [ 'kind', 'metadata.name', @@ -247,7 +246,7 @@ describe('OwnershipCard', () => { expect(getByText('OPENAPI').closest('a')).toHaveAttribute( 'href', - '/create/?filters%5Bkind%5D=API&filters%5Btype%5D=openapi&filters%5Bowners%5D=my-team&filters%5Buser%5D=all', + '/create/?filters%5Bkind%5D=API&filters%5Btype%5D=openapi&filters%5Bowners%5D%5B0%5D=my-team&filters%5Buser%5D=all', ); }); @@ -289,7 +288,7 @@ describe('OwnershipCard', () => { expect(getByText('OPENAPI').closest('a')).toHaveAttribute( 'href', - '/create/?filters%5Bkind%5D=API&filters%5Btype%5D=openapi&filters%5Bowners%5D=user%3Athe-user&filters%5Bowners%5D=my-team&filters%5Buser%5D=all', + '/create/?filters%5Bkind%5D=API&filters%5Btype%5D=openapi&filters%5Bowners%5D%5B0%5D=user%3Athe-user&filters%5Bowners%5D%5B1%5D=my-team&filters%5Buser%5D=all', ); }); }); From e4d5b8c7fff92b0520cc7b346632277c76febc8b Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 4 Mar 2022 15:13:45 +0700 Subject: [PATCH 101/225] rename owner to ownerEntity for getQueryParams Signed-off-by: Prasetya Aria Wibawa --- .../components/Cards/OwnershipCard/useDirectEntities.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts index 20d4c3a76d..6b8886a5e6 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts @@ -35,10 +35,10 @@ type EntityTypeProps = { }; const getQueryParams = ( - owner: Entity, + ownerEntity: Entity, selectedEntity: EntityTypeProps, ): string => { - const ownerName = humanizeEntityRef(owner, { defaultKind: 'group' }); + const ownerName = humanizeEntityRef(ownerEntity, { defaultKind: 'group' }); const { kind, type } = selectedEntity; const filters = { kind, @@ -46,8 +46,8 @@ const getQueryParams = ( owners: [ownerName], user: 'all', }; - if (owner.kind === 'User') { - const ownerGroups = getEntityRelations(owner, RELATION_MEMBER_OF, { + if (ownerEntity.kind === 'User') { + const ownerGroups = getEntityRelations(ownerEntity, RELATION_MEMBER_OF, { kind: 'Group', }); const ownerGroupsName = ownerGroups.map(ownerGroup => ownerGroup.name); From 69d652f3cc4b6071a004ba816c52a503812853ba Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Fri, 4 Mar 2022 15:15:17 +0700 Subject: [PATCH 102/225] use relations.ownedBy for filter params in getEntities Signed-off-by: Prasetya Aria Wibawa --- .../OwnershipCard/useAggregatedEntities.ts | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts index e6ef55b32b..52390cccef 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts @@ -14,7 +14,11 @@ * limitations under the License. */ -import { Entity, RELATION_PARENT_OF } from '@backstage/catalog-model'; +import { + Entity, + RELATION_PARENT_OF, + stringifyEntityRef, +} from '@backstage/catalog-model'; import { catalogApiRef, getEntityRelations, @@ -33,10 +37,12 @@ type EntityTypeProps = { }; const getQueryParams = ( - owners: string[], + ownerEntitiesRef: string[], selectedEntity: EntityTypeProps, ): string => { const { kind, type } = selectedEntity; + // removing 'group:default/' from the string entity ref 'group:default/team-a' + const owners = ownerEntitiesRef.map(owner => owner.split('/')[1]); const filters = { kind, type, @@ -104,7 +110,13 @@ export function useAggregatedEntities( ), ); requestedEntities.shift(); - processedEntities.add(currentEntity.metadata.name); + processedEntities.add( + stringifyEntityRef({ + kind: currentEntity.kind, + namespace: currentEntity.metadata.namespace, + name: currentEntity.metadata.name, + }), + ); // always set currentEntity to the first element of array requestedEntities currentEntity = requestedEntities[0]; } @@ -114,7 +126,7 @@ export function useAggregatedEntities( filter: [ { kind: kinds, - 'spec.owner': owners, + 'relations.ownedBy': owners, }, ], fields: [ From 103b72b704acfe9b7eb259e0b444e8eccdd517b9 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 24 Mar 2022 14:20:20 +0700 Subject: [PATCH 103/225] update to just use one hooks and one component grid in ownership card Signed-off-by: Prasetya Aria Wibawa --- ...edRelationsGrid.tsx => ComponentsGrid.tsx} | 9 +- .../OwnershipCard/DirectRelationsGrid.tsx | 122 ------------ .../Cards/OwnershipCard/OwnershipCard.tsx | 32 +-- .../OwnershipCard/useAggregatedEntities.ts | 183 ------------------ ...useDirectEntities.ts => useGetEntities.ts} | 88 +++++++-- 5 files changed, 82 insertions(+), 352 deletions(-) rename plugins/org/src/components/Cards/OwnershipCard/{AggregatedRelationsGrid.tsx => ComponentsGrid.tsx} (93%) delete mode 100644 plugins/org/src/components/Cards/OwnershipCard/DirectRelationsGrid.tsx delete mode 100644 plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts rename plugins/org/src/components/Cards/OwnershipCard/{useDirectEntities.ts => useGetEntities.ts} (62%) diff --git a/plugins/org/src/components/Cards/OwnershipCard/AggregatedRelationsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx similarity index 93% rename from plugins/org/src/components/Cards/OwnershipCard/AggregatedRelationsGrid.tsx rename to plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx index 4839e4db56..e62013d688 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/AggregatedRelationsGrid.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx @@ -28,7 +28,7 @@ import { import React from 'react'; import pluralize from 'pluralize'; import { catalogIndexRouteRef } from '../../../routes'; -import { useAggregatedEntities } from './useAggregatedEntities'; +import { useGetEntities } from './useGetEntities'; const useStyles = makeStyles((theme: BackstageTheme) => createStyles({ @@ -86,16 +86,19 @@ const EntityCountTile = ({ }; // can only be used for group entity -export const AggregatedRelationsGrid = ({ +export const ComponentsGrid = ({ entity, + relationsType, entityFilterKind, }: { entity: Entity; + relationsType: string; entityFilterKind?: string[]; }) => { const catalogLink = useRouteRef(catalogIndexRouteRef); - const { componentsWithCounters, loading, error } = useAggregatedEntities( + const { componentsWithCounters, loading, error } = useGetEntities( entity, + relationsType, entityFilterKind, ); diff --git a/plugins/org/src/components/Cards/OwnershipCard/DirectRelationsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/DirectRelationsGrid.tsx deleted file mode 100644 index a7cd521ecc..0000000000 --- a/plugins/org/src/components/Cards/OwnershipCard/DirectRelationsGrid.tsx +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Entity } from '@backstage/catalog-model'; -import { Link, Progress, ResponseErrorPanel } from '@backstage/core-components'; -import { useRouteRef } from '@backstage/core-plugin-api'; -import { BackstageTheme } from '@backstage/theme'; -import { - Box, - createStyles, - Grid, - makeStyles, - Typography, -} from '@material-ui/core'; -import React from 'react'; -import pluralize from 'pluralize'; -import { catalogIndexRouteRef } from '../../../routes'; -import { useDirectEntities } from './useDirectEntities'; - -const useStyles = makeStyles((theme: BackstageTheme) => - createStyles({ - card: { - border: `1px solid ${theme.palette.divider}`, - boxShadow: theme.shadows[2], - borderRadius: '4px', - padding: theme.spacing(2), - color: '#fff', - transition: `${theme.transitions.duration.standard}ms`, - '&:hover': { - boxShadow: theme.shadows[4], - }, - }, - bold: { - fontWeight: theme.typography.fontWeightBold, - }, - entityTypeBox: { - background: (props: { type: string }) => - theme.getPageTheme({ themeId: props.type }).backgroundImage, - }, - }), -); - -const EntityCountTile = ({ - counter, - type, - name, - url, -}: { - counter: number; - type: string; - name: string; - url: string; -}) => { - const classes = useStyles({ type }); - - return ( - - - - {counter} - - - {pluralize(name, counter)} - - - - ); -}; - -export const DirectRelationsGrid = ({ - entity, - entityFilterKind, -}: { - entity: Entity; - entityFilterKind?: string[]; -}) => { - const catalogLink = useRouteRef(catalogIndexRouteRef); - - const { componentsWithCounters, loading, error } = useDirectEntities( - entity, - entityFilterKind, - ); - - if (loading) { - return ; - } else if (error) { - return ; - } - - return ( - - {componentsWithCounters?.map(c => ( - - - - ))} - - ); -}; diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx index 37541a786a..f188e6de01 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx @@ -14,7 +14,6 @@ * limitations under the License. */ -import { Entity } from '@backstage/catalog-model'; import { InfoCard, InfoCardVariants } from '@backstage/core-components'; import { useEntity } from '@backstage/plugin-catalog-react'; import { @@ -27,8 +26,7 @@ import { Tooltip, } from '@material-ui/core'; import React, { useState } from 'react'; -import { DirectRelationsGrid } from './DirectRelationsGrid'; -import { AggregatedRelationsGrid } from './AggregatedRelationsGrid'; +import { ComponentsGrid } from './ComponentsGrid'; const useStyles = makeStyles(theme => ({ list: { @@ -53,24 +51,6 @@ const useStyles = makeStyles(theme => ({ }, })); -const directRelationsGrid = (entity: Entity, entityFilterKind?: string[]) => { - return ( - - ); -}; - -const aggregatedRelationsGrid = ( - entity: Entity, - entityFilterKind?: string[], -) => { - return ( - - ); -}; - export const OwnershipCard = ({ variant, entityFilterKind, @@ -82,10 +62,6 @@ export const OwnershipCard = ({ const { entity } = useEntity(); const isGroup = entity.kind === 'Group'; const [relationsType, setRelationsType] = useState('direct'); - const renderedGrid = - relationsType !== 'direct' && isGroup - ? aggregatedRelationsGrid(entity, entityFilterKind) - : directRelationsGrid(entity, entityFilterKind); return ( @@ -118,7 +94,11 @@ export const OwnershipCard = ({ - {renderedGrid} + ); }; diff --git a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts deleted file mode 100644 index 52390cccef..0000000000 --- a/plugins/org/src/components/Cards/OwnershipCard/useAggregatedEntities.ts +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - Entity, - RELATION_PARENT_OF, - stringifyEntityRef, -} from '@backstage/catalog-model'; -import { - catalogApiRef, - getEntityRelations, -} from '@backstage/plugin-catalog-react'; -import limiterFactory from 'p-limit'; -import { useApi } from '@backstage/core-plugin-api'; -import useAsync from 'react-use/lib/useAsync'; -import qs from 'qs'; - -const limiter = limiterFactory(10); - -type EntityTypeProps = { - kind: string; - type: string; - count: number; -}; - -const getQueryParams = ( - ownerEntitiesRef: string[], - selectedEntity: EntityTypeProps, -): string => { - const { kind, type } = selectedEntity; - // removing 'group:default/' from the string entity ref 'group:default/team-a' - const owners = ownerEntitiesRef.map(owner => owner.split('/')[1]); - const filters = { - kind, - type, - owners, - user: 'all', - }; - const queryParams = qs.stringify({ - filters, - }); - - return queryParams; -}; - -export function useAggregatedEntities( - entity: Entity, - entityFilterKind?: string[], -): { - componentsWithCounters: - | { - counter: number; - type: string; - name: string; - queryParams: string; - }[] - | undefined; - loading: boolean; - error?: Error; -} { - const catalogApi = useApi(catalogApiRef); - const requestedEntities: Entity[] = []; - const outstandingEntities = new Map>(); - const processedEntities = new Set(); - requestedEntities.push(entity); - let currentEntity = entity; - const kinds = entityFilterKind ?? ['Component', 'API', 'System']; - - const { - loading, - error, - value: componentsWithCounters, - } = useAsync(async () => { - while (requestedEntities.length > 0) { - const childRelations = getEntityRelations( - currentEntity, - RELATION_PARENT_OF, - { - kind: 'Group', - }, - ); - - await Promise.all( - childRelations.map(childGroup => - limiter(async () => { - const promise = catalogApi.getEntityByRef(childGroup); - outstandingEntities.set(childGroup.name, promise); - try { - const processedEntity = await promise; - if (processedEntity) { - requestedEntities.push(processedEntity); - } - } finally { - outstandingEntities.delete(childGroup.name); - } - }), - ), - ); - requestedEntities.shift(); - processedEntities.add( - stringifyEntityRef({ - kind: currentEntity.kind, - namespace: currentEntity.metadata.namespace, - name: currentEntity.metadata.name, - }), - ); - // always set currentEntity to the first element of array requestedEntities - currentEntity = requestedEntities[0]; - } - - const owners = Array.from(processedEntities); - const ownedAggregationEntitiesList = await catalogApi.getEntities({ - filter: [ - { - kind: kinds, - 'relations.ownedBy': owners, - }, - ], - fields: [ - 'kind', - 'metadata.name', - 'metadata.namespace', - 'spec.type', - 'relations', - ], - }); - - const counts = ownedAggregationEntitiesList.items.reduce( - (acc: EntityTypeProps[], ownedEntity) => { - const match = acc.find( - x => - x.kind === ownedEntity.kind && - x.type === (ownedEntity.spec?.type ?? ownedEntity.kind), - ); - if (match) { - match.count += 1; - } else { - acc.push({ - kind: ownedEntity.kind, - type: ownedEntity.spec?.type?.toString() ?? ownedEntity.kind, - count: 1, - }); - } - return acc; - }, - [], - ); - - // Return top N (six) entities to be displayed in ownership boxes - const topN = counts.sort((a, b) => b.count - a.count).slice(0, 6); - - return topN.map(topOwnedEntity => ({ - counter: topOwnedEntity.count, - type: topOwnedEntity.type, - name: topOwnedEntity.type.toLocaleUpperCase('en-US'), - queryParams: getQueryParams(owners, topOwnedEntity), - })) as Array<{ - counter: number; - type: string; - name: string; - queryParams: string; - }>; - }, [catalogApi, entity]); - - return { - componentsWithCounters, - loading, - error, - }; -} diff --git a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useGetEntities.ts similarity index 62% rename from plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts rename to plugins/org/src/components/Cards/OwnershipCard/useGetEntities.ts index 6b8886a5e6..d8a269c868 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useDirectEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useGetEntities.ts @@ -17,16 +17,20 @@ import { Entity, RELATION_MEMBER_OF, + RELATION_PARENT_OF, stringifyEntityRef, } from '@backstage/catalog-model'; -import { useApi } from '@backstage/core-plugin-api'; import { + CatalogApi, catalogApiRef, getEntityRelations, - humanizeEntityRef, } from '@backstage/plugin-catalog-react'; -import qs from 'qs'; +import limiterFactory from 'p-limit'; +import { useApi } from '@backstage/core-plugin-api'; import useAsync from 'react-use/lib/useAsync'; +import qs from 'qs'; + +const limiter = limiterFactory(10); type EntityTypeProps = { kind: string; @@ -35,24 +39,17 @@ type EntityTypeProps = { }; const getQueryParams = ( - ownerEntity: Entity, + ownersEntityRef: string[], selectedEntity: EntityTypeProps, ): string => { - const ownerName = humanizeEntityRef(ownerEntity, { defaultKind: 'group' }); const { kind, type } = selectedEntity; + const owners = ownersEntityRef.map(owner => owner.split('/')[1]); const filters = { kind, type, - owners: [ownerName], + owners, user: 'all', }; - if (ownerEntity.kind === 'User') { - const ownerGroups = getEntityRelations(ownerEntity, RELATION_MEMBER_OF, { - kind: 'Group', - }); - const ownerGroupsName = ownerGroups.map(ownerGroup => ownerGroup.name); - filters.owners = [...filters.owners, ...ownerGroupsName]; - } const queryParams = qs.stringify({ filters, }); @@ -78,8 +75,59 @@ const getOwnersEntityRef = (owner: Entity): string[] => { return owners; }; -export function useDirectEntities( +const getAggregatedOwnersEntityRef = async ( + parentGroup: Entity, + catalogApi: CatalogApi, +): Promise => { + const requestedEntities: Entity[] = []; + const outstandingEntities = new Map>(); + const processedEntities = new Set(); + requestedEntities.push(parentGroup); + let currentEntity = parentGroup; + + while (requestedEntities.length > 0) { + const childRelations = getEntityRelations( + currentEntity, + RELATION_PARENT_OF, + { + kind: 'Group', + }, + ); + + await Promise.all( + childRelations.map(childGroup => + limiter(async () => { + const promise = catalogApi.getEntityByRef(childGroup); + outstandingEntities.set(childGroup.name, promise); + try { + const processedEntity = await promise; + if (processedEntity) { + requestedEntities.push(processedEntity); + } + } finally { + outstandingEntities.delete(childGroup.name); + } + }), + ), + ); + requestedEntities.shift(); + processedEntities.add( + stringifyEntityRef({ + kind: currentEntity.kind, + namespace: currentEntity.metadata.namespace, + name: currentEntity.metadata.name, + }), + ); + // always set currentEntity to the first element of array requestedEntities + currentEntity = requestedEntities[0]; + } + + return Array.from(processedEntities); +}; + +export function useGetEntities( entity: Entity, + relationsType: string, entityFilterKind?: string[], ): { componentsWithCounters: @@ -94,14 +142,18 @@ export function useDirectEntities( error?: Error; } { const catalogApi = useApi(catalogApiRef); + const kinds = entityFilterKind ?? ['Component', 'API', 'System']; + const isGroup = entity.kind === 'Group'; const { loading, error, value: componentsWithCounters, } = useAsync(async () => { - const kinds = entityFilterKind ?? ['Component', 'API', 'System']; - const owners = getOwnersEntityRef(entity); + const owners = + relationsType === 'aggregated' && isGroup + ? await getAggregatedOwnersEntityRef(entity, catalogApi) + : getOwnersEntityRef(entity); const ownedEntitiesList = await catalogApi.getEntities({ filter: [ { @@ -146,14 +198,14 @@ export function useDirectEntities( counter: topOwnedEntity.count, type: topOwnedEntity.type, name: topOwnedEntity.type.toLocaleUpperCase('en-US'), - queryParams: getQueryParams(entity, topOwnedEntity), + queryParams: getQueryParams(owners, topOwnedEntity), })) as Array<{ counter: number; type: string; name: string; queryParams: string; }>; - }, [catalogApi, entity]); + }, [catalogApi, entity, relationsType]); return { componentsWithCounters, From 102e6efea595e583ab99619a63b5abf58455c147 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 24 Mar 2022 14:35:08 +0700 Subject: [PATCH 104/225] fix test ownership card Signed-off-by: Prasetya Aria Wibawa --- .../src/components/Cards/OwnershipCard/OwnershipCard.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx index 6c9b25fd08..dcaae2d4bf 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx @@ -288,7 +288,7 @@ describe('OwnershipCard', () => { expect(getByText('OPENAPI').closest('a')).toHaveAttribute( 'href', - '/create/?filters%5Bkind%5D=API&filters%5Btype%5D=openapi&filters%5Bowners%5D%5B0%5D=user%3Athe-user&filters%5Bowners%5D%5B1%5D=my-team&filters%5Buser%5D=all', + '/create/?filters%5Bkind%5D=API&filters%5Btype%5D=openapi&filters%5Bowners%5D%5B0%5D=the-user&filters%5Bowners%5D%5B1%5D=my-team&filters%5Buser%5D=all', ); }); }); From f12cb33bd57949c0f6844f61de3423ffce542a3b Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 24 Mar 2022 14:56:43 +0700 Subject: [PATCH 105/225] passing down isGroup value from ownershipCard to useGetEntities Signed-off-by: Prasetya Aria Wibawa --- .../org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx | 3 +++ .../org/src/components/Cards/OwnershipCard/OwnershipCard.tsx | 1 + .../org/src/components/Cards/OwnershipCard/useGetEntities.ts | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx index e62013d688..4b14487a29 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx @@ -89,16 +89,19 @@ const EntityCountTile = ({ export const ComponentsGrid = ({ entity, relationsType, + isGroup, entityFilterKind, }: { entity: Entity; relationsType: string; + isGroup: boolean; entityFilterKind?: string[]; }) => { const catalogLink = useRouteRef(catalogIndexRouteRef); const { componentsWithCounters, loading, error } = useGetEntities( entity, relationsType, + isGroup, entityFilterKind, ); diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx index f188e6de01..13e8502b7a 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.tsx @@ -97,6 +97,7 @@ export const OwnershipCard = ({ diff --git a/plugins/org/src/components/Cards/OwnershipCard/useGetEntities.ts b/plugins/org/src/components/Cards/OwnershipCard/useGetEntities.ts index d8a269c868..48760002fa 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/useGetEntities.ts +++ b/plugins/org/src/components/Cards/OwnershipCard/useGetEntities.ts @@ -128,6 +128,7 @@ const getAggregatedOwnersEntityRef = async ( export function useGetEntities( entity: Entity, relationsType: string, + isGroup: boolean, entityFilterKind?: string[], ): { componentsWithCounters: @@ -143,7 +144,6 @@ export function useGetEntities( } { const catalogApi = useApi(catalogApiRef); const kinds = entityFilterKind ?? ['Component', 'API', 'System']; - const isGroup = entity.kind === 'Group'; const { loading, From 0e5c9b2c8aaec700c7ce6d34b90d3999d65e98e3 Mon Sep 17 00:00:00 2001 From: Prasetya Aria Wibawa Date: Thu, 24 Mar 2022 16:14:16 +0700 Subject: [PATCH 106/225] remove unused comment Signed-off-by: Prasetya Aria Wibawa --- .../org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx index 4b14487a29..6f7680849c 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx @@ -85,7 +85,6 @@ const EntityCountTile = ({ ); }; -// can only be used for group entity export const ComponentsGrid = ({ entity, relationsType, From bf9ea11b3e54d4514c209d09bd2ef21fb47e0fc4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 10:48:27 +0000 Subject: [PATCH 107/225] build(deps): bump eslint from 8.10.0 to 8.11.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.10.0 to 8.11.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.10.0...v8.11.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 36068320ab..634c1b0b24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2024,16 +2024,16 @@ ts-node "^9" tslib "^2" -"@eslint/eslintrc@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz#7ce1547a5c46dfe56e1e45c3c9ed18038c721c6a" - integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w== +"@eslint/eslintrc@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" + integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.3.1" globals "^13.9.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.0.4" @@ -11869,11 +11869,11 @@ eslint-webpack-plugin@^2.6.0: schema-utils "^3.1.1" eslint@^8.6.0: - version "8.10.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz#931be395eb60f900c01658b278e05b6dae47199d" - integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw== + version "8.11.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" + integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== dependencies: - "@eslint/eslintrc" "^1.2.0" + "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -14134,11 +14134,6 @@ ignore@^3.3.5: resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" From b408d911fdfd725f6f1bbe0545c06f229f3195f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 24 Mar 2022 11:48:43 +0100 Subject: [PATCH 108/225] cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- yarn.lock | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/yarn.lock b/yarn.lock index e2d1ab9985..801c49206f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2495,12 +2495,12 @@ valid-url "1.0.9" "@graphql-tools/load@^7.3.0", "@graphql-tools/load@^7.4.1": - version "7.5.1" - resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.1.tgz#8c7f846d2185ddc1d44fdfbf1ed9cb678f69e40b" - integrity sha512-j9XcLYZPZdl/TzzqA83qveJmwcCxgGizt5L1+C1/Z68brTEmQHLdQCOR3Ma3ewESJt6DU05kSTu2raKaunkjRg== + version "7.5.5" + resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.5.tgz#d61e5bdee59b6c8aa9631f74f0b2a70d512e5b31" + integrity sha512-qPasit140nwTbMQbFCfZcgaS7q/0+xMQGdkMGU11rtHt6/jMgJIKDUU8/fJGKltNY3EeHlEdVtZmggZD7Rr6bA== dependencies: - "@graphql-tools/schema" "8.3.1" - "@graphql-tools/utils" "^8.6.0" + "@graphql-tools/schema" "8.3.5" + "@graphql-tools/utils" "8.6.5" p-limit "3.1.0" tslib "~2.3.0" @@ -2573,13 +2573,13 @@ relay-compiler "12.0.0" tslib "~2.3.0" -"@graphql-tools/schema@8.3.1": - version "8.3.1" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74" - integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ== +"@graphql-tools/schema@8.3.5", "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": + version "8.3.5" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz#ebec0c0c7f53e591d34375d6f81d0660852fcaca" + integrity sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg== dependencies: - "@graphql-tools/merge" "^8.2.1" - "@graphql-tools/utils" "^8.5.1" + "@graphql-tools/merge" "8.2.6" + "@graphql-tools/utils" "8.6.5" tslib "~2.3.0" value-or-promise "1.0.11" @@ -2592,16 +2592,6 @@ tslib "~2.2.0" value-or-promise "1.0.6" -"@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": - version "8.3.5" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz#ebec0c0c7f53e591d34375d6f81d0660852fcaca" - integrity sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg== - dependencies: - "@graphql-tools/merge" "8.2.6" - "@graphql-tools/utils" "8.6.5" - tslib "~2.3.0" - value-or-promise "1.0.11" - "@graphql-tools/url-loader@^6.0.0": version "6.10.1" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz#dc741e4299e0e7ddf435eba50a1f713b3e763b33" From 0654c87cf2feac5ddd4588e9e8c813c6c5b1470e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 13:19:59 +0100 Subject: [PATCH 109/225] backend-test-utils: avoid cleanup if no databases are supported Signed-off-by: Patrik Oldsberg --- .changeset/pretty-ghosts-scream.md | 5 +++++ packages/backend-test-utils/src/database/TestDatabases.ts | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 .changeset/pretty-ghosts-scream.md diff --git a/.changeset/pretty-ghosts-scream.md b/.changeset/pretty-ghosts-scream.md new file mode 100644 index 0000000000..7a604d75b6 --- /dev/null +++ b/.changeset/pretty-ghosts-scream.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-test-utils': patch +--- + +`TestDatabases.create` will no longer set up an `afterAll` test handler if no databases are supported. diff --git a/packages/backend-test-utils/src/database/TestDatabases.ts b/packages/backend-test-utils/src/database/TestDatabases.ts index a7f5ceb344..76d12ce8f1 100644 --- a/packages/backend-test-utils/src/database/TestDatabases.ts +++ b/packages/backend-test-utils/src/database/TestDatabases.ts @@ -91,9 +91,11 @@ export class TestDatabases { const databases = new TestDatabases(supportedIds); - afterAll(async () => { - await databases.shutdown(); - }); + if (supportedIds.length > 0) { + afterAll(async () => { + await databases.shutdown(); + }); + } return databases; } From fe8ac3595cf110922055ca79580123e0df57be22 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 24 Mar 2022 13:26:52 +0100 Subject: [PATCH 110/225] actions: add renovate Signed-off-by: Johan Haals --- .github/renovate.json5 | 3 + .../workflows/sync_renovate-changesets.yml | 97 +++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 .github/renovate.json5 create mode 100644 .github/workflows/sync_renovate-changesets.yml diff --git a/.github/renovate.json5 b/.github/renovate.json5 new file mode 100644 index 0000000000..a32a4bb9d2 --- /dev/null +++ b/.github/renovate.json5 @@ -0,0 +1,3 @@ +{ + extends: ['config:base', ':disableDependencyDashboard', ':gitSignOff'], +} diff --git a/.github/workflows/sync_renovate-changesets.yml b/.github/workflows/sync_renovate-changesets.yml new file mode 100644 index 0000000000..780972bd0f --- /dev/null +++ b/.github/workflows/sync_renovate-changesets.yml @@ -0,0 +1,97 @@ +name: Sync Renovate changeset +on: + pull_request_target: + paths: + - '.github/workflows/sync_renovate-changesets.yml' + - '**/yarn.lock' + +jobs: + generate-changeset: + runs-on: ubuntu-latest + if: github.actor == 'renovate[bot]' && github.repository == 'backstage/backstage' + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 2 + ref: ${{ github.head_ref }} + token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} + - name: Configure Git + run: | + git config --global user.email noreply@backstage.io + git config --global user.name 'Github changeset workflow' + - name: Generate changeset + uses: actions/github-script@v5 + with: + script: | + const { promises: fs } = require("fs"); + // Parses package.json files and returns the package names + async function getPackagesNames(files) { + const names = []; + for (const file of files) { + const data = JSON.parse(await fs.readFile(file, "utf8")); + if (!data.private) { + names.push(data.name); + } + } + return names; + } + + async function createChangeset(fileName, packageBumps, packages) { + let message = ""; + for (const [pkg, bump] of packageBumps) { + message = message + `Updated dependency \`${pkg}\` to \`${bump}\`.\n`; + } + + const pkgs = packages.map((pkg) => `'${pkg}': patch`).join("\n"); + const body = `---\n${pkgs}\n---\n\n${message}\n`; + await fs.writeFile(fileName, body); + } + + async function getBumps(files) { + const bumps = new Map(); + for (const file of files) { + const { stdout: changes } = await exec.getExecOutput("git", [ + "show", + file, + ]); + for (const change of changes.split("\n")) { + if (!change.startsWith("+ ")) { + continue; + } + const match = change.match(/"(.*?)"/g); + bumps.set(match[0].replace(/"/g, ""), match[1].replace(/"/g, "")); + } + } + return bumps; + } + + const branch = await exec.getExecOutput("git branch --show-current"); + if (!branch.stdout.startsWith("renovate/")) { + console.log("Not a renovate branch, skipping"); + return; + } + const diffOutput = await exec.getExecOutput("git diff --name-only HEAD~1"); + const diffFiles = diffOutput.stdout.split("\n"); + if (diffFiles.find((f) => f.startsWith(".changeset"))) { + console.log("Changeset already exists, skipping"); + return; + } + const files = diffFiles + .filter((file) => file !== "package.json") // skip root package.json + .filter((file) => file.includes("package.json")); + const packageNames = await getPackagesNames(files); + if (!packageNames.length) { + console.log("No package.json changes to published packages, skipping"); + return; + } + const { stdout: shortHash } = await exec.getExecOutput( + "git rev-parse --short HEAD" + ); + const fileName = `.changeset/renovate-${shortHash.trim()}.md`; + + const packageBumps = await getBumps(files); + await createChangeset(fileName, packageBumps, packageNames); + await exec.exec("git", ["add", fileName]); + await exec.exec("git commit -C HEAD --amend --no-edit"); + await exec.exec("git push --force"); From 26b0f39d8834023c9127e6fed2f1285afdb6529d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 24 Mar 2022 14:13:33 +0100 Subject: [PATCH 111/225] add label Signed-off-by: Johan Haals --- .github/renovate.json5 | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index a32a4bb9d2..47b10068cc 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,3 +1,4 @@ { + labels: ['dependencies'], extends: ['config:base', ':disableDependencyDashboard', ':gitSignOff'], } From 5b3079694e1eba89e6db1b525d666a60554b46c6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 14:17:30 +0100 Subject: [PATCH 112/225] cli: stop logging stopped watcher Signed-off-by: Patrik Oldsberg --- .changeset/hip-poems-breathe.md | 5 +++++ packages/cli/src/lib/bundler/backend.ts | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 .changeset/hip-poems-breathe.md diff --git a/.changeset/hip-poems-breathe.md b/.changeset/hip-poems-breathe.md new file mode 100644 index 0000000000..f8a507b2a7 --- /dev/null +++ b/.changeset/hip-poems-breathe.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Stop logging "Stopped watcher" when shutting down the development backend. diff --git a/packages/cli/src/lib/bundler/backend.ts b/packages/cli/src/lib/bundler/backend.ts index bd4ab42098..1b161976e3 100644 --- a/packages/cli/src/lib/bundler/backend.ts +++ b/packages/cli/src/lib/bundler/backend.ts @@ -35,9 +35,8 @@ export async function serveBackend(options: BackendServeOptions) { const waitForExit = async () => { for (const signal of ['SIGINT', 'SIGTERM'] as const) { process.on(signal, () => { - compiler.close(() => console.log('Stopped watcher')); // exit instead of resolve. The process is shutting down and resolving a promise here logs an error - process.exit(); + compiler.close(() => process.exit()); }); } From 3560397f6147ccb51921e8ecb9cb40d7dfd95299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 24 Mar 2022 14:34:17 +0100 Subject: [PATCH 113/225] changeset script typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- scripts/generate-changeset-feedback.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate-changeset-feedback.js b/scripts/generate-changeset-feedback.js index 588b13654c..1d5fc630bb 100644 --- a/scripts/generate-changeset-feedback.js +++ b/scripts/generate-changeset-feedback.js @@ -181,7 +181,7 @@ The following package(s) are changed by this PR but do not have a changeset: } }, ` -See [CONTRIBUTION.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#creating-changesets) for more information about how to add changesets. +See [CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#creating-changesets) for more information about how to add changesets. `, ); From b7436743cb8f331a9935422fc2cc7385003b5b61 Mon Sep 17 00:00:00 2001 From: Niklas Aronsson Date: Wed, 16 Mar 2022 15:11:47 +0100 Subject: [PATCH 114/225] GerritUrlReader added that implements "readUrl" The url used by "readUrl" is supposed to be human friendly url that can be opened in the browser. This makes the Gerrit configuration a bit more complicated since there is no built in support to browse a git in Gerrit. Instead this is handled by separate services that can be deployed at a different host then the Gerrit instance. This implementation supports Gitiles as the code browser tool. The dependency to Gitiles is optional, it is perfectly possible to integrate Gerrit with Backstage but it will not be possible to open the "human readable links" found in different places of the Backstage gui. A new optional config field has been added to Gerrit integration where the base url of the Gitiles installation can be set. This is needed to create a working link to some git content. A new "url reader" has been added that reads content from Gerrit, as of now only "readUrl" is implemented ("readTree" will soon follow). The format of url is the format used by Gitiles. Gerrit's "readUrl" is pretty simple, it's a single API call to Gerrit that returns the content base64 encoded. What is a bit different to other "urlReaders" is the predicate function in that is not matching the host of the Gerrrit API. The "host" variable in the config is the Gerrit host. The address where Gitiles is installed may be on the same host but it could be on a separate host. For example a Gerrit instance could be hosted on "gerrit-review.company.com" but the repos could be browsable on a separate host, e.g. "gerrit.company.com" and the human readable URL would then not point to the API host. Signed-off-by: Niklas Aronsson --- .changeset/nine-grapes-turn.md | 5 + .changeset/tidy-days-warn.md | 5 + .github/styles/vocab.txt | 1 + packages/backend-common/api-report.md | 18 ++ .../src/reading/GerritUrlReader.test.ts | 173 +++++++++++++++++ .../src/reading/GerritUrlReader.ts | 124 ++++++++++++ .../backend-common/src/reading/UrlReaders.ts | 2 + packages/backend-common/src/reading/index.ts | 1 + packages/integration/api-report.md | 15 ++ .../integration/src/gerrit/config.test.ts | 8 +- packages/integration/src/gerrit/config.ts | 19 ++ packages/integration/src/gerrit/core.test.ts | 177 ++++++++++++++++++ packages/integration/src/gerrit/core.ts | 165 ++++++++++++++++ packages/integration/src/gerrit/index.ts | 6 + 14 files changed, 718 insertions(+), 1 deletion(-) create mode 100644 .changeset/nine-grapes-turn.md create mode 100644 .changeset/tidy-days-warn.md create mode 100644 packages/backend-common/src/reading/GerritUrlReader.test.ts create mode 100644 packages/backend-common/src/reading/GerritUrlReader.ts create mode 100644 packages/integration/src/gerrit/core.test.ts create mode 100644 packages/integration/src/gerrit/core.ts diff --git a/.changeset/nine-grapes-turn.md b/.changeset/nine-grapes-turn.md new file mode 100644 index 0000000000..263618722c --- /dev/null +++ b/.changeset/nine-grapes-turn.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Added the GerritUrlReader that implements "readUrl". diff --git a/.changeset/tidy-days-warn.md b/.changeset/tidy-days-warn.md new file mode 100644 index 0000000000..e84d563f01 --- /dev/null +++ b/.changeset/tidy-days-warn.md @@ -0,0 +1,5 @@ +--- +'@backstage/integration': minor +--- + +Gerrit integration: Added an optional configuration to set the Gitiles base url. diff --git a/.github/styles/vocab.txt b/.github/styles/vocab.txt index a1d7397172..3910caccc6 100644 --- a/.github/styles/vocab.txt +++ b/.github/styles/vocab.txt @@ -108,6 +108,7 @@ Francesco Gerrit gitbeaker github +Gitiles gitlab GitLab Gource diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 1b901ea5ac..cd4d08df87 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -17,6 +17,7 @@ import Docker from 'dockerode'; import { Duration } from 'luxon'; import { ErrorRequestHandler } from 'express'; import express from 'express'; +import { GerritIntegration } from '@backstage/integration'; import { GithubCredentialsProvider } from '@backstage/integration'; import { GitHubIntegration } from '@backstage/integration'; import { GitLabIntegration } from '@backstage/integration'; @@ -252,6 +253,23 @@ export type FromReadableArrayOptions = Array<{ path: string; }>; +// @public +export class GerritUrlReader implements UrlReader { + constructor(integration: GerritIntegration); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree(): Promise; + // (undocumented) + readUrl(url: string, options?: ReadUrlOptions): Promise; + // (undocumented) + search(): Promise; + // (undocumented) + toString(): string; +} + // @public export function getRootLogger(): winston.Logger; diff --git a/packages/backend-common/src/reading/GerritUrlReader.test.ts b/packages/backend-common/src/reading/GerritUrlReader.test.ts new file mode 100644 index 0000000000..bc88fdcb20 --- /dev/null +++ b/packages/backend-common/src/reading/GerritUrlReader.test.ts @@ -0,0 +1,173 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import { ConfigReader } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; +import { getVoidLogger } from '../logging'; +import { DefaultReadTreeResponseFactory } from './tree'; +import { UrlReaderPredicateTuple } from './types'; +import { + GerritIntegration, + readGerritIntegrationConfig, +} from '@backstage/integration'; +import { GerritUrlReader } from './GerritUrlReader'; + +const treeResponseFactory = DefaultReadTreeResponseFactory.create({ + config: new ConfigReader({}), +}); + +const gerritProcessor = new GerritUrlReader( + new GerritIntegration( + readGerritIntegrationConfig( + new ConfigReader({ + host: 'gerrit.com', + }), + ), + ), +); + +const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => { + return GerritUrlReader.factory({ + config: new ConfigReader(config), + logger: getVoidLogger(), + treeResponseFactory, + }); +}; + +describe('GerritUrlReader', () => { + const worker = setupServer(); + setupRequestMockHandlers(worker); + + describe('reader factory', () => { + it('creates a reader.', () => { + const readers = createReader({ + integrations: { + gerrit: [{ host: 'gerrit.com' }], + }, + }); + expect(readers).toHaveLength(1); + }); + + it('should not create a default entry.', () => { + const readers = createReader({ + integrations: {}, + }); + expect(readers).toHaveLength(0); + }); + }); + + describe('predicates without Gitiles', () => { + const readers = createReader({ + integrations: { + gerrit: [{ host: 'gerrit.com' }], + }, + }); + const predicate = readers[0].predicate; + + it('returns true for the configured host', () => { + expect(predicate(new URL('https://gerrit.com/path'))).toBe(true); + }); + + it('returns false for a different host.', () => { + expect(predicate(new URL('https://github.com/path'))).toBe(false); + }); + }); + + describe('predicates with gitilesBaseUrl set.', () => { + const readers = createReader({ + integrations: { + gerrit: [ + { host: 'gerrit-review.com', gitilesBaseUrl: 'https://gerrit.com' }, + ], + }, + }); + const predicate = readers[0].predicate; + + it('returns false since gitilesBaseUrl is set to the api host.', () => { + expect(predicate(new URL('https://gerrit-review.com/path'))).toBe(false); + }); + + it('returns false for host.', () => { + expect(predicate(new URL('https://gerrit.com/path'))).toBe(true); + }); + }); + + describe('readUrl', () => { + const responseBuffer = Buffer.from('Apache License'); + it('should be able to read file contents', async () => { + worker.use( + rest.get( + 'https://gerrit.com/projects/web%2Fproject/branches/master/files/LICENSE/content', + (_, res, ctx) => { + return res( + ctx.status(200), + ctx.body(responseBuffer.toString('base64')), + ); + }, + ), + ); + + const result = await gerritProcessor.readUrl( + 'https://gerrit.com/web/project/+/refs/heads/master/LICENSE', + ); + const buffer = await result.buffer(); + expect(buffer.toString()).toBe(responseBuffer.toString()); + }); + + it('should raise NotFoundError on 404.', async () => { + worker.use( + rest.get( + 'https://gerrit.com/projects/web%2Fproject/branches/master/files/LICENSE/content', + (_, res, ctx) => { + return res(ctx.status(404, 'File not found.')); + }, + ), + ); + + await expect( + gerritProcessor.readUrl( + 'https://gerrit.com/web/project/+/refs/heads/master/LICENSE', + ), + ).rejects.toThrow( + 'File https://gerrit.com/web/project/+/refs/heads/master/LICENSE not found.', + ); + }); + + it('should throw an error on non 404 errors.', async () => { + worker.use( + rest.get( + 'https://gerrit.com/projects/web%2Fproject/branches/master/files/LICENSE/content', + (_, res, ctx) => { + return res(ctx.status(500, 'Error!!!')); + }, + ), + ); + + await expect( + gerritProcessor.readUrl( + 'https://gerrit.com/web/project/+/refs/heads/master/LICENSE', + ), + ).rejects.toThrow( + 'https://gerrit.com/web/project/+/refs/heads/master/LICENSE' + + ' could not be read as https://gerrit.com/projects/web%2Fproject' + + '/branches/master/files/LICENSE/content, 500 Error!!!', + ); + }); + }); +}); diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts new file mode 100644 index 0000000000..7cc0b4731b --- /dev/null +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -0,0 +1,124 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { NotFoundError } from '@backstage/errors'; +import { + GerritIntegration, + getGerritFileContentsApiUrl, + getGerritRequestOptions, +} from '@backstage/integration'; +import fetch, { Response } from 'node-fetch'; +import { + ReaderFactory, + ReadTreeResponse, + ReadUrlOptions, + ReadUrlResponse, + SearchResponse, + UrlReader, +} from './types'; +import { ScmIntegrations } from '@backstage/integration'; + +/** + * Implements a {@link UrlReader} for files in Gerrit. + * + * @remarks + * To be able to link to Git contents for Gerrit providers in a user friendly + * way we are depending on that there is a Gitiles installation somewhere + * that we can link to. It is perfectly possible to integrate Gerrit with + * Backstage without Gitiles since all API calls goes directly to Gerrit. + * + * The "host" variable in the config is the Gerrit host. The address where + * Gitiles is installed may be on the same host but it could be on a + * separate host. For example a Gerrit instance could be hosted on + * "gerrit-review.company.com" but the repos could be browsable on a separate + * host, e.g. "gerrit.company.com" and the human readable URL would then + * not point to the API host. + * + * @public + */ +export class GerritUrlReader implements UrlReader { + static factory: ReaderFactory = ({ config }) => { + const integrations = ScmIntegrations.fromConfig(config); + if (!integrations.gerrit) { + return []; + } + return integrations.gerrit.list().map(integration => { + const reader = new GerritUrlReader(integration); + const predicate = (url: URL) => { + const gitilesUrl = new URL(integration.config.gitilesBaseUrl!); + // If gitilesUrl is not specfified it will default to + // "integration.config.host". + return url.host === gitilesUrl.host; + }; + return { reader, predicate }; + }); + }; + + constructor(private readonly integration: GerritIntegration) {} + + async read(url: string): Promise { + const response = await this.readUrl(url); + return response.buffer(); + } + + async readUrl( + url: string, + options?: ReadUrlOptions, + ): Promise { + const apiUrl = getGerritFileContentsApiUrl(this.integration.config, url); + let response: Response; + try { + response = await fetch(apiUrl, { + method: 'GET', + ...getGerritRequestOptions(this.integration.config), + // TODO(freben): The signal cast is there because pre-3.x versions of + // node-fetch have a very slightly deviating AbortSignal type signature. + // The difference does not affect us in practice however. The cast can + // be removed after we support ESM for CLI dependencies and migrate to + // version 3 of node-fetch. + // https://github.com/backstage/backstage/issues/8242 + signal: options?.signal as any, + }); + } catch (e) { + throw new Error(`Unable to read gerrit file ${url}, ${e}`); + } + if (response.ok) { + const responseBody = await response.text(); + return { + buffer: async () => Buffer.from(responseBody, 'base64'), + }; + } + if (response.status === 404) { + throw new NotFoundError(`File ${url} not found.`); + } + throw new Error( + `${url} could not be read as ${apiUrl}, ${response.status} ${response.statusText}`, + ); + } + + async readTree(): Promise { + throw new Error('GerritReader does not implement readTree'); + } + + async search(): Promise { + throw new Error('GerritReader does not implement search'); + } + + toString() { + const { host, password } = this.integration.config; + return `gerrit{host=${host},authed=${Boolean(password)}}`; + } +} diff --git a/packages/backend-common/src/reading/UrlReaders.ts b/packages/backend-common/src/reading/UrlReaders.ts index c0aae25808..e676d0e14c 100644 --- a/packages/backend-common/src/reading/UrlReaders.ts +++ b/packages/backend-common/src/reading/UrlReaders.ts @@ -20,6 +20,7 @@ import { ReaderFactory, UrlReader } from './types'; import { UrlReaderPredicateMux } from './UrlReaderPredicateMux'; import { AzureUrlReader } from './AzureUrlReader'; import { BitbucketUrlReader } from './BitbucketUrlReader'; +import { GerritUrlReader } from './GerritUrlReader'; import { GithubUrlReader } from './GithubUrlReader'; import { GitlabUrlReader } from './GitlabUrlReader'; import { DefaultReadTreeResponseFactory } from './tree'; @@ -82,6 +83,7 @@ export class UrlReaders { factories: factories.concat([ AzureUrlReader.factory, BitbucketUrlReader.factory, + GerritUrlReader.factory, GithubUrlReader.factory, GitlabUrlReader.factory, GoogleGcsUrlReader.factory, diff --git a/packages/backend-common/src/reading/index.ts b/packages/backend-common/src/reading/index.ts index 9c29bc93fe..c2c82e2bd5 100644 --- a/packages/backend-common/src/reading/index.ts +++ b/packages/backend-common/src/reading/index.ts @@ -16,6 +16,7 @@ export { AzureUrlReader } from './AzureUrlReader'; export { BitbucketUrlReader } from './BitbucketUrlReader'; +export { GerritUrlReader } from './GerritUrlReader'; export { GithubUrlReader } from './GithubUrlReader'; export { GitlabUrlReader } from './GitlabUrlReader'; export { AwsS3UrlReader } from './AwsS3UrlReader'; diff --git a/packages/integration/api-report.md b/packages/integration/api-report.md index d86acb291a..cdb260f089 100644 --- a/packages/integration/api-report.md +++ b/packages/integration/api-report.md @@ -138,6 +138,7 @@ export class GerritIntegration implements ScmIntegration { export type GerritIntegrationConfig = { host: string; baseUrl?: string; + gitilesBaseUrl?: string; username?: string; password?: string; }; @@ -184,6 +185,17 @@ export function getBitbucketRequestOptions( headers: Record; }; +// @public +export function getGerritFileContentsApiUrl( + config: GerritIntegrationConfig, + url: string, +): string; + +// @public +export function getGerritRequestOptions(config: GerritIntegrationConfig): { + headers?: Record; +}; + // @public export function getGitHubFileFetchUrl( url: string, @@ -330,6 +342,9 @@ export interface IntegrationsByType { gitlab: ScmIntegrationsGroup; } +// @public +export function parseGerritJsonResponse(response: Response): Promise; + // @public export function readAwsS3IntegrationConfig( config: Config, diff --git a/packages/integration/src/gerrit/config.test.ts b/packages/integration/src/gerrit/config.test.ts index ce1ddccd75..9c0d022548 100644 --- a/packages/integration/src/gerrit/config.test.ts +++ b/packages/integration/src/gerrit/config.test.ts @@ -56,6 +56,7 @@ describe('readGerritIntegrationConfig', () => { buildConfig({ host: 'a.com', baseUrl: 'https://a.com/api', + gitilesBaseUrl: 'https://a.com/git', username: 'u', password: 'p', }), @@ -63,6 +64,7 @@ describe('readGerritIntegrationConfig', () => { expect(output).toEqual({ host: 'a.com', baseUrl: 'https://a.com/api', + gitilesBaseUrl: 'https://a.com/git', username: 'u', password: 'p', }); @@ -77,6 +79,7 @@ describe('readGerritIntegrationConfig', () => { expect(output).toEqual({ host: 'a.com', baseUrl: 'https://a.com', + gitilesBaseUrl: 'https://a.com', username: undefined, password: undefined, }); @@ -107,6 +110,7 @@ describe('readGerritIntegrationConfig', () => { ).toEqual({ host: 'a.com', baseUrl: 'https://a.com/gerrit', + gitilesBaseUrl: 'https://a.com', }); }); }); @@ -116,7 +120,7 @@ describe('readGerritIntegrationConfigs', () => { return data.map(item => new ConfigReader(item)); } - it('reads all values', () => { + it('reads multiple configs', () => { const output = readGerritIntegrationConfigs( buildConfig([ { @@ -135,12 +139,14 @@ describe('readGerritIntegrationConfigs', () => { { host: 'a.com', baseUrl: 'https://a.com/api', + gitilesBaseUrl: 'https://a.com', username: 'u', password: 'p', }, { host: 'b.com', baseUrl: 'https://b.com/api', + gitilesBaseUrl: 'https://b.com', username: undefined, password: undefined, }, diff --git a/packages/integration/src/gerrit/config.ts b/packages/integration/src/gerrit/config.ts index 339b590c11..7dbb05d15b 100644 --- a/packages/integration/src/gerrit/config.ts +++ b/packages/integration/src/gerrit/config.ts @@ -38,6 +38,14 @@ export type GerritIntegrationConfig = { */ baseUrl?: string; + /** + * Optional base url for Gitiles. This is needed for creating a valid + * user-friendly url that can be used for browsing the content of the + * provider. If not set a default value will be created in the same way + * as the "baseUrl" option. + */ + gitilesBaseUrl?: string; + /** * The username to use for requests to gerrit. */ @@ -61,6 +69,7 @@ export function readGerritIntegrationConfig( ): GerritIntegrationConfig { const host = config.getString('host'); let baseUrl = config.getOptionalString('baseUrl'); + let gitilesBaseUrl = config.getOptionalString('gitilesBaseUrl'); const username = config.getOptionalString('username'); const password = config.getOptionalString('password'); @@ -72,16 +81,26 @@ export function readGerritIntegrationConfig( throw new Error( `Invalid Gerrit integration config, '${baseUrl}' is not a valid baseUrl`, ); + } else if (gitilesBaseUrl && !isValidUrl(gitilesBaseUrl)) { + throw new Error( + `Invalid Gerrit integration config, '${gitilesBaseUrl}' is not a valid gitilesBaseUrl`, + ); } if (baseUrl) { baseUrl = trimEnd(baseUrl, '/'); } else { baseUrl = `https://${host}`; } + if (gitilesBaseUrl) { + gitilesBaseUrl = trimEnd(gitilesBaseUrl, '/'); + } else { + gitilesBaseUrl = `https://${host}`; + } return { host, baseUrl, + gitilesBaseUrl, username, password, }; diff --git a/packages/integration/src/gerrit/core.test.ts b/packages/integration/src/gerrit/core.test.ts new file mode 100644 index 0000000000..b966a31b9e --- /dev/null +++ b/packages/integration/src/gerrit/core.test.ts @@ -0,0 +1,177 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import fetch from 'cross-fetch'; +import { setupRequestMockHandlers } from '@backstage/test-utils'; +import { GerritIntegrationConfig } from './config'; +import { + getGerritRequestOptions, + parseGerritJsonResponse, + parseGitilesUrl, + getGerritFileContentsApiUrl, +} from './core'; + +describe('gerrit core', () => { + const worker = setupServer(); + setupRequestMockHandlers(worker); + + describe('getGerritRequestOptions', () => { + it('adds headers when a password is specified', () => { + const authRequest: GerritIntegrationConfig = { + host: 'gerrit.com', + username: 'U', + password: 'P', + }; + const anonymousRequest: GerritIntegrationConfig = { + host: 'gerrit.com', + }; + expect( + (getGerritRequestOptions(authRequest).headers as any).Authorization, + ).toEqual('Basic VTpQ'); + expect( + getGerritRequestOptions(anonymousRequest).headers as any, + ).toBeUndefined(); + }); + }); + + describe('parseGitilesUrl', () => { + it('can parse a valid gitiles urls.', () => { + const config: GerritIntegrationConfig = { + host: 'gerrit.com', + gitilesBaseUrl: 'https://gerrit.com/gitiles', + }; + const { branch, filePath, project } = parseGitilesUrl( + config, + 'https://gerrit.com/gitiles/web/project/+/refs/heads/master/README.md', + ); + expect(project).toEqual('web/project'); + expect(branch).toEqual('master'); + expect(filePath).toEqual('README.md'); + + const { filePath: rootPath } = parseGitilesUrl( + config, + 'https://gerrit.com/gitiles/web/project/+/refs/heads/master', + ); + expect(rootPath).toEqual('/'); + }); + it('throws on incorrect gitiles urls.', () => { + const config: GerritIntegrationConfig = { + host: 'gerrit.com', + gitilesBaseUrl: 'https://gerrit.com', + }; + expect(() => + parseGitilesUrl( + config, + 'https://gerrit.com/+/refs/heads/master/README.md', + ), + ).toThrow(/project/); + expect(() => + parseGitilesUrl( + config, + 'https://gerrit.com/web/project/+/refs/changes/1/11/master/README.md', + ), + ).toThrow(/branch/); + }); + }); + + describe('getGerritFileContentsApiUrl', () => { + it('can create an url for anonymous access to the file fetch api.', () => { + const config: GerritIntegrationConfig = { + host: 'gerrit.com', + baseUrl: 'https://gerrit.com', + gitilesBaseUrl: 'https://gerrit.com', + }; + const fileContentUrl = getGerritFileContentsApiUrl( + config, + 'https://gerrit.com/web/project/+/refs/heads/master/README.md', + ); + expect(fileContentUrl).toEqual( + 'https://gerrit.com/projects/web%2Fproject/branches/master/files/README.md/content', + ); + }); + it('can create an url for authenticated access to the file fetch api.', () => { + const authConfig: GerritIntegrationConfig = { + host: 'gerrit.com', + baseUrl: 'https://gerrit.com', + gitilesBaseUrl: 'https://gerrit.com', + username: 'u', + password: 'u', + }; + const authFileContentUrl = getGerritFileContentsApiUrl( + authConfig, + 'https://gerrit.com/web/project/+/refs/heads/master/README.md', + ); + expect(authFileContentUrl).toEqual( + 'https://gerrit.com/a/projects/web%2Fproject/branches/master/files/README.md/content', + ); + }); + }); + + describe('parseGerritJsonResponse', () => { + it('can strip the magic prefix from the response.', async () => { + const responseBody = ")]}'[]"; + const apiUrl = 'https://gerrit.com/projects/'; + worker.use( + rest.get(apiUrl, (_, res, ctx) => + res( + ctx.status(200), + ctx.set('Content-Type', 'application/json'), + ctx.text(responseBody), + ), + ), + ); + const response = await fetch(apiUrl, { method: 'GET' }); + const jsonData = await parseGerritJsonResponse(response); + expect(jsonData).toEqual([]); + }); + it('will throw if the magic prefix is missing from the response.', async () => { + const responseBody = '[]'; + const apiUrl = 'https://gerrit.com/projects/'; + worker.use( + rest.get(apiUrl, (_, res, ctx) => + res( + ctx.status(200), + ctx.set('Content-Type', 'application/json'), + ctx.text(responseBody), + ), + ), + ); + const response = await fetch(apiUrl, { method: 'GET' }); + await expect(parseGerritJsonResponse(response)).rejects.toThrow( + /body prefix missing/, + ); + }); + it('will throw on invalid json with the magic prefix.', async () => { + const responseBody = ")]}']{}["; + const apiUrl = 'https://gerrit.com/projects/'; + worker.use( + rest.get(apiUrl, (_, res, ctx) => + res( + ctx.status(200), + ctx.set('Content-Type', 'application/json'), + ctx.text(responseBody), + ), + ), + ); + const response = await fetch(apiUrl, { method: 'GET' }); + await expect(parseGerritJsonResponse(response)).rejects.toThrow( + /response from/, + ); + }); + }); +}); diff --git a/packages/integration/src/gerrit/core.ts b/packages/integration/src/gerrit/core.ts new file mode 100644 index 0000000000..517d27d3ec --- /dev/null +++ b/packages/integration/src/gerrit/core.ts @@ -0,0 +1,165 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { trimStart } from 'lodash'; +import { GerritIntegrationConfig } from '.'; + +const GERRIT_BODY_PREFIX = ")]}'"; + +type GitFile = { + branch: string; + filePath: string; + project: string; +}; + +/** + * Parse a Gitiles URL and return branch, file path and project. + * + * @remarks + * + * Gerrit only handles code reviews so it does not have a native way to browse + * or showing the content of gits. Image if Github only had the "pull requests" + * tab. + * + * Any source code browsing is instead handled by optional services outside + * Gerrit. The url format chosen for the Gerrit url reader is the one used by + * the Gitiles project. Gerrit will work perfectly with Backstage without + * having Gitiles installed but there are some places in the Backstage GUI + * with links to the url used by the url reader. These will not work unless + * the urls point to an actual Gitiles installation. + * + * Gitiles url: + * https://g.com/optional_path/{project}/+/refs/heads/{branch}/{filePath} + * + * + * @param url - An URL pointing to a file stored in git. + * @public + */ + +export function parseGitilesUrl( + config: GerritIntegrationConfig, + url: string, +): GitFile { + const urlPath = url.replace(config.gitilesBaseUrl!, ''); + const parts = urlPath.split('/').filter(p => !!p); + + const projectEndIndex = parts.indexOf('+'); + + if (projectEndIndex <= 0) { + throw new Error(`Unable to parse project from url: ${url}`); + } + const project = trimStart(parts.slice(0, projectEndIndex).join('/'), '/'); + + const branchIndex = parts.indexOf('heads'); + if (branchIndex <= 0) { + throw new Error(`Unable to parse branch from url: ${url}`); + } + const branch = parts[branchIndex + 1]; + const filePath = parts.slice(branchIndex + 2).join('/'); + + return { + branch, + filePath: filePath === '' ? '/' : filePath, + project, + }; +} + +/** + * Return the authentication prefix. + * + * @remarks + * + * To authenticate with a password the API url must be prefixed with "/a/". + * If no password is set anonymous access (without the prefix) will + * be used. + * + * @param config - A Gerrit provider config. + * @public + */ +export function getAuthenticationPrefix( + config: GerritIntegrationConfig, +): string { + return config.password ? '/a/' : '/'; +} + +/** + * Return the url to fetch the contents of a file using the Gerrit API. + * + * @param url - An url pointing to a file in git. + * @public + */ +export function getGerritFileContentsApiUrl( + config: GerritIntegrationConfig, + url: string, +) { + const { branch, filePath, project } = parseGitilesUrl(config, url); + + return `${config.baseUrl}${getAuthenticationPrefix( + config, + )}projects/${encodeURIComponent( + project, + )}/branches/${branch}/files/${encodeURIComponent(filePath)}/content`; +} + +/** + * Return request headers for a Gerrit provider. + * + * @param config - A Gerrit provider config + * @public + */ +export function getGerritRequestOptions(config: GerritIntegrationConfig): { + headers?: Record; +} { + const headers: Record = {}; + + if (!config.password) { + return headers; + } + const buffer = Buffer.from(`${config.username}:${config.password}`, 'utf8'); + headers.Authorization = `Basic ${buffer.toString('base64')}`; + return { + headers, + }; +} + +/** + * Parse the json response from Gerrit and strip the magic prefix. + * + * @remarks + * + * To prevent against XSSI attacks the JSON response body from Gerrit starts + * with a magic prefix that must be stripped before it can be fed to a JSON + * parser. + * + * @param response - An API response. + * @public + */ +export async function parseGerritJsonResponse( + response: Response, +): Promise { + const responseBody = await response.text(); + if (responseBody.startsWith(GERRIT_BODY_PREFIX)) { + try { + return JSON.parse(responseBody.slice(GERRIT_BODY_PREFIX.length)); + } catch (ex) { + throw new Error( + `Invalid response from Gerrit: ${responseBody.slice(0, 10)} - ${ex}`, + ); + } + } + throw new Error( + `Gerrit JSON body prefix missing. Found: ${responseBody.slice(0, 10)}`, + ); +} diff --git a/packages/integration/src/gerrit/index.ts b/packages/integration/src/gerrit/index.ts index baad597a22..75e9779dbc 100644 --- a/packages/integration/src/gerrit/index.ts +++ b/packages/integration/src/gerrit/index.ts @@ -18,4 +18,10 @@ export { readGerritIntegrationConfig, readGerritIntegrationConfigs, } from './config'; +export { + getGerritFileContentsApiUrl, + getGerritRequestOptions, + parseGerritJsonResponse, +} from './core'; + export type { GerritIntegrationConfig } from './config'; From e1f14f4be8f7c26712295b81f27651715b124129 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 15:00:55 +0100 Subject: [PATCH 115/225] scripts/generate-changeset-feedback: fix json output & path matching Signed-off-by: Patrik Oldsberg --- scripts/generate-changeset-feedback.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/generate-changeset-feedback.js b/scripts/generate-changeset-feedback.js index 1d5fc630bb..b614459a0e 100644 --- a/scripts/generate-changeset-feedback.js +++ b/scripts/generate-changeset-feedback.js @@ -97,6 +97,7 @@ async function loadChangesets(filePaths) { ); const bumps = new Map(); + bumps.toJSON = () => Object.fromEntries(bumps); for (const line of lines) { const match = line.match(/^'(.*)': (patch|minor|major)$/); if (!match) { @@ -124,7 +125,7 @@ async function listChangedPackages(changedFiles, packages) { const changedPackageMap = new Map(); for (const filePath of changedFiles) { for (const pkg of packages) { - if (filePath.startsWith(pkg.path)) { + if (filePath.startsWith(`${pkg.path}/`)) { const pkgPath = relativePath(pkg.path, filePath); if (!isPublishedPath(pkgPath)) { break; From 2f127f3aba0adf7919c27fe871b82c1af9feff96 Mon Sep 17 00:00:00 2001 From: Andrew Thal <467872+athal7@users.noreply.github.com> Date: Thu, 24 Mar 2022 10:01:49 -0400 Subject: [PATCH 116/225] Update 2U contacts in ADOPTERS.md Signed-off-by: GitHub --- ADOPTERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 9a4e3de546..bce16dec9d 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -47,7 +47,7 @@ _If you're using Backstage in your organization, please try to add your company | [creditas.com](https://creditas.com/) | [@aureliosaraiva](https://github.com/aureliosaraiva) [@Creditas](https://github.com/creditas) | Centralization of all services, standards, documentation, etc. We started the deployment process. | | [Prisjakt](https://www.prisjakt.nu) / [PriceSpy](https://pricespy.co.uk) | [@kennylindahl](https://github.com/kennylindahl) | Internal developer portal - Documentation, scaffolding, software catalog, TechRadar, Gitlab org data integration | | [Powerspike](https://powerspike.tv/) | [@trelore](https://github.com/trelore) | Developer portal for documentation of core libraries and repositories. | -| [2U](https://2u.com) | [Andrew Thal](https://github.com/athal7) | Development team home-base, promoting service discoverability, resource dependencies, and tech radar | +| [2U](https://2u.com) | [@danielleEriksen](https://github.com/danielleEriksen), [@sbhatia](https://github.com/sbhatia) | Development team home-base, promoting service discoverability, resource dependencies, and tech radar | | [Taxfix](https://taxfix.de/) | [Sami Ur Rehman](https://github.com/samiurrehman92) | Developer's portal with software catalog at it's core. Hosts API Specs, Tech Docs, Tech Radar and some custom plugins. | | [Busuu](https://busuu.com/) | [Adam Tester](https://github.com/adamtester) | Developer portal with service catalog, API docs, Event docs, service templating, and cost insights. | | [Loadsmart](https://loadsmart.com/) | [Loadsmart](https://github.com/loadsmart) | Improve services visibility and operations for service owners and developers. | From 460c18f129242f45f2a9edb4bd29daab6ad172b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 24 Mar 2022 15:19:37 +0100 Subject: [PATCH 117/225] fix the PluginTaskManagerImpl race condition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../src/tasks/PluginTaskSchedulerImpl.test.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts index 95a9729018..3018ffb4ab 100644 --- a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts +++ b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts @@ -24,6 +24,14 @@ import { ConflictError, NotFoundError } from '@backstage/errors'; jest.useFakeTimers(); +function defer() { + let resolve = () => {}; + const promise = new Promise(_resolve => { + resolve = _resolve; + }); + return { promise, resolve }; +} + describe('PluginTaskManagerImpl', () => { const databases = TestDatabases.create({ ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -133,14 +141,19 @@ describe('PluginTaskManagerImpl', () => { async databaseId => { const { manager } = await init(databaseId); - const fn = jest.fn(); + const { promise, resolve } = defer(); + await manager.scheduleTask({ id: 'task1', timeout: Duration.fromMillis(5000), frequency: Duration.fromObject({ years: 1 }), - fn, + fn: async () => { + resolve(); + await new Promise(r => setTimeout(r, 20000)); + }, }); + await promise; await expect(() => manager.triggerTask('task1')).rejects.toThrow( ConflictError, ); From 1023ee635352e1cab402856cd50ad0464c24eceb Mon Sep 17 00:00:00 2001 From: Matthew Clarke Date: Thu, 24 Mar 2022 10:24:23 -0400 Subject: [PATCH 118/225] Export kubernetes components (#10401) * export Kubernetes components Signed-off-by: mclarke * changeset Signed-off-by: mclarke * api reports Signed-off-by: mclarke * fix deps Signed-off-by: mclarke * move dep from dev to regular Signed-off-by: mclarke --- .changeset/fresh-cobras-admire.md | 5 + plugins/kubernetes/api-report.md | 268 +++++++++++++++++- plugins/kubernetes/package.json | 3 +- .../src/components/KubernetesDrawer/index.ts | 17 ++ plugins/kubernetes/src/components/index.ts | 28 ++ plugins/kubernetes/src/hooks/index.ts | 1 + plugins/kubernetes/src/index.ts | 3 + .../src/kubernetes-auth-provider/index.ts | 4 + plugins/kubernetes/src/types/index.ts | 17 ++ 9 files changed, 344 insertions(+), 2 deletions(-) create mode 100644 .changeset/fresh-cobras-admire.md create mode 100644 plugins/kubernetes/src/components/KubernetesDrawer/index.ts create mode 100644 plugins/kubernetes/src/components/index.ts create mode 100644 plugins/kubernetes/src/types/index.ts diff --git a/.changeset/fresh-cobras-admire.md b/.changeset/fresh-cobras-admire.md new file mode 100644 index 0000000000..c73d4ab5d5 --- /dev/null +++ b/.changeset/fresh-cobras-admire.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes': patch +--- + +export kubernetes components diff --git a/plugins/kubernetes/api-report.md b/plugins/kubernetes/api-report.md index f635a61cef..e8a3da83a9 100644 --- a/plugins/kubernetes/api-report.md +++ b/plugins/kubernetes/api-report.md @@ -7,6 +7,9 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { ClientPodStatus } from '@backstage/plugin-kubernetes-common'; +import { ClusterAttributes } from '@backstage/plugin-kubernetes-common'; +import { ClusterObjects } from '@backstage/plugin-kubernetes-common'; import { DiscoveryApi } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { IdentityApi } from '@backstage/core-plugin-api'; @@ -14,19 +17,119 @@ import type { JsonObject } from '@backstage/types'; import { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common'; import { OAuthApi } from '@backstage/core-plugin-api'; import { ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common'; +import { default as React_2 } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; +import { V1ConfigMap } from '@kubernetes/client-node'; +import { V1CronJob } from '@kubernetes/client-node'; +import { V1Deployment } from '@kubernetes/client-node'; +import { V1HorizontalPodAutoscaler } from '@kubernetes/client-node'; +import { V1Ingress } from '@kubernetes/client-node'; +import { V1Job } from '@kubernetes/client-node'; +import { V1ObjectMeta } from '@kubernetes/client-node'; +import { V1Pod } from '@kubernetes/client-node'; +import { V1ReplicaSet } from '@kubernetes/client-node'; +import { V1Service } from '@kubernetes/client-node'; + +// Warning: (ae-forgotten-export) The symbol "KubernetesAuthProvider" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "AwsKubernetesAuthProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class AwsKubernetesAuthProvider implements KubernetesAuthProvider { + // (undocumented) + decorateRequestBodyForAuth( + requestBody: KubernetesRequestBody, + ): Promise; +} + +// Warning: (ae-forgotten-export) The symbol "ClusterProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "Cluster" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const Cluster: ({ + clusterObjects, + podsWithErrors, +}: ClusterProps) => JSX.Element; + +// Warning: (ae-missing-release-tag) "ClusterContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ClusterContext: React_2.Context; + +// Warning: (ae-missing-release-tag) "ClusterLinksFormatter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type ClusterLinksFormatter = ( + options: ClusterLinksFormatterOptions, +) => URL; + +// Warning: (ae-missing-release-tag) "ClusterLinksFormatterOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ClusterLinksFormatterOptions { + // (undocumented) + dashboardParameters?: JsonObject; + // (undocumented) + dashboardUrl?: URL; + // (undocumented) + kind: string; + // (undocumented) + object: any; +} -// Warning: (ae-forgotten-export) The symbol "ClusterLinksFormatter" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "clusterLinksFormatters" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export const clusterLinksFormatters: Record; +// Warning: (ae-forgotten-export) The symbol "CronJobsAccordionsProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "CronJobsAccordions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const CronJobsAccordions: ({}: CronJobsAccordionsProps) => JSX.Element; + +// Warning: (ae-forgotten-export) The symbol "CustomResourcesProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "CustomResources" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const CustomResources: ({}: CustomResourcesProps) => JSX.Element; + +// Warning: (ae-missing-release-tag) "DeploymentResources" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface DeploymentResources { + // (undocumented) + deployments: V1Deployment[]; + // (undocumented) + horizontalPodAutoscalers: V1HorizontalPodAutoscaler[]; + // (undocumented) + pods: V1Pod[]; + // (undocumented) + replicaSets: V1ReplicaSet[]; +} + // Warning: (ae-missing-release-tag) "EntityKubernetesContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export const EntityKubernetesContent: (_props: {}) => JSX.Element; +// Warning: (ae-forgotten-export) The symbol "ErrorPanelProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "ErrorPanel" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ErrorPanel: ({ + entityName, + errorMessage, + clustersWithErrors, +}: ErrorPanelProps) => JSX.Element; + +// Warning: (ae-forgotten-export) The symbol "ErrorReportingProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "ErrorReporting" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ErrorReporting: ({ + detectedErrors, +}: ErrorReportingProps) => JSX.Element; + // Warning: (ae-forgotten-export) The symbol "FormatClusterLinkOptions" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "formatClusterLink" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // @@ -35,11 +138,84 @@ export function formatClusterLink( options: FormatClusterLinkOptions, ): string | undefined; +// Warning: (ae-missing-release-tag) "GoogleKubernetesAuthProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class GoogleKubernetesAuthProvider implements KubernetesAuthProvider { + constructor(authProvider: OAuthApi); + // (undocumented) + authProvider: OAuthApi; + // (undocumented) + decorateRequestBodyForAuth( + requestBody: KubernetesRequestBody, + ): Promise; +} + +// Warning: (ae-missing-release-tag) "GoogleServiceAccountAuthProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class GoogleServiceAccountAuthProvider + implements KubernetesAuthProvider +{ + // (undocumented) + decorateRequestBodyForAuth( + requestBody: KubernetesRequestBody, + ): Promise; +} + +// Warning: (ae-missing-release-tag) "GroupedResponses" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface GroupedResponses extends DeploymentResources { + // (undocumented) + configMaps: V1ConfigMap[]; + // (undocumented) + cronJobs: V1CronJob[]; + // (undocumented) + customResources: any[]; + // (undocumented) + ingresses: V1Ingress[]; + // (undocumented) + jobs: V1Job[]; + // (undocumented) + services: V1Service[]; +} + +// Warning: (ae-missing-release-tag) "GroupedResponsesContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const GroupedResponsesContext: React_2.Context; + +// Warning: (ae-missing-release-tag) "HorizontalPodAutoscalerDrawer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const HorizontalPodAutoscalerDrawer: ({ + hpa, + expanded, + children, +}: { + hpa: V1HorizontalPodAutoscaler; + expanded?: boolean | undefined; + children?: React_2.ReactNode; +}) => JSX.Element; + +// Warning: (ae-forgotten-export) The symbol "IngressesAccordionsProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "IngressesAccordions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const IngressesAccordions: ({}: IngressesAccordionsProps) => JSX.Element; + // Warning: (ae-missing-release-tag) "isKubernetesAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export const isKubernetesAvailable: (entity: Entity) => boolean; +// Warning: (ae-forgotten-export) The symbol "JobsAccordionsProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "JobsAccordions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const JobsAccordions: ({ jobs }: JobsAccordionsProps) => JSX.Element; + // Warning: (ae-missing-release-tag) "KubernetesApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -111,6 +287,38 @@ export class KubernetesBackendClient implements KubernetesApi { ): Promise; } +// Warning: (ae-forgotten-export) The symbol "KubernetesContentProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "KubernetesContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const KubernetesContent: ({ + entity, +}: KubernetesContentProps) => JSX.Element; + +// Warning: (ae-forgotten-export) The symbol "KubernetesDrawerable" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "KubernetesDrawerProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "KubernetesDrawer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const KubernetesDrawer: ({ + object, + renderObject, + kind, + buttonVariant, + expanded, + children, +}: KubernetesDrawerProps) => JSX.Element; + +// Warning: (ae-missing-release-tag) "KubernetesObjects" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface KubernetesObjects { + // (undocumented) + error: string | undefined; + // (undocumented) + kubernetesObjects: ObjectsByEntityResponse | undefined; +} + // Warning: (ae-missing-release-tag) "kubernetesPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -123,9 +331,67 @@ const kubernetesPlugin: BackstagePlugin< export { kubernetesPlugin }; export { kubernetesPlugin as plugin }; +// Warning: (ae-missing-release-tag) "PodDrawer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const PodDrawer: ({ + pod, + expanded, +}: { + pod: V1Pod; + expanded?: boolean | undefined; +}) => JSX.Element; + +// Warning: (ae-missing-release-tag) "PodNamesWithErrorsContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const PodNamesWithErrorsContext: React_2.Context>; + +// Warning: (ae-missing-release-tag) "PodNamesWithMetricsContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const PodNamesWithMetricsContext: React_2.Context< + Map +>; + +// Warning: (ae-forgotten-export) The symbol "PodsTablesProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "PodsTable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const PodsTable: ({ + pods, + extraColumns, +}: PodsTablesProps) => JSX.Element; + // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export const Router: (_props: Props) => JSX.Element; + +// Warning: (ae-missing-release-tag) "ServiceAccountKubernetesAuthProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class ServiceAccountKubernetesAuthProvider + implements KubernetesAuthProvider +{ + // (undocumented) + decorateRequestBodyForAuth( + requestBody: KubernetesRequestBody, + ): Promise; +} + +// Warning: (ae-forgotten-export) The symbol "ServicesAccordionsProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "ServicesAccordions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ServicesAccordions: ({}: ServicesAccordionsProps) => JSX.Element; + +// Warning: (ae-missing-release-tag) "useKubernetesObjects" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const useKubernetesObjects: ( + entity: Entity, + intervalMs?: number, +) => KubernetesObjects; ``` diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 65ddd71dfe..32cfbc87f6 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -40,11 +40,12 @@ "@backstage/core-plugin-api": "^1.0.0", "@backstage/plugin-catalog-react": "^1.0.1-next.0", "@backstage/plugin-kubernetes-common": "^0.2.9-next.0", - "@kubernetes/client-node": "^0.16.0", "@backstage/theme": "^0.2.15", + "@kubernetes/client-node": "^0.16.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", + "@types/react": "^16.13.1 || ^17.0.0", "cronstrue": "^1.122.0", "js-yaml": "^4.0.0", "lodash": "^4.17.21", diff --git a/plugins/kubernetes/src/components/KubernetesDrawer/index.ts b/plugins/kubernetes/src/components/KubernetesDrawer/index.ts new file mode 100644 index 0000000000..ecd4b1b653 --- /dev/null +++ b/plugins/kubernetes/src/components/KubernetesDrawer/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './KubernetesDrawer'; diff --git a/plugins/kubernetes/src/components/index.ts b/plugins/kubernetes/src/components/index.ts new file mode 100644 index 0000000000..72a3cd3ee1 --- /dev/null +++ b/plugins/kubernetes/src/components/index.ts @@ -0,0 +1,28 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './Cluster'; +export * from './CronJobsAccordions'; +export * from './CustomResources'; +export * from './ErrorPanel'; +export * from './ErrorReporting'; +export * from './HorizontalPodAutoscalers'; +export * from './IngressesAccordions'; +export * from './JobsAccordions'; +export { KubernetesDrawer } from './KubernetesDrawer'; +export * from './Pods'; +export * from './ServicesAccordions'; +export * from './KubernetesContent'; diff --git a/plugins/kubernetes/src/hooks/index.ts b/plugins/kubernetes/src/hooks/index.ts index 88db2d8197..0a5835eee4 100644 --- a/plugins/kubernetes/src/hooks/index.ts +++ b/plugins/kubernetes/src/hooks/index.ts @@ -16,5 +16,6 @@ export * from './useKubernetesObjects'; export * from './PodNamesWithErrors'; +export * from './PodNamesWithMetrics'; export * from './GroupedResponses'; export * from './Cluster'; diff --git a/plugins/kubernetes/src/index.ts b/plugins/kubernetes/src/index.ts index 71e1779c84..688d52d7e1 100644 --- a/plugins/kubernetes/src/index.ts +++ b/plugins/kubernetes/src/index.ts @@ -29,3 +29,6 @@ export { Router, isKubernetesAvailable } from './Router'; export * from './api'; export * from './kubernetes-auth-provider'; export * from './utils/clusterLinks'; +export * from './components'; +export * from './hooks'; +export * from './types'; diff --git a/plugins/kubernetes/src/kubernetes-auth-provider/index.ts b/plugins/kubernetes/src/kubernetes-auth-provider/index.ts index f6a07d44a9..6f8e3f415f 100644 --- a/plugins/kubernetes/src/kubernetes-auth-provider/index.ts +++ b/plugins/kubernetes/src/kubernetes-auth-provider/index.ts @@ -17,3 +17,7 @@ export { kubernetesAuthProvidersApiRef } from './types'; export type { KubernetesAuthProvidersApi } from './types'; export { KubernetesAuthProviders } from './KubernetesAuthProviders'; +export { AwsKubernetesAuthProvider } from './AwsKubernetesAuthProvider'; +export { GoogleKubernetesAuthProvider } from './GoogleKubernetesAuthProvider'; +export { GoogleServiceAccountAuthProvider } from './GoogleServiceAccountAuthProvider'; +export { ServiceAccountKubernetesAuthProvider } from './ServiceAccountKubernetesAuthProvider'; diff --git a/plugins/kubernetes/src/types/index.ts b/plugins/kubernetes/src/types/index.ts new file mode 100644 index 0000000000..db229eae34 --- /dev/null +++ b/plugins/kubernetes/src/types/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './types'; From 9c68ffe5445ad98514cc02e64e09424f5e7a2d56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 04:08:29 +0000 Subject: [PATCH 119/225] build(deps): bump @microsoft/microsoft-graph-types from 2.15.0 to 2.16.0 Bumps [@microsoft/microsoft-graph-types](https://github.com/microsoftgraph/msgraph-typescript-typings) from 2.15.0 to 2.16.0. - [Release notes](https://github.com/microsoftgraph/msgraph-typescript-typings/releases) - [Commits](https://github.com/microsoftgraph/msgraph-typescript-typings/compare/2.15.0...2.16.0) --- updated-dependencies: - dependency-name: "@microsoft/microsoft-graph-types" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c837b63311..c0fe7e2e6a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4245,9 +4245,9 @@ integrity sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA== "@microsoft/microsoft-graph-types@^2.6.0": - version "2.15.0" - resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.15.0.tgz#1705ea1ce84c3de4705957392d7f0e3ae465c9f8" - integrity sha512-EyuOpZs55HUoC37Ujrp6IRgE5ghf/wtDrlWuJm7J/DKoB7B/Iek7eXdavTygx2uBeDZ5b4jXXvwl4PiDLlEcsw== + version "2.16.0" + resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.16.0.tgz#5329890d230c4fdd9f57f39e26dfade0882c94f3" + integrity sha512-Qvxv9mpXb/F4xlESEkSLjREHj3dAixTkH3LVO6Ct6sllc5RWrQxPxaSGqW9IpcLU6jI49f2XNSGLotVef3Irdg== "@microsoft/tsdoc-config@~0.15.2": version "0.15.2" From 296c172a3fe967c499761e3ce7f20f5092a04d8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 04:12:01 +0000 Subject: [PATCH 120/225] build(deps-dev): bump @types/puppeteer from 5.4.4 to 5.4.5 Bumps [@types/puppeteer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/puppeteer) from 5.4.4 to 5.4.5. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/puppeteer) --- updated-dependencies: - dependency-name: "@types/puppeteer" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c837b63311..581940f6a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6360,9 +6360,9 @@ integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== "@types/puppeteer@^5.4.4": - version "5.4.4" - resolved "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.4.tgz#e92abeccc4f46207c3e1b38934a1246be080ccd0" - integrity sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q== + version "5.4.5" + resolved "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.5.tgz#154e3850a77bfd3967f036680de8ddc88eb3a12b" + integrity sha512-lxCjpDEY+DZ66+W3x5Af4oHnEmUXt0HuaRzkBGE2UZiZEp/V1d3StpLPlmNVu/ea091bdNmVPl44lu8Wy/0ZCA== dependencies: "@types/node" "*" From dd131d95be588aef7f8075f718af11f8c05a7cc3 Mon Sep 17 00:00:00 2001 From: Gediminas Date: Thu, 24 Mar 2022 15:49:29 +0000 Subject: [PATCH 121/225] docs: update custom field extensions writing guide Signed-off-by: Gediminas --- .../software-templates/writing-custom-field-extensions.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/features/software-templates/writing-custom-field-extensions.md b/docs/features/software-templates/writing-custom-field-extensions.md index d5d4afbff2..3ff08e6e73 100644 --- a/docs/features/software-templates/writing-custom-field-extensions.md +++ b/docs/features/software-templates/writing-custom-field-extensions.md @@ -96,7 +96,7 @@ export const MyCustomFieldExtension = plugin.provide( ```tsx // packages/app/src/scaffolder/MyCustomExtension/index.ts -export { MyCustomFieldExtension } from './extension'; +export { MyCustomFieldExtension } from './extensions'; ``` Once all these files are in place, you then need to provide your custom @@ -119,6 +119,8 @@ Should look something like this instead: ```tsx import { MyCustomFieldExtension } from './scaffolder/MyCustomExtension'; +import { ScaffolderFieldExtensions } from '@backstage/plugin-scaffolder'; + const routes = ( ... From f13c7d517f7ef9c37cb2d67411047c25a36b515d Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 25 Mar 2022 11:06:24 +0100 Subject: [PATCH 122/225] restrict e2e test workflow to run on changes to specific paths Signed-off-by: Emma Indal --- .github/workflows/verify_e2e-techdocs.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml index 7caf880366..02f3653b82 100644 --- a/.github/workflows/verify_e2e-techdocs.yml +++ b/.github/workflows/verify_e2e-techdocs.yml @@ -1,6 +1,10 @@ name: E2E Test Techdocs on: pull_request: + paths: + - 'packages/techdocs-cli/**' + - 'packages/techdocs-cli-embedded-app/**' + - 'plugins/techdocs/**' paths-ignore: - '.changeset/**' - 'contrib/**' From e4d77a9c54dbc62160eb9e61859fedcbb957a980 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Sun, 20 Feb 2022 22:19:37 +0100 Subject: [PATCH 123/225] add new stack overflow plugin Signed-off-by: Emma Indal --- plugins/stack-overflow/.eslintrc.js | 3 + plugins/stack-overflow/README.md | 73 ++++++++++++++++ plugins/stack-overflow/package.json | 56 ++++++++++++ .../home/StackOverflowQuestions/Content.tsx | 85 +++++++++++++++++++ .../StackOverflowQuestions.stories.tsx | 62 ++++++++++++++ .../src/home/StackOverflowQuestions/index.ts | 17 ++++ plugins/stack-overflow/src/index.ts | 21 +++++ plugins/stack-overflow/src/plugin.test.ts | 22 +++++ plugins/stack-overflow/src/plugin.ts | 56 ++++++++++++ .../StackOverflowQuestionsCollator.tsx | 72 ++++++++++++++++ .../StackOverflowQuestionsCollator/index.ts | 17 ++++ ...ckOverflowSearchResultListItem.stories.tsx | 40 +++++++++ ...StackOverflowSearchResultListItem.test.tsx | 43 ++++++++++ .../StackOverflowSearchResultListItem.tsx | 59 +++++++++++++ .../index.ts | 17 ++++ plugins/stack-overflow/src/setupTests.ts | 17 ++++ plugins/stack-overflow/src/types.ts | 31 +++++++ 17 files changed, 691 insertions(+) create mode 100644 plugins/stack-overflow/.eslintrc.js create mode 100644 plugins/stack-overflow/README.md create mode 100644 plugins/stack-overflow/package.json create mode 100644 plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx create mode 100644 plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx create mode 100644 plugins/stack-overflow/src/home/StackOverflowQuestions/index.ts create mode 100644 plugins/stack-overflow/src/index.ts create mode 100644 plugins/stack-overflow/src/plugin.test.ts create mode 100644 plugins/stack-overflow/src/plugin.ts create mode 100644 plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/StackOverflowQuestionsCollator.tsx create mode 100644 plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/index.ts create mode 100644 plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.stories.tsx create mode 100644 plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.test.tsx create mode 100644 plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx create mode 100644 plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/index.ts create mode 100644 plugins/stack-overflow/src/setupTests.ts create mode 100644 plugins/stack-overflow/src/types.ts diff --git a/plugins/stack-overflow/.eslintrc.js b/plugins/stack-overflow/.eslintrc.js new file mode 100644 index 0000000000..13573efa9c --- /dev/null +++ b/plugins/stack-overflow/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: [require.resolve('@backstage/cli/config/eslint')], +}; diff --git a/plugins/stack-overflow/README.md b/plugins/stack-overflow/README.md new file mode 100644 index 0000000000..cea63c41c4 --- /dev/null +++ b/plugins/stack-overflow/README.md @@ -0,0 +1,73 @@ +# Stack Overflow + +A plugin that provides stack overflow specific functionality that can be used in different ways (e.g. for homepage and search) to compose your Backstage App. + +## Getting started + +Before we begin, make sure: + +- You have created your own standalone Backstage app using @backstage/create-app and not using a fork of the backstage repository. If you haven't setup Backstage already, start [here](https://backstage.io/docs/getting-started/). + +To use any of the functionality this plugin provides, you need to start by configuring your App with the following config: + +```yaml +stackoverflow: + baseUrl: https://api.stackexchange.com/2.2 # alternative: your internal stack overflow instance +``` + +## Areas of Responsibility + +This search plugin is primarily responsible for the following: + +- Exposing various stack-overflow related components like `` which can be used for composing the searchpage, and `` which can be used for composing the homepage. +- Provides a `StackOverflowQuestionsCollator`, which can be used in the search backend to index stack overflow questions to your Backstage Search. + +### Index Stack Overflow Questions to search + +Before you are able to start index stack overflow questions to search, you need to go through the [search getting started guide](https://backstage.io/docs/features/search/getting-started). + +When you have your `packages/backend/src/plugins/search.ts` file ready to make modifications, add the following code snippet to add the `StackOverflowQuestionsCollator`. Note that you can modify the request params. + +```ts +indexBuilder.addCollator({ + defaultRefreshIntervalSeconds: 60, + collator: new StackOverflowQuestionsCollator({ + config, + requestParams: { + tagged: ['backstage'], + site: 'stackoverflow', + pagesize: 100, + }, + }), +}); +``` + +#### Use specific search result list item for Stack Overflow Question + +When you have your `packages/app/src/components/search/SearchPage.tsx` file ready to make modifications, add the following code snippet to add the `StackOverflowSearchResultListItem` when the type of the search results are `stack-overflow`. + +```tsx + case 'stack-overflow': + return ( + + ); +``` + +#### Use Stack Overflow Questions on your homepage + +Before you are able to add the stack overflow question component to your homepage, you need to go through the [homepage getting started guide](https://backstage.io/docs/getting-started/homepage). When its ready, add the following code snippet to your `packages/app/src/components/home/HomePage.tsx` file. + +```tsx + + + +``` diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json new file mode 100644 index 0000000000..350f4aa0ca --- /dev/null +++ b/plugins/stack-overflow/package.json @@ -0,0 +1,56 @@ +{ + "name": "@backstage/plugin-stack-overflow", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "scripts": { + "build": "backstage-cli plugin:build", + "start": "backstage-cli plugin:serve", + "lint": "backstage-cli lint", + "test": "backstage-cli test", + "diff": "backstage-cli plugin:diff", + "prepack": "backstage-cli prepack", + "postpack": "backstage-cli postpack", + "clean": "backstage-cli clean" + }, + "dependencies": { + "@backstage/core-components": "^0.8.8", + "@backstage/plugin-home": "^0.4.15", + "@backstage/core-plugin-api": "^0.6.0", + "@backstage/search-common": "^0.2.2", + "@backstage/config": "^0.1.13", + "@backstage/theme": "^0.2.14", + "@material-ui/core": "^4.12.2", + "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "4.0.0-alpha.57", + "qs": "^6.10.3", + "cross-fetch": "^3.0.6", + "lodash": "^4.17.21", + "react-use": "^17.2.4", + "@testing-library/jest-dom": "^5.10.1" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + }, + "devDependencies": { + "@backstage/cli": "^0.13.2-next.0", + "@backstage/core-app-api": "^0.5.2", + "@backstage/dev-utils": "^0.2.21-next.0", + "@backstage/test-utils": "^0.2.4", + "@testing-library/react": "^11.2.5", + "@testing-library/user-event": "^13.1.8", + "@types/jest": "*", + "@types/node": "*", + "msw": "^0.35.0", + "cross-fetch": "^3.0.6" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx new file mode 100644 index 0000000000..a0832fc1f1 --- /dev/null +++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx @@ -0,0 +1,85 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useApi, configApiRef } from '@backstage/core-plugin-api'; +import { Link } from '@backstage/core-components'; +import { + IconButton, + List, + ListItem, + ListItemText, + ListItemSecondaryAction, +} from '@material-ui/core'; +import OpenInNewIcon from '@material-ui/icons/OpenInNew'; +import { useAsync } from 'react-use'; +import qs from 'qs'; +import React from 'react'; +import { + StackOverflowQuestion, + StackOverflowQuestionsContentProps, +} from '../../types'; + +/** + * A component to display a list of stack overflow questions on the homepage. + * + * @public + */ + +export const Content = (props: StackOverflowQuestionsContentProps) => { + const { requestParams } = props; + const configApi = useApi(configApiRef); + const baseUrl = configApi.getOptionalString('stackoverflow.baseUrl'); + + const { value, loading, error } = useAsync(async (): Promise< + StackOverflowQuestion[] + > => { + const params = requestParams ? `?${qs.stringify(requestParams)}` : ''; + const response = await fetch(`${baseUrl}/questions${params}`); + const data = await response.json(); + return data.items; + }, []); + + if (loading) { + return

    loading...

    ; + } + + if (error || !value || !value.length) { + return

    could not load questions

    ; + } + + const getSecondaryText = (answer_count: Number) => + answer_count > 1 ? `${answer_count} answers` : `${answer_count} answer`; + + return ( + + {value.map(question => ( + + + + + + + + + + + ))} + + ); +}; diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx new file mode 100644 index 0000000000..e19e0f807b --- /dev/null +++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx @@ -0,0 +1,62 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { HomePageStackOverflowQuestions } from '../../plugin'; +import { wrapInTestApp, TestApiProvider } from '@backstage/test-utils'; +import { configApiRef } from '@backstage/core-plugin-api'; +import { ConfigReader } from '@backstage/config'; +import { Grid } from '@material-ui/core'; +import React, { ComponentType } from 'react'; + +export default { + title: 'Plugins/Home/Components/StackOverflow', + component: HomePageStackOverflowQuestions, + decorators: [ + (Story: ComponentType<{}>) => + wrapInTestApp( + <> + + + + , + ), + ], +}; + +export const Default = () => { + return ( + + + + ); +}; diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/index.ts b/plugins/stack-overflow/src/home/StackOverflowQuestions/index.ts new file mode 100644 index 0000000000..1faa9a2426 --- /dev/null +++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { Content } from './Content'; diff --git a/plugins/stack-overflow/src/index.ts b/plugins/stack-overflow/src/index.ts new file mode 100644 index 0000000000..9e71988100 --- /dev/null +++ b/plugins/stack-overflow/src/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { + stackOverflowPlugin, + StackOverflowSearchResultListItem, + HomePageStackOverflowQuestions, +} from './plugin'; +export { StackOverflowQuestionsCollator } from './search/StackOverflowQuestionsCollator'; diff --git a/plugins/stack-overflow/src/plugin.test.ts b/plugins/stack-overflow/src/plugin.test.ts new file mode 100644 index 0000000000..b25cfe01ee --- /dev/null +++ b/plugins/stack-overflow/src/plugin.test.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { stackOverflowPlugin } from './plugin'; + +describe('stack-overflow', () => { + it('should export plugin', () => { + expect(stackOverflowPlugin).toBeDefined(); + }); +}); diff --git a/plugins/stack-overflow/src/plugin.ts b/plugins/stack-overflow/src/plugin.ts new file mode 100644 index 0000000000..90a82da719 --- /dev/null +++ b/plugins/stack-overflow/src/plugin.ts @@ -0,0 +1,56 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + createPlugin, + createComponentExtension, +} from '@backstage/core-plugin-api'; +import { createCardExtension } from '@backstage/plugin-home'; +import { StackOverflowQuestionsContentProps } from './types'; + +export const stackOverflowPlugin = createPlugin({ + id: 'stack-overflow', +}); + +/** + * A component to display a stack overflow search result + * + * @public + */ + +export const StackOverflowSearchResultListItem = stackOverflowPlugin.provide( + createComponentExtension({ + name: 'StackOverflowResultListItem', + component: { + lazy: () => + import('./search/StackOverflowSearchResultListItem').then( + m => m.StackOverflowSearchResultListItem, + ), + }, + }), +); + +/** + * A component to display a list of stack overflow questions on the homepage. + * + * @public + */ +export const HomePageStackOverflowQuestions = stackOverflowPlugin.provide( + createCardExtension({ + name: 'HomePageStackOverflowQuestions', + title: 'Stack Overflow Questions', + components: () => import('./home/StackOverflowQuestions'), + }), +); diff --git a/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/StackOverflowQuestionsCollator.tsx b/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/StackOverflowQuestionsCollator.tsx new file mode 100644 index 0000000000..a44b2f4742 --- /dev/null +++ b/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/StackOverflowQuestionsCollator.tsx @@ -0,0 +1,72 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { IndexableDocument, DocumentCollator } from '@backstage/search-common'; +import { Config } from '@backstage/config'; +import fetch from 'cross-fetch'; +import qs from 'qs'; +import { + StackOverflowQuestion, + StackOverflowQuestionsRequestParams, +} from '../../types'; + +interface StackOverflowDocument extends IndexableDocument { + answers: number; + tags: string[]; +} + +export class StackOverflowQuestionsCollator implements DocumentCollator { + protected baseUrl: string; + protected requestParams: StackOverflowQuestionsRequestParams; + public readonly type: string = 'stack-overflow'; + + constructor({ + config, + requestParams, + }: { + config: Config; + requestParams: StackOverflowQuestionsRequestParams; + }) { + this.baseUrl = config.getString('stackoverflow.baseUrl'); + this.requestParams = requestParams; + } + + async execute() { + const params = this.requestParams + ? `?${qs.stringify(this.requestParams)}` + : ''; + const res = await fetch(`${this.baseUrl}/questions${params}`); + + const data = await res.json(); + return data.items.map( + ({ + title, + link, + owner: { display_name }, + tags, + answer_count, + }: StackOverflowQuestion): StackOverflowDocument => { + return { + title: title, + location: link, + text: display_name, + tags: tags, + answers: answer_count, + }; + }, + ); + } +} diff --git a/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/index.ts b/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/index.ts new file mode 100644 index 0000000000..d5fecd0dce --- /dev/null +++ b/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { StackOverflowQuestionsCollator } from './StackOverflowQuestionsCollator'; diff --git a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.stories.tsx b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.stories.tsx new file mode 100644 index 0000000000..171a6203ef --- /dev/null +++ b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.stories.tsx @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { StackOverflowSearchResultListItem } from '../../plugin'; +import { wrapInTestApp } from '@backstage/test-utils'; +import React, { ComponentType } from 'react'; +import OpenInNewIcon from '@material-ui/icons/OpenInNew'; + +export default { + title: 'Plugins/Search/StackOverflowResultListItem', + component: StackOverflowSearchResultListItem, + decorators: [(Story: ComponentType<{}>) => wrapInTestApp()], +}; + +export const Default = () => { + return ( + + ); +}; diff --git a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.test.tsx b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.test.tsx new file mode 100644 index 0000000000..61e901591e --- /dev/null +++ b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.test.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { renderInTestApp } from '@backstage/test-utils'; +import { screen } from '@testing-library/react'; +import { StackOverflowSearchResultListItem } from './StackOverflowSearchResultListItem'; + +describe('', () => { + it('should render without exploding', async () => { + await renderInTestApp( + , + ); + expect( + screen.getByText(/Customizing Spotify backstage UI/i), + ).toBeInTheDocument(); + expect(screen.getByText(/Tag: backstage/i)).toBeInTheDocument(); + expect( + screen.getByText(/Customizing Spotify backstage UI/i).closest('a'), + ).toHaveAttribute('href', 'https://stackoverflow.com/questions/7'); + }); +}); diff --git a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx new file mode 100644 index 0000000000..52c16eeb77 --- /dev/null +++ b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx @@ -0,0 +1,59 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import _unescape from 'lodash/unescape'; +import { Link } from '@backstage/core-components'; +import { + Divider, + ListItem, + ListItemText, + ListItemIcon, + Box, + Chip, +} from '@material-ui/core'; + +type StackOverflowSearchResultListItemProps = { + result: any; // TODO(emmaindal): type to StackOverflowDocument. + icon?: React.ReactNode; +}; + +export const StackOverflowSearchResultListItem = ( + props: StackOverflowSearchResultListItemProps, +) => { + const { location, title, text, answers, tags } = props.result; + + return ( + + + {props.icon && {props.icon}} + + + + {tags && + tags.map((tag: string) => ( + + ))} + + + + + ); +}; diff --git a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/index.ts b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/index.ts new file mode 100644 index 0000000000..499f7273aa --- /dev/null +++ b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { StackOverflowSearchResultListItem } from './StackOverflowSearchResultListItem'; diff --git a/plugins/stack-overflow/src/setupTests.ts b/plugins/stack-overflow/src/setupTests.ts new file mode 100644 index 0000000000..9bb3e72355 --- /dev/null +++ b/plugins/stack-overflow/src/setupTests.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import '@testing-library/jest-dom'; +import 'cross-fetch/polyfill'; diff --git a/plugins/stack-overflow/src/types.ts b/plugins/stack-overflow/src/types.ts new file mode 100644 index 0000000000..a23585ed3c --- /dev/null +++ b/plugins/stack-overflow/src/types.ts @@ -0,0 +1,31 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export type StackOverflowQuestion = { + title: string; + link: string; + owner: Record; + tags: string[]; + answer_count: number; +}; + +export type StackOverflowQuestionsContentProps = { + requestParams: StackOverflowQuestionsRequestParams; +}; + +export type StackOverflowQuestionsRequestParams = { + [key: string]: string | string[] | number; +}; From fa4d513332a58e62505b0c2510ae60e82eccff8e Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Sun, 20 Feb 2022 22:22:06 +0100 Subject: [PATCH 124/225] add stack overflow homepage component to default template Signed-off-by: Emma Indal --- .../src/templates/DefaultTemplate.stories.tsx | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/plugins/home/src/templates/DefaultTemplate.stories.tsx b/plugins/home/src/templates/DefaultTemplate.stories.tsx index c726294ba6..e2e570dcf6 100644 --- a/plugins/home/src/templates/DefaultTemplate.stories.tsx +++ b/plugins/home/src/templates/DefaultTemplate.stories.tsx @@ -28,12 +28,15 @@ import { MockStarredEntitiesApi, entityRouteRef, } from '@backstage/plugin-catalog-react'; +import { configApiRef } from '@backstage/core-plugin-api'; +import { ConfigReader } from '@backstage/config'; import { HomePageSearchBar, SearchContextProvider, searchApiRef, searchPlugin, } from '@backstage/plugin-search'; +import { HomePageStackOverflowQuestions } from '@backstage/plugin-stack-overflow'; import { Grid, makeStyles } from '@material-ui/core'; import React, { ComponentType } from 'react'; @@ -56,6 +59,14 @@ export default { starredEntitiesApi, ], [searchApiRef, { query: () => Promise.resolve({ results: [] }) }], + [ + configApiRef, + new ConfigReader({ + stackoverflow: { + baseUrl: 'https://api.stackexchange.com/2.2', + }, + }), + ], ]} > @@ -131,14 +142,17 @@ export const DefaultTemplate = () => { {/* placeholder for content */} -
    +
    - - {/* placeholder for content */} -
    - + From 5822cb1ddda96f83c627d4ba903f746290f9ee24 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Sun, 20 Feb 2022 22:22:22 +0100 Subject: [PATCH 125/225] add codeowners Signed-off-by: Emma Indal --- .github/CODEOWNERS | 1 + yarn.lock | 5900 ++++++++++++++++++++++++-------------------- 2 files changed, 3259 insertions(+), 2642 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 44c61f9348..62c4750911 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -44,6 +44,7 @@ /plugins/scaffolder-backend-module-yeoman @backstage/reviewers @pawelmitka /plugins/search @backstage/reviewers @backstage/techdocs-core /plugins/search-* @backstage/reviewers @backstage/techdocs-core +/plugins/stack-overflow @backstage/techdocs-core /plugins/sonarqube @backstage/reviewers @backstage/sda-se-reviewers /plugins/techdocs @backstage/reviewers @backstage/techdocs-core /plugins/techdocs-* @backstage/reviewers @backstage/techdocs-core diff --git a/yarn.lock b/yarn.lock index c837b63311..d9e4ffb198 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,14 +9,22 @@ dependencies: aws4 "^1.11.0" +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + "@apidevtools/json-schema-ref-parser@^9.0.6": - version "9.0.6" - resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#5d9000a3ac1fd25404da886da6b266adcd99cf1c" - integrity sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg== + version "9.0.9" + resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#d720f9256e3609621280584f2b47ae165359268b" + integrity sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w== dependencies: "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.6" call-me-maybe "^1.0.1" - js-yaml "^3.13.1" + js-yaml "^4.1.0" "@apollo/protobufjs@1.2.2": version "1.2.2" @@ -103,16 +111,16 @@ integrity sha512-X0OrxJtzwRH8iLILO/gUTDqjGVPmagmdlgdyuBggYAoGXzF6ZuAws3XCLxtPNve5eA/0V/1puwpUYEGekI22og== "@azure/abort-controller@^1.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.2.tgz#822405c966b2aec16fb62c1b19d37eaccf231995" - integrity sha512-XUyTo+bcyxHEf+jlN2MXA7YU9nxVehaubngHV1MIZZaqYmZqykkoeAz/JMMEeR7t3TcyDwbFa3Zw8BZywmIx4g== + version "1.0.4" + resolved "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz#fd3c4d46c8ed67aace42498c8e2270960250eafd" + integrity sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw== dependencies: tslib "^2.0.0" "@azure/core-asynciterator-polyfill@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz#dcccebb88406e5c76e0e1d52e8cc4c43a68b3ee7" - integrity sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg== + version "1.0.2" + resolved "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz#0dd3849fb8d97f062a39db0e5cadc9ffaf861fec" + integrity sha512-3rkP4LnnlWawl0LZptJOdXNrT/fHp2eQMadoasa6afspXdpGrtPZuAQc2PD0cpgyuoXtUWyC3tv7xfntjGS5Dw== "@azure/core-auth@^1.3.0": version "1.3.2" @@ -157,9 +165,9 @@ xml2js "^0.4.19" "@azure/core-lro@^2.2.0": - version "2.2.4" - resolved "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.4.tgz#42fbf4ae98093c59005206a4437ddcd057c57ca1" - integrity sha512-e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ== + version "2.2.3" + resolved "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.3.tgz#3e245d37ede00f6410c1ea1fb76679dbdec627eb" + integrity sha512-UMdlR9NsqDCLTba3EUbRjfMF4gDmWvld196JmUjbz9WWhJ2XT00OR5MXeWiR+vmGT+ETiO4hHFCi2/eGO5YVtg== dependencies: "@azure/abort-controller" "^1.0.0" "@azure/core-tracing" "1.0.0-preview.13" @@ -167,11 +175,12 @@ tslib "^2.2.0" "@azure/core-paging@^1.1.1": - version "1.1.3" - resolved "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.1.3.tgz#3587c9898a0530cacb64bab216d7318468aa5efc" - integrity sha512-his7Ah40ThEYORSpIAwuh6B8wkGwO/zG7gqVtmSE4WAJ46e36zUDXTKReUCLBDc6HmjjApQQxxcRFy5FruG79A== + version "1.2.1" + resolved "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.2.1.tgz#1b884f563b6e49971e9a922da3c7a20931867b54" + integrity sha512-UtH5iMlYsvg+nQYIl4UHlvvSrsBjOlRF4fs0j7mxd3rWdAStrKYrh2durOpHs5C9yZbVhsVDaisoyaf/lL1EVA== dependencies: "@azure/core-asynciterator-polyfill" "^1.0.0" + tslib "^2.2.0" "@azure/core-rest-pipeline@^1.1.0", "@azure/core-rest-pipeline@^1.5.0": version "1.5.0" @@ -226,18 +235,18 @@ uuid "^8.3.0" "@azure/logger@^1.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/@azure/logger/-/logger-1.0.1.tgz#19b333203d1b2931353d8879e814b64a7274837a" - integrity sha512-QYQeaJ+A5x6aMNu8BG5qdsVBnYBop9UMwgUvGihSjf1PdZZXB+c/oMdM2ajKwzobLBh9e9QuMQkN9iL+IxLBLA== + version "1.0.3" + resolved "https://registry.npmjs.org/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96" + integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g== dependencies: - tslib "^2.0.0" + tslib "^2.2.0" "@azure/msal-browser@^2.16.0": - version "2.20.0" - resolved "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.20.0.tgz#78e34395048c4a8842400d4168b2fb3bdd3c854e" - integrity sha512-Fl8boo38fPNlEm84fRCulbTfHJo+Z/i+1gcdJTG+PqmrkMOUVTdpkwznGh6ZQdAM34uumEgzukmqMr8lVKrytA== + version "2.22.0" + resolved "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.22.0.tgz#acb3ef455d8ca7b143c7fde0a638097add11a218" + integrity sha512-ZpnbnzjYGRGHjWDPOLjSp47CQvhK927+W9avtLoNNCMudqs2dBfwj76lnJwObDE7TAKmCUueTiieglBiPb1mgQ== dependencies: - "@azure/msal-common" "^5.2.0" + "@azure/msal-common" "^6.1.0" "@azure/msal-common@^4.5.1": version "4.5.1" @@ -246,13 +255,6 @@ dependencies: debug "^4.1.1" -"@azure/msal-common@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-5.2.0.tgz#49440e04f4d0961fc5a1a1718fbe5e4eae2db5db" - integrity sha512-oVc4soy5MEZOp9NvCDqBk57mtiUTJXQQ8Z8S/4UiRQP8RG8snuCFQUs9xxdIfvl2FWIvgiBz+SMByyjTaRX42Q== - dependencies: - debug "^4.1.1" - "@azure/msal-common@^6.1.0": version "6.1.0" resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-6.1.0.tgz#00b0c625d10f4c8e48e7b48a353f7d8d20a5ceca" @@ -261,9 +263,9 @@ debug "^4.1.1" "@azure/msal-node@^1.1.0", "@azure/msal-node@^1.3.0": - version "1.7.0" - resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.7.0.tgz#9026971b1fd953f15bfddde9c43e180356a80d77" - integrity sha512-qDkW+Z4b0SGkkYrM1x+0s5WJ3z96vgiNZ20iwpmtCUHVfSrDiGFB8s8REKVaz7JZJi2L1s0vQRbUahly8EoGnw== + version "1.6.0" + resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.6.0.tgz#59d6306979581fd9379d17d22047ada143ed56df" + integrity sha512-RCPXVWsjqYZh7NB1pAJLn4ypHlLBulOjw5nKPLsJiaJJIXnN8kc6SMkK3S9/80DZCEBstvoRMz6zF50QZJUeOQ== dependencies: "@azure/msal-common" "^6.1.0" axios "^0.21.4" @@ -272,9 +274,9 @@ uuid "^8.3.0" "@azure/storage-blob@^12.5.0": - version "12.9.0" - resolved "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.9.0.tgz#4cbd8b4c7a47dd064867430db892f4ef2d8f17ab" - integrity sha512-ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg== + version "12.8.0" + resolved "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.8.0.tgz#97b7ecc6c7b17bcbaf0281c79c16af6f512d6130" + integrity sha512-c8+Wz19xauW0bGkTCoqZH4dYfbtBniPiGiRQOn1ca6G5jsjr4azwaTk9gwjVY8r3vY2Taf95eivLzipfIfiS4A== dependencies: "@azure/abort-controller" "^1.0.0" "@azure/core-http" "^2.0.0" @@ -299,38 +301,38 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" - integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0": + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" + integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== -"@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": - version "7.16.12" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784" - integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg== +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": + version "7.17.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" + integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== dependencies: + "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" + "@babel/generator" "^7.17.3" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.12" + "@babel/helpers" "^7.17.2" + "@babel/parser" "^7.17.3" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.10" - "@babel/types" "^7.16.8" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.1.2" semver "^6.3.0" - source-map "^0.5.0" -"@babel/generator@^7.14.0", "@babel/generator@^7.16.0", "@babel/generator@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" - integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== +"@babel/generator@^7.14.0", "@babel/generator@^7.17.3": + version "7.17.3" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" + integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== dependencies: - "@babel/types" "^7.16.8" + "@babel/types" "^7.17.0" jsesc "^2.5.1" source-map "^0.5.0" @@ -360,9 +362,9 @@ semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": - version "7.16.10" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz#8a6959b9cc818a88815ba3c5474619e9c0f2c21c" - integrity sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg== + version "7.17.1" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21" + integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -373,12 +375,12 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48" - integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g== + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^4.7.1" + regexpu-core "^5.0.1" "@babel/helper-define-polyfill-provider@^0.3.1": version "0.3.1" @@ -408,7 +410,7 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.0", "@babel/helper-function-name@^7.16.7": +"@babel/helper-function-name@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== @@ -424,7 +426,7 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-hoist-variables@^7.16.0", "@babel/helper-hoist-variables@^7.16.7": +"@babel/helper-hoist-variables@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== @@ -505,14 +507,14 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-split-export-declaration@^7.16.0", "@babel/helper-split-export-declaration@^7.16.7": +"@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-validator-identifier@^7.15.7", "@babel/helper-validator-identifier@^7.16.7": +"@babel/helper-validator-identifier@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== @@ -532,14 +534,14 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" - integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== +"@babel/helpers@^7.17.2": + version "7.17.2" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" + integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.17.0" + "@babel/types" "^7.17.0" "@babel/highlight@^7.0.0", "@babel/highlight@^7.16.7": version "7.16.10" @@ -550,15 +552,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@7.16.4": - version "7.16.4" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" - integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== - -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.3", "@babel/parser@^7.16.7": - version "7.16.12" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" - integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8", "@babel/parser@^7.17.3": + version "7.17.3" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" + integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -651,11 +648,11 @@ "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" - integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== + version "7.17.3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.17.0" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" @@ -889,9 +886,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" - integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== + version "7.17.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc" + integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -1030,7 +1027,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-react-constant-elements@^7.14.5": +"@babel/plugin-transform-react-constant-elements@^7.12.1", "@babel/plugin-transform-react-constant-elements@^7.14.5": version "7.16.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz#19e9e4c2df2f6c3e6b3aea11778297d81db8df62" integrity sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ== @@ -1052,15 +1049,15 @@ "@babel/plugin-transform-react-jsx" "^7.16.7" "@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4" - integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag== + version "7.17.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" + integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-jsx" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/plugin-transform-react-pure-annotations@^7.16.7": version "7.16.7" @@ -1144,7 +1141,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/preset-env@^7.15.6": +"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.15.6": version "7.16.11" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== @@ -1244,7 +1241,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.14.5": +"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.14.5": version "7.16.7" resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== @@ -1266,14 +1263,14 @@ "@babel/plugin-transform-typescript" "^7.16.7" "@babel/register@^7.13.16": - version "7.16.9" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.16.9.tgz#fcfb23cfdd9ad95c9771e58183de83b513857806" - integrity sha512-jJ72wcghdRIlENfvALcyODhNoGE5j75cYHdC+aQMh6cU/P86tiiXTp9XYZct1UxUMo/4+BgQRyNZEGx0KWGS+g== + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.17.0.tgz#8051e0b7cb71385be4909324f072599723a1f084" + integrity sha512-UNZsMAZ7uKoGHo1HlEXfteEOYssf64n/PNLHGqOKq/bgYcu/4LrQWAHJwSCb3BRZK8Hi5gkJdRcwrGTO2wtRCg== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" make-dir "^2.1.0" - pirates "^4.0.0" + pirates "^4.0.5" source-map-support "^0.5.16" "@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.11.2", "@babel/runtime-corejs3@^7.16.8": @@ -1284,7 +1281,14 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.17.2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.17.2": version "7.17.7" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.7.tgz#a5f3328dc41ff39d803f311cfe17703418cf9825" integrity sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA== @@ -1300,53 +1304,53 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@7.16.3": - version "7.16.3" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" - integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.3" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.4.5": - version "7.16.10" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" - integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.4.5": + version "7.17.3" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" + "@babel/generator" "^7.17.3" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.16.7" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.10" - "@babel/types" "^7.16.8" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@7.16.0": - version "7.16.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.0.0", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" - integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@backstage/app-defaults@^0.2.1": + version "0.2.1" + resolved "https://registry.npmjs.org/@backstage/app-defaults/-/app-defaults-0.2.1.tgz#8a99245cef0bfd4cc1a864d80eee76eec2ed944e" + integrity sha512-4KjcvUqnUADCTIcRrc87VcwgtZmfAqusvhSIleo8jEXQ+kIddoah/1P6ttsWiECaFvnvJ9ERhprsvJIK119zkw== + dependencies: + "@backstage/core-app-api" "^0.6.0" + "@backstage/core-components" "^0.9.1" + "@backstage/core-plugin-api" "^0.8.0" + "@backstage/plugin-permission-react" "^0.3.3" + "@backstage/theme" "^0.2.15" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + react-router-dom "6.0.0-beta.0" + +"@backstage/catalog-client@^0.9.0": + version "0.9.0" + resolved "https://registry.npmjs.org/@backstage/catalog-client/-/catalog-client-0.9.0.tgz#3e1024fab13fd8e2000d33833d2463ea9be5df9d" + integrity sha512-mr2wrb+7uAPczOOYt07C4AbXIeX0mu+Iw6RPDNg67GvPvQVcbKCrjth9VEj8rScFGmJAn66ZcronbcZSS0MJww== + dependencies: + "@backstage/catalog-model" "^0.13.0" + "@backstage/errors" "^0.2.2" + cross-fetch "^3.1.5" + "@backstage/catalog-client@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/catalog-client/-/catalog-client-1.0.0.tgz#05f9ee3b771ca17e4800f5116d63bd183fe0c4d6" @@ -1356,6 +1360,19 @@ "@backstage/errors" "^1.0.0" cross-fetch "^3.1.5" +"@backstage/catalog-model@^0.13.0": + version "0.13.0" + resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.13.0.tgz#abeb91522ac7ef7907907ad5bc889803131db209" + integrity sha512-Q+0C0LJ8niNQ4TXduUNTycZ2PLMbhKmfgWywunJLO34DZAoFnTWJEAdEYF536YyLciHhLO0dHRUaHY29Sdr+Xg== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/errors" "^0.2.2" + "@backstage/types" "^0.1.3" + ajv "^7.0.3" + json-schema "^0.4.0" + lodash "^4.17.21" + uuid "^8.0.0" + "@backstage/catalog-model@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-1.0.0.tgz#0aa8694a3182aaf4232725842da751bf5f78bd68" @@ -1369,7 +1386,206 @@ lodash "^4.17.21" uuid "^8.0.0" -"@backstage/core-components@^0.9.0", "@backstage/core-components@^0.9.2": +"@backstage/cli@^0.13.2-next.0": + version "0.13.2" + resolved "https://registry.npmjs.org/@backstage/cli/-/cli-0.13.2.tgz#1ef427e847116822f9c3964aa2803a1abc419c91" + integrity sha512-GI1v5kkpfqu5X+aNcXLY5lX3BtiIBk0Tm+jyWSitOzFa/rw6QnFPieAw8F72jC92OTV08FVKEaJIt/Qg3eUNkA== + dependencies: + "@backstage/cli-common" "^0.1.6" + "@backstage/config" "^0.1.13" + "@backstage/config-loader" "^0.9.3" + "@backstage/errors" "^0.2.0" + "@backstage/release-manifests" "^0.0.1" + "@backstage/types" "^0.1.1" + "@hot-loader/react-dom" "^16.13.0" + "@manypkg/get-packages" "^1.1.3" + "@octokit/request" "^5.4.12" + "@rollup/plugin-commonjs" "^21.0.1" + "@rollup/plugin-json" "^4.1.0" + "@rollup/plugin-node-resolve" "^13.0.0" + "@rollup/plugin-yaml" "^3.1.0" + "@spotify/eslint-config-base" "^12.0.0" + "@spotify/eslint-config-react" "^12.0.0" + "@spotify/eslint-config-typescript" "^12.0.0" + "@sucrase/jest-plugin" "^2.1.1" + "@sucrase/webpack-loader" "^2.0.0" + "@svgr/plugin-jsx" "6.2.x" + "@svgr/plugin-svgo" "6.2.x" + "@svgr/rollup" "5.5.x" + "@svgr/webpack" "5.5.x" + "@types/webpack-env" "^1.15.2" + "@typescript-eslint/eslint-plugin" "^5.9.0" + "@typescript-eslint/parser" "^5.9.0" + "@yarnpkg/lockfile" "^1.1.0" + bfj "^7.0.2" + buffer "^6.0.3" + chalk "^4.0.0" + chokidar "^3.3.1" + commander "^6.1.0" + css-loader "^6.5.1" + diff "^5.0.0" + esbuild "^0.14.10" + esbuild-loader "^2.18.0" + eslint "^8.6.0" + eslint-config-prettier "^8.3.0" + eslint-formatter-friendly "^7.0.0" + eslint-plugin-import "^2.25.4" + eslint-plugin-jest "^25.3.4" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-monorepo "^0.3.2" + eslint-plugin-react "^7.28.0" + eslint-plugin-react-hooks "^4.3.0" + eslint-webpack-plugin "^2.6.0" + express "^4.17.1" + fork-ts-checker-webpack-plugin "^7.0.0-alpha.8" + fs-extra "9.1.0" + glob "^7.1.7" + handlebars "^4.7.3" + html-webpack-plugin "^5.3.1" + inquirer "^8.2.0" + jest "^26.0.1" + jest-css-modules "^2.1.0" + jest-transform-yaml "^1.0.0" + json-schema "^0.4.0" + lodash "^4.17.21" + mini-css-extract-plugin "^2.4.2" + minimatch "3.0.4" + node-libs-browser "^2.2.1" + npm-packlist "^3.0.0" + ora "^5.3.0" + postcss "^8.1.0" + process "^0.11.10" + react-dev-utils "^12.0.0-next.60" + react-hot-loader "^4.13.0" + recursive-readdir "^2.2.2" + replace-in-file "^6.0.0" + rollup "^2.60.2" + rollup-plugin-dts "^4.0.1" + rollup-plugin-esbuild "^4.7.2" + rollup-plugin-peer-deps-external "^2.2.2" + rollup-plugin-postcss "^4.0.0" + rollup-pluginutils "^2.8.2" + run-script-webpack-plugin "^0.0.11" + semver "^7.3.2" + style-loader "^3.3.1" + sucrase "^3.20.2" + tar "^6.1.2" + terser-webpack-plugin "^5.1.3" + util "^0.12.3" + webpack "^5.66.0" + webpack-dev-server "^4.7.3" + webpack-node-externals "^3.0.0" + yaml "^1.10.0" + yml-loader "^2.1.0" + yn "^4.0.0" + zod "^3.11.6" + +"@backstage/config-loader@^0.9.3": + version "0.9.7" + resolved "https://registry.npmjs.org/@backstage/config-loader/-/config-loader-0.9.7.tgz#b056f592b8ec1b21007eb9193ec595a9da3fb1b9" + integrity sha512-dt+z5MSRG4qGYPsmlxZioEpXpf4/6R6wD7NJodcV5JbXd109sPALwwxMG4KLDuBvhJnKlJmOK1ZhQGe/11jHjA== + dependencies: + "@backstage/cli-common" "^0.1.8" + "@backstage/config" "^0.1.15" + "@backstage/errors" "^0.2.2" + "@backstage/types" "^0.1.3" + "@types/json-schema" "^7.0.6" + ajv "^7.0.3" + chokidar "^3.5.2" + fs-extra "10.0.1" + json-schema "^0.4.0" + json-schema-merge-allof "^0.8.1" + json-schema-traverse "^1.0.0" + node-fetch "^2.6.7" + typescript-json-schema "^0.52.0" + yaml "^1.9.2" + yup "^0.32.9" + +"@backstage/config@^0.1.13", "@backstage/config@^0.1.14", "@backstage/config@^0.1.15": + version "0.1.15" + resolved "https://registry.npmjs.org/@backstage/config/-/config-0.1.15.tgz#4bad122ad861be5bd61a60639f92d2494fa245c5" + integrity sha512-eNJEYYSEu9MkrkBYiMpUBWEc3Bu64YgB9pZZGCMW7/9350tV2wbylEdoBJHslilJlJhiUyTXBckn8Ua7DOH7rw== + dependencies: + "@backstage/types" "^0.1.3" + lodash "^4.17.21" + +"@backstage/core-app-api@^0.5.2", "@backstage/core-app-api@^0.5.4": + version "0.5.4" + resolved "https://registry.npmjs.org/@backstage/core-app-api/-/core-app-api-0.5.4.tgz#9ee39828fdcba64a4eea20e9fe3da58c56c053d5" + integrity sha512-qH9XQpY8M3yMKUvu+pcAxOUwrazGaA3L1bbzRzCALjmjmve37k9AY3Wd89toGAzqOqwn6OhBfUg+y3kqj44fOw== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/core-plugin-api" "^0.7.0" + "@backstage/types" "^0.1.3" + "@backstage/version-bridge" "^0.1.2" + "@types/prop-types" "^15.7.3" + prop-types "^15.7.2" + react-router-dom "6.0.0-beta.0" + react-use "^17.2.4" + zen-observable "^0.8.15" + zod "^3.11.6" + +"@backstage/core-app-api@^0.6.0": + version "0.6.0" + resolved "https://registry.npmjs.org/@backstage/core-app-api/-/core-app-api-0.6.0.tgz#691f0586d97682f1af67828ab2c67014397a530a" + integrity sha512-v1t1w/U/JHjm9eZupPmJpKH5WB0vysEFxRo6/Ia77VP6ZcPxszG4IG+d+S3Km5fM3lu4oosGiz+RaKUTLrttBA== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/core-plugin-api" "^0.8.0" + "@backstage/types" "^0.1.3" + "@backstage/version-bridge" "^0.1.2" + "@types/prop-types" "^15.7.3" + prop-types "^15.7.2" + react-router-dom "6.0.0-beta.0" + react-use "^17.2.4" + zen-observable "^0.8.15" + zod "^3.11.6" + +"@backstage/core-components@^0.8.8": + version "0.8.10" + resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.8.10.tgz#6f79c46cdf507fc3a0d764848a4a8aa73af7ce93" + integrity sha512-gGyCPPSdgvzYHWMKlxe/H4yFmEYDQuAtaoT7Y/3+pilcJSIQi9d3oV104BDLC94bdkyOWDsA1tT+PGZtd0p/8g== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/core-plugin-api" "^0.7.0" + "@backstage/errors" "^0.2.2" + "@backstage/theme" "^0.2.15" + "@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.57" + "@react-hookz/web" "^12.3.0" + "@types/react-sparklines" "^1.7.0" + "@types/react-text-truncate" "^0.14.0" + ansi-regex "^6.0.1" + classnames "^2.2.6" + d3-selection "^3.0.0" + d3-shape "^3.0.0" + d3-zoom "^3.0.0" + dagre "^0.8.5" + history "^5.0.0" + immer "^9.0.1" + lodash "^4.17.21" + pluralize "^8.0.0" + prop-types "^15.7.2" + qs "^6.9.4" + rc-progress "3.2.4" + react-helmet "6.1.0" + react-hook-form "^7.12.2" + react-markdown "^8.0.0" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-sparklines "^1.7.0" + react-syntax-highlighter "^15.4.5" + react-text-truncate "^0.17.0" + react-use "^17.3.2" + react-virtualized-auto-sizer "^1.0.6" + react-window "^1.8.6" + remark-gfm "^3.0.1" + zen-observable "^0.8.15" + zod "^3.11.6" + +"@backstage/core-components@^0.9.0", "@backstage/core-components@^0.9.1", "@backstage/core-components@^0.9.2": version "0.9.2" resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.9.2.tgz#9a3d79a15039256bbc007e5daa08c983050e0238" integrity sha512-kh0FB0FmjC55W+xSEkKrAc7D6hvbYLY7N1UUd6M4VBghYXD61Y8RrJFKmBM3bAfPgYaryQNjYgA0BsoTo53PJA== @@ -1413,6 +1629,94 @@ zen-observable "^0.8.15" zod "^3.11.6" +"@backstage/core-plugin-api@^0.6.0": + version "0.6.1" + resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.6.1.tgz#a6fb8110f384ab9405990450956b2c81b88e90b2" + integrity sha512-DtHY0eG2OQ4QAHVb5y8yDUQXZW9Ot7Fsr4Rpe3BbiLpkXA5hZLXPMThOyz1Y79ZOEC5eiyhUlXL1g6P7ylOKMw== + dependencies: + "@backstage/config" "^0.1.14" + "@backstage/types" "^0.1.2" + "@backstage/version-bridge" "^0.1.2" + history "^5.0.0" + prop-types "^15.7.2" + react-router-dom "6.0.0-beta.0" + zen-observable "^0.8.15" + +"@backstage/core-plugin-api@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.7.0.tgz#e53f3aa5bbf074a70fcaf264b04402637008659c" + integrity sha512-SVzrJjvEjWzJgIqfFUjQjqW0RGCzj6zgLULpSgP53GQat70I0wje6E4n0blNU+/q7hpt6PoIT0lgZtqFOJrfYQ== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/types" "^0.1.3" + "@backstage/version-bridge" "^0.1.2" + history "^5.0.0" + prop-types "^15.7.2" + react-router-dom "6.0.0-beta.0" + zen-observable "^0.8.15" + +"@backstage/core-plugin-api@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.8.0.tgz#e2096bff679183168a7f9b47ed27c50a01970e32" + integrity sha512-hHTrh0lui7TAUnLdqyvNznBuoh3PNEwHnlWCcnp2wfvLc7syG5bjnzorATknCixIiWsPfod5qtSSNeO4hQoFVQ== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/types" "^0.1.3" + "@backstage/version-bridge" "^0.1.2" + history "^5.0.0" + prop-types "^15.7.2" + react-router-dom "6.0.0-beta.0" + zen-observable "^0.8.15" + +"@backstage/dev-utils@^0.2.21-next.0": + version "0.2.25" + resolved "https://registry.npmjs.org/@backstage/dev-utils/-/dev-utils-0.2.25.tgz#c841fc845dcb01e22b55ac93d12ab057cc48bd2e" + integrity sha512-MbatjRFaA5SIILSXBt+oq3S90dgGr9VZHKIqEX5voWK25dyGgUMxeb8M9rlJmaOQIdeUnHLl64Zqnt1dkukl0A== + dependencies: + "@backstage/app-defaults" "^0.2.1" + "@backstage/catalog-model" "^0.13.0" + "@backstage/core-app-api" "^0.6.0" + "@backstage/core-components" "^0.9.1" + "@backstage/core-plugin-api" "^0.8.0" + "@backstage/integration-react" "^0.1.25" + "@backstage/plugin-catalog-react" "^0.9.0" + "@backstage/test-utils" "^0.3.0" + "@backstage/theme" "^0.2.15" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@testing-library/jest-dom" "^5.10.1" + "@testing-library/react" "^11.2.5" + "@testing-library/user-event" "^13.1.8" + react-hot-loader "^4.13.0" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-use "^17.2.4" + zen-observable "^0.8.15" + +"@backstage/errors@^0.2.0", "@backstage/errors@^0.2.2": + version "0.2.2" + resolved "https://registry.npmjs.org/@backstage/errors/-/errors-0.2.2.tgz#2113e0bc859e645b8b59bfcb435f7535739b02f8" + integrity sha512-s6Ru3NL4oFiHwNsMY1uiwqNKuOu9KQWkpse3adWZsDu1fCQKOw2omQ2qBHZ4Uj1xJ6x9Ye0yNTJ4vfHfdwiaEg== + dependencies: + "@backstage/types" "^0.1.3" + cross-fetch "^3.1.5" + serialize-error "^8.0.1" + +"@backstage/integration-react@^0.1.25": + version "0.1.25" + resolved "https://registry.npmjs.org/@backstage/integration-react/-/integration-react-0.1.25.tgz#ebbdd30d66e1d210b7cd33a682ad2be0d5ea5fc0" + integrity sha512-WI0UuXcX3m1OotfvqCVtQgyish9Gk+YkLVyrwWbzHFZ0isbT2I2i6VD/iau1X55oZpaubxLZ5CzYzA4QcAdm4w== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/core-components" "^0.9.1" + "@backstage/core-plugin-api" "^0.8.0" + "@backstage/integration" "^0.8.0" + "@backstage/theme" "^0.2.15" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.57" + react-use "^17.2.4" + "@backstage/integration-react@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/integration-react/-/integration-react-1.0.0.tgz#8075e65c6b5387631d27a9c242e7a4fff6f92417" @@ -1428,6 +1732,19 @@ "@material-ui/lab" "4.0.0-alpha.57" react-use "^17.2.4" +"@backstage/integration@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@backstage/integration/-/integration-0.8.0.tgz#d74131ad347272b4935973aa4bd098fad9548ce6" + integrity sha512-GfNJRdcU7NMFjVqUSJOFRRrqEjKRGmgsL+s3TDtqmqqji7XPttTKD43+Ou50hRf0dkIETe5m1XHr1Fd5ksMt9A== + dependencies: + "@backstage/config" "^0.1.15" + "@octokit/auth-app" "^3.4.0" + "@octokit/rest" "^18.5.3" + cross-fetch "^3.1.5" + git-url-parse "^11.6.0" + lodash "^4.17.21" + luxon "^2.0.2" + "@backstage/integration@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/integration/-/integration-1.0.0.tgz#e307cfddea014bfb0eb2281a5ae25ea0b742e9cf" @@ -1441,6 +1758,33 @@ lodash "^4.17.21" luxon "^2.0.2" +"@backstage/plugin-catalog-react@^0.9.0": + version "0.9.0" + resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-0.9.0.tgz#ff8c09ec455655fadb2c2fafd578908138b858bc" + integrity sha512-qSiz/q7B/IlkHkx3Tcrbokm+jIOPMGjSzxdnKWv5c6KcqF+XLiVr6TavLWcAjaxk81skF8N3RCDG68tA1lL0HA== + dependencies: + "@backstage/catalog-client" "^0.9.0" + "@backstage/catalog-model" "^0.13.0" + "@backstage/core-components" "^0.9.1" + "@backstage/core-plugin-api" "^0.8.0" + "@backstage/errors" "^0.2.2" + "@backstage/integration" "^0.8.0" + "@backstage/plugin-permission-common" "^0.5.2" + "@backstage/plugin-permission-react" "^0.3.3" + "@backstage/types" "^0.1.3" + "@backstage/version-bridge" "^0.1.2" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.57" + classnames "^2.2.6" + jwt-decode "^3.1.0" + lodash "^4.17.21" + qs "^6.9.4" + react-router "6.0.0-beta.0" + react-use "^17.2.4" + yaml "^1.10.0" + zen-observable "^0.8.15" + "@backstage/plugin-catalog-react@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.0.0.tgz#4f42c070ffe5c9690e45a5288e18bacd8d4e0e66" @@ -1469,6 +1813,124 @@ yaml "^1.10.0" zen-observable "^0.8.15" +"@backstage/plugin-home@^0.4.15": + version "0.4.19" + resolved "https://registry.npmjs.org/@backstage/plugin-home/-/plugin-home-0.4.19.tgz#a68a594557db8afdc76c2b08de7457d65258d597" + integrity sha512-yDu+m2zWGMqUaXZwuZWQdE8/ENdLdcobvt8q1lP/+eUXG1yO3BuBcqlss+cPkdO0d0LeW1WoJZZ20ZpYLUJ+6w== + dependencies: + "@backstage/catalog-model" "^1.0.0" + "@backstage/core-components" "^0.9.2" + "@backstage/core-plugin-api" "^1.0.0" + "@backstage/plugin-catalog-react" "^1.0.0" + "@backstage/plugin-search" "^0.7.4" + "@backstage/theme" "^0.2.15" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.57" + lodash "^4.17.21" + react-router "6.0.0-beta.0" + react-use "^17.2.4" + +"@backstage/plugin-search-common@^0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@backstage/plugin-search-common/-/plugin-search-common-0.3.2.tgz#15984ba4c14f8a9119168e8c79344ef8101863dc" + integrity sha512-7vcpRo+5MB/QW/M77zPfcqxw0LzcQCHNXql0uxF+qBwVPJSHz9QB+YBuzGyaAlqfm5UPFXuweLQGqtoB+0DMLg== + dependencies: + "@backstage/plugin-permission-common" "^0.5.3" + "@backstage/types" "^1.0.0" + +"@backstage/plugin-search@^0.7.4": + version "0.7.4" + resolved "https://registry.npmjs.org/@backstage/plugin-search/-/plugin-search-0.7.4.tgz#d6571da128342d122f80253a756ece0a702967f9" + integrity sha512-mZBNJ78pAbdRyHdSAzSInPT74XcE+FvemmDXZnXShugVuWvIsDt3j7S/UQdQcOINQkEOuo/MqDbuWqkxQFW98w== + dependencies: + "@backstage/catalog-model" "^1.0.0" + "@backstage/config" "^1.0.0" + "@backstage/core-components" "^0.9.2" + "@backstage/core-plugin-api" "^1.0.0" + "@backstage/errors" "^1.0.0" + "@backstage/plugin-catalog-react" "^1.0.0" + "@backstage/plugin-search-common" "^0.3.2" + "@backstage/theme" "^0.2.15" + "@backstage/types" "^1.0.0" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.57" + qs "^6.9.4" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-text-truncate "^0.18.0" + react-use "^17.2.4" + +"@backstage/release-manifests@^0.0.1": + version "0.0.1" + resolved "https://registry.npmjs.org/@backstage/release-manifests/-/release-manifests-0.0.1.tgz#c84ef4c21d5d96c644fb9595106c6203b86ecf5c" + integrity sha512-FPB7Uvx5ajz9d+XoloCR4ZaJ4QoTlf6lYoyfSy5u0VjVZrqaPQsRAROYbXKhj+bOnH4zmLdaZsRndY/sGkvNNQ== + dependencies: + cross-fetch "^3.0.6" + +"@backstage/search-common@^0.2.2": + version "0.2.4" + resolved "https://registry.npmjs.org/@backstage/search-common/-/search-common-0.2.4.tgz#2fc8a13bebad14a8aad0594988e6f566bc30ec15" + integrity sha512-1h9lelwN5XRqvxAsm3QLCt3ONrSRLgQyoh2cssQ1bbUr9zR+pveeeCZ824jRfMVHF0xIJZ2YJGTtaZ9vF+77fQ== + dependencies: + "@backstage/plugin-permission-common" "^0.5.1" + "@backstage/types" "^0.1.3" + +"@backstage/test-utils@^0.2.4": + version "0.2.6" + resolved "https://registry.npmjs.org/@backstage/test-utils/-/test-utils-0.2.6.tgz#d271268196c1ec8804cdea240763032cdb36987d" + integrity sha512-vkWBWQxuFDEIrGVSXVdJzxYyGi7m+AVehbECeLFz7XIwPq4fkhOrGDCw1Ovkmp9IFLTysQBe2p0fI0Az7Xu38w== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/core-app-api" "^0.5.4" + "@backstage/core-plugin-api" "^0.7.0" + "@backstage/plugin-permission-common" "^0.5.1" + "@backstage/plugin-permission-react" "^0.3.2" + "@backstage/theme" "^0.2.15" + "@backstage/types" "^0.1.3" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.11.2" + "@testing-library/jest-dom" "^5.10.1" + "@testing-library/react" "^11.2.5" + "@testing-library/user-event" "^13.1.8" + cross-fetch "^3.1.5" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + zen-observable "^0.8.15" + +"@backstage/test-utils@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@backstage/test-utils/-/test-utils-0.3.0.tgz#9c47efd97cdfa3809fe8493a39795a59373d00bd" + integrity sha512-UmJE0dZhtZGKcl58Yru2whEApamY71eJaC4uV0APySUjh0Z39pPxOOkM8a9VKH0/oafqoS4LXUJ4vGDzmy11UQ== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/core-app-api" "^0.6.0" + "@backstage/core-plugin-api" "^0.8.0" + "@backstage/plugin-permission-common" "^0.5.2" + "@backstage/plugin-permission-react" "^0.3.3" + "@backstage/theme" "^0.2.15" + "@backstage/types" "^0.1.3" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.11.2" + "@testing-library/jest-dom" "^5.10.1" + "@testing-library/react" "^11.2.5" + "@testing-library/user-event" "^13.1.8" + cross-fetch "^3.1.5" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + zen-observable "^0.8.15" + +"@backstage/types@^0.1.1", "@backstage/types@^0.1.2", "@backstage/types@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@backstage/types/-/types-0.1.3.tgz#6613d8cbdf97d42d31cd1e66a833df533e7ccf14" + integrity sha512-fJVi4oVrlO+G3PRv1fYSll9/X4pE11HLnkI//Geare9sP6wSfp/2zXpLYfKVsG0e24jOl7Swkc8lwLkQ90zMaQ== + +"@backstage/version-bridge@^0.1.2": + version "0.1.2" + resolved "https://registry.npmjs.org/@backstage/version-bridge/-/version-bridge-0.1.2.tgz#a24f42e0f383d497576f8c9d43851c6538345c03" + integrity sha512-hwThlwfVCXaHva6IBakbHlWt3c1ev3KIwukpBlU3tDgi6tTvG8tPDe2aRwz7zzPHZRtgEw6JPvjA9gn9vSPbzQ== + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1765,13 +2227,13 @@ "@codemirror/view" "^0.19.23" "@codemirror/highlight@^0.19.0": - version "0.19.6" - resolved "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.6.tgz#7f2e066f83f5649e8e0748a3abe0aaeaf64b8ac2" - integrity sha512-+eibu6on9quY8uN3xJ/n3rH+YIDLlpX7YulVmFvqAIz/ukRQ5tWaBmB7fMixHmnmRIRBRZgB8rNtonuMwZSAHQ== + version "0.19.7" + resolved "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.7.tgz#91a0c9994c759f5f153861e3aae74ff9e7c7c35b" + integrity sha512-3W32hBCY0pbbv/xidismw+RDMKuIag+fo4kZIbD7WoRj+Ttcaxjf+vP6RttRHXLaaqbWh031lTeON8kMlDhMYw== dependencies: "@codemirror/language" "^0.19.0" "@codemirror/rangeset" "^0.19.0" - "@codemirror/state" "^0.19.0" + "@codemirror/state" "^0.19.3" "@codemirror/view" "^0.19.0" "@lezer/common" "^0.15.0" style-mod "^4.0.0" @@ -1833,7 +2295,14 @@ "@codemirror/state" "^0.19.0" "@codemirror/view" "^0.19.0" -"@codemirror/rangeset@^0.19.0", "@codemirror/rangeset@^0.19.1", "@codemirror/rangeset@^0.19.5": +"@codemirror/rangeset@^0.19.0", "@codemirror/rangeset@^0.19.5": + version "0.19.8" + resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.8.tgz#f9b572c287bcef08d150b4a539e0128db62b2091" + integrity sha512-1vusIkxSD0vK5KQ22JO/4Ejfww5268PgM/CpKNBSpTpWZEFlZbmOPyRiY4HXO2oEzOpypbA/walMiNInWnrT0Q== + dependencies: + "@codemirror/state" "^0.19.0" + +"@codemirror/rangeset@^0.19.1": version "0.19.9" resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.9.tgz#e80895de93c39dc7899f5be31d368c9d88aa4efc" integrity sha512-V8YUuOvK+ew87Xem+71nKcqu1SXd5QROMRLMS/ljT5/3MCxtgrRie1Cvild0G/Z2f1fpWxzX78V0U4jjXBorBQ== @@ -1868,7 +2337,7 @@ dependencies: "@codemirror/text" "^0.19.0" -"@codemirror/stream-parser@^0.19.0", "@codemirror/stream-parser@^0.19.2", "@codemirror/stream-parser@^0.19.6": +"@codemirror/stream-parser@^0.19.0", "@codemirror/stream-parser@^0.19.6": version "0.19.7" resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.7.tgz#99a9696307b90677f6e3abe29ea6d77c1c0a8db5" integrity sha512-4ExcbKksmU4PIT8s11/dPESgMNLQqlMlbQzRQ1CyMcmygcuQk+58zQ84nv/X17OCUd2ephZ1DKEaHHACifzCiA== @@ -1880,6 +2349,18 @@ "@lezer/common" "^0.15.0" "@lezer/lr" "^0.15.0" +"@codemirror/stream-parser@^0.19.2": + version "0.19.6" + resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.6.tgz#3cfba836f4e5daf6d0e87213b39027791c1e6329" + integrity sha512-dmPtoz/MR3IphxAsgywEyvSjOJCb2ikAgqp6BGIlwBEJVRiap0wFK4b3f/3DKIHUG4GezWRYQumXNyb3GNQevw== + dependencies: + "@codemirror/highlight" "^0.19.0" + "@codemirror/language" "^0.19.0" + "@codemirror/state" "^0.19.0" + "@codemirror/text" "^0.19.0" + "@lezer/common" "^0.15.0" + "@lezer/lr" "^0.15.0" + "@codemirror/text@^0.19.0", "@codemirror/text@^0.19.2", "@codemirror/text@^0.19.4", "@codemirror/text@^0.19.6": version "0.19.6" resolved "https://registry.npmjs.org/@codemirror/text/-/text-0.19.6.tgz#9adcbd8137f69b75518eacd30ddb16fd67bbac45" @@ -1902,7 +2383,18 @@ "@codemirror/state" "^0.19.0" "@codemirror/view" "^0.19.0" -"@codemirror/view@^0.19.0", "@codemirror/view@^0.19.22", "@codemirror/view@^0.19.23", "@codemirror/view@^0.19.31", "@codemirror/view@^0.19.34", "@codemirror/view@^0.19.44", "@codemirror/view@^0.19.45": +"@codemirror/view@^0.19.0": + version "0.19.44" + resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.44.tgz#153301eda413e76d2b98dc3870307f918c05c646" + integrity sha512-vahNUE6hSXdjzs1gcztKPJQhZu+ZIwRpK4ZGZTSD81/CZUVqtlF75W3RCYVgEdjTI1l6ogJmIL6FM2Xj7ltn7Q== + dependencies: + "@codemirror/rangeset" "^0.19.5" + "@codemirror/state" "^0.19.3" + "@codemirror/text" "^0.19.0" + style-mod "^4.0.0" + w3c-keyname "^2.2.4" + +"@codemirror/view@^0.19.22", "@codemirror/view@^0.19.23", "@codemirror/view@^0.19.31", "@codemirror/view@^0.19.34", "@codemirror/view@^0.19.44", "@codemirror/view@^0.19.45": version "0.19.47" resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.47.tgz#2163c3016d7680bf50dd695c0e3abdaf80f45363" integrity sha512-SfbagKvJQl5dtt+9wYpo9sa3ZkMgUxTq+/hXDf0KVwIx+zu3cJIqfEm9xSx6yXkq7it7RsPGHaPasApNffF/8g== @@ -1913,6 +2405,11 @@ style-mod "^4.0.0" w3c-keyname "^2.2.4" +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" resolved "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" @@ -1958,9 +2455,9 @@ lodash.once "^4.1.1" "@dabh/diagnostics@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" - integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== + version "2.0.3" + resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== dependencies: colorspace "1.1.x" enabled "2.0.x" @@ -2024,16 +2521,16 @@ ts-node "^9" tslib "^2" -"@eslint/eslintrc@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" - integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== +"@eslint/eslintrc@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz#583d12dbec5d4f22f333f9669f7d0b7c7815b4d3" + integrity sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.3.1" globals "^13.9.0" - ignore "^5.2.0" + ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.0.4" @@ -2047,16 +2544,16 @@ yaml-ast-parser "0.0.43" "@gar/promisify@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" - integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + version "1.1.3" + resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@gitbeaker/core@^34.6.0": - version "34.6.0" - resolved "https://registry.npmjs.org/@gitbeaker/core/-/core-34.6.0.tgz#f774ea98ac079ba2edf495fdef738ac3f741178b" - integrity sha512-yKF+oxffPyzOnyuHCqLGJrBHhcFHuGHtcmqKhGKtnYPfqcNYA8rt4INAHaE5wMz4ILua9b4sB8p42fki+xn6WA== + version "34.7.0" + resolved "https://registry.npmjs.org/@gitbeaker/core/-/core-34.7.0.tgz#2cd52f6c21127e9d8147ce34f0f4d98ba72acf16" + integrity sha512-D3JSvnD2PTm8pj+UJhYqOnEmszVN5ADP2LJAFe+eDnW46eEIK5Veq6kxrzy7Q6n3lvnUABKoPi8x4dnqJlmxoA== dependencies: - "@gitbeaker/requester-utils" "^34.6.0" + "@gitbeaker/requester-utils" "^34.7.0" form-data "^4.0.0" li "^1.3.0" mime "^3.0.0" @@ -2086,10 +2583,10 @@ got "11.8.3" xcase "^2.0.1" -"@gitbeaker/requester-utils@^34.6.0": - version "34.6.0" - resolved "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-34.6.0.tgz#4489009b759ca6f9a83f244453f4f610f1ac7349" - integrity sha512-H8utxbSP1kEdX0KcyVYrTDTT0A3UcPwrIV1ahyufX9ZLybYSUsA56B8Wx5kJSbWGFT1ffu2f8H2YDMwNCKKsBg== +"@gitbeaker/requester-utils@^34.7.0": + version "34.7.0" + resolved "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-34.7.0.tgz#85add7010663391e54d1b29f7c8d69da7e71d30d" + integrity sha512-SEvw6l9c+mRq33nsX/nyIIvZpUH/1CzK2tQAFj8io/5PeUWZ8oBRW1DUN7lW7uhbGdu3Sc3dA1S4H9OSvt679g== dependencies: form-data "^4.0.0" qs "^6.10.1" @@ -2104,10 +2601,10 @@ qs "^6.10.1" xcase "^2.0.1" -"@google-cloud/common@^3.7.0": - version "3.10.0" - resolved "https://registry.npmjs.org/@google-cloud/common/-/common-3.10.0.tgz#454d1155bb512109cd83c6183aabbd39f9aabda7" - integrity sha512-XMbJYMh/ZSaZnbnrrOFfR/oQrb0SxG4qh6hDisWCoEbFcBHV0qHQo4uXfeMCzolx2Mfkh6VDaOGg+hyJsmxrlw== +"@google-cloud/common@^3.8.1": + version "3.9.0" + resolved "https://registry.npmjs.org/@google-cloud/common/-/common-3.9.0.tgz#d93e62d13e66edacfad1cd25b20fdbbc11d9f6dd" + integrity sha512-R9PfmCKbpOizvcLY+fz/TS4HdOQhvmf4EY4xEXvWnotGbGXujuTLJTJ2URy8BGT8TDxlh6gjjfEwjJ8McnNPIg== dependencies: "@google-cloud/projectify" "^2.0.0" "@google-cloud/promisify" "^2.0.0" @@ -2115,7 +2612,7 @@ duplexify "^4.1.1" ent "^2.2.0" extend "^3.0.2" - google-auth-library "^7.14.0" + google-auth-library "^7.9.2" retry-request "^4.2.2" teeny-request "^7.0.0" @@ -2136,48 +2633,50 @@ google-gax "^2.24.1" protobufjs "^6.8.6" -"@google-cloud/paginator@^3.0.0": - version "3.0.5" - resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.5.tgz#9d6b96c421a89bd560c1bc2c197c7611ef21db6c" - integrity sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw== +"@google-cloud/paginator@^3.0.7": + version "3.0.7" + resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz#fb6f8e24ec841f99defaebf62c75c2e744dd419b" + integrity sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ== dependencies: arrify "^2.0.0" extend "^3.0.2" "@google-cloud/projectify@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.0.1.tgz#13350ee609346435c795bbfe133a08dfeab78d65" - integrity sha512-ZDG38U/Yy6Zr21LaR3BTiiLtpJl6RkPS/JwoRT453G+6Q1DhlV0waNf8Lfu+YVYGIIxgKnLayJRfYlFJfiI8iQ== + version "2.1.1" + resolved "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz#ae6af4fee02d78d044ae434699a630f8df0084ef" + integrity sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ== "@google-cloud/promisify@^2.0.0": - version "2.0.3" - resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.3.tgz#f934b5cdc939e3c7039ff62b9caaf59a9d89e3a8" - integrity sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw== + version "2.0.4" + resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" + integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== "@google-cloud/storage@^5.6.0", "@google-cloud/storage@^5.8.0": - version "5.11.0" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.11.0.tgz#f2414358f093034410bb03410176a5dcabc7bdf8" - integrity sha512-UgdAwBelXpQhubYOHw0U/hDxCXIXFT2TqDc0JWUxtg+BeePZC0ohoFM/b/tJffE28AZW0urTQax5xbRNoDA1Sw== + version "5.18.2" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.18.2.tgz#0ded98a69323d253e6dd986650edc89b5c504bf9" + integrity sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg== dependencies: - "@google-cloud/common" "^3.7.0" - "@google-cloud/paginator" "^3.0.0" + "@google-cloud/common" "^3.8.1" + "@google-cloud/paginator" "^3.0.7" "@google-cloud/promisify" "^2.0.0" + abort-controller "^3.0.0" arrify "^2.0.0" - async-retry "^1.3.1" + async-retry "^1.3.3" compressible "^2.0.12" - date-and-time "^1.0.0" + configstore "^5.0.0" + date-and-time "^2.0.0" duplexify "^4.0.0" extend "^3.0.2" - gcs-resumable-upload "^3.3.0" + gaxios "^4.0.0" get-stream "^6.0.0" + google-auth-library "^7.0.0" hash-stream-validation "^0.2.2" - mime "^2.2.0" + mime "^3.0.0" mime-types "^2.0.8" - onetime "^5.1.0" p-limit "^3.0.1" pumpify "^2.0.0" snakeize "^0.1.0" - stream-events "^1.0.1" + stream-events "^1.0.4" xdg-basedir "^4.0.0" "@graphiql/toolkit@^0.4.2": @@ -2257,9 +2756,9 @@ tslib "~2.3.0" "@graphql-codegen/plugin-helpers@^2.3.2", "@graphql-codegen/plugin-helpers@^2.4.0", "@graphql-codegen/plugin-helpers@^2.4.1": - version "2.4.2" - resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.4.2.tgz#e4f6b74dddcf8a9974fef5ce48562ae0980f9fed" - integrity sha512-LJNvwAPv/sKtI3RnRDm+nPD+JeOfOuSOS4FFIpQCMUCyMnFcchV/CPTTv7tT12fLUpEg6XjuFfDBvOwndti30Q== + version "2.4.1" + resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.4.1.tgz#433845a89b0b4b3a2a0e959e0a2cfe444cf7aeac" + integrity sha512-OPMma7aUnES3Dh+M0BfiNBnJLmYuH60EnbULAhufxFDn/Y2OA0Ht/LQok9beX6VN4ASZEMCOAGItJezGJr5DJw== dependencies: "@graphql-tools/utils" "^8.5.2" change-case-all "1.0.14" @@ -2278,25 +2777,25 @@ tslib "~2.3.0" "@graphql-codegen/typescript-resolvers@^2.4.3": - version "2.6.1" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.6.1.tgz#5963da60de79cfb847b55b2433cd9f65a33d7aad" - integrity sha512-tb8qiIYRDbypHvEVBi04OlItABPeormhd6gh26Q0FO/dD+tLx1V85A6wnHC4jExWPP9+/3PwHJL1pq/0n1kxlA== + version "2.5.2" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.5.2.tgz#dc19cc4fd8b7750269651adfa331f9f5f6e33032" + integrity sha512-iYgAttxqE/1TFcKmApwC/VzPFiPa22WYXq6XKQH8eDZUQvG2O4yG+2RfBxfPNGM5DnNkiOGBPuGipTSxV7lmaA== dependencies: "@graphql-codegen/plugin-helpers" "^2.4.0" - "@graphql-codegen/typescript" "^2.4.8" - "@graphql-codegen/visitor-plugin-common" "2.7.4" + "@graphql-codegen/typescript" "^2.4.5" + "@graphql-codegen/visitor-plugin-common" "2.7.1" "@graphql-tools/utils" "^8.1.1" auto-bind "~4.0.0" tslib "~2.3.0" -"@graphql-codegen/typescript@^2.4.2", "@graphql-codegen/typescript@^2.4.8": - version "2.4.8" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.8.tgz#e8110baba9713cde72d57a5c95aa27400363ed9a" - integrity sha512-tVsHIkuyenBany7c5IMU1yi4S1er2hgyXJGNY7PcyhpJMx0eChmbqz1VTiZxDEwi8mDBS2mn3TaSJMh6xuJM5g== +"@graphql-codegen/typescript@^2.4.2", "@graphql-codegen/typescript@^2.4.5": + version "2.4.5" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.5.tgz#80ca7a343511a27cd587c0b220b0a0dd99a4dc4b" + integrity sha512-Ytb8phNHKl/v/wxudsMOAV1dmzIbckWHm2J83PLNOvnu9CGEhgsd67vfe3ZoF95VU2BKSG8BXGa6uL9z2xDmuA== dependencies: "@graphql-codegen/plugin-helpers" "^2.4.0" "@graphql-codegen/schema-ast" "^2.4.1" - "@graphql-codegen/visitor-plugin-common" "2.7.4" + "@graphql-codegen/visitor-plugin-common" "2.7.1" auto-bind "~4.0.0" tslib "~2.3.0" @@ -2316,29 +2815,13 @@ parse-filepath "^1.0.2" tslib "~2.3.0" -"@graphql-codegen/visitor-plugin-common@2.7.4": - version "2.7.4" - resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.7.4.tgz#fbc8aec9df0035b8f29fa64a6356cbb02062da5d" - integrity sha512-aaDoEudDD+B7DK/UwDSL2Fzej75N9hNJ3N8FQuTIeDyw6FNGWUxmkjVBLQGlzfnYfK8IYkdfYkrPn3Skq0pVxA== - dependencies: - "@graphql-codegen/plugin-helpers" "^2.4.0" - "@graphql-tools/optimize" "^1.0.1" - "@graphql-tools/relay-operation-optimizer" "^6.3.7" - "@graphql-tools/utils" "^8.3.0" - auto-bind "~4.0.0" - change-case-all "1.0.14" - dependency-graph "^0.11.0" - graphql-tag "^2.11.0" - parse-filepath "^1.0.2" - tslib "~2.3.0" - "@graphql-tools/apollo-engine-loader@^7.0.5": - version "7.2.1" - resolved "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.2.1.tgz#14e5d0b1032a7d882d22a7533c8969ee3fa797f2" - integrity sha512-Fj/A8+9SXPTXkpKqhcSq7O9WZuMdy5zynGrnMyewbCuw1kSfzgC4pJB76ILSPa5ajOcC5bBmmvXm+yVFVRgVMg== + version "7.2.2" + resolved "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.2.2.tgz#1463f5d2d95b5ca2b602b35b4922b38935013860" + integrity sha512-jrtA1IvgbaHzla9nyBngNyvajudTcQAVE3//mgrK+DoN7UpUhtoXfxTOOq2tzZN67o4a6Bv/RJsxB3rSI3NLzg== dependencies: "@graphql-tools/utils" "^8.5.1" - cross-undici-fetch "^0.0.20" + cross-undici-fetch "^0.1.19" sync-fetch "0.3.1" tslib "~2.3.0" @@ -2386,15 +2869,16 @@ tslib "~2.2.0" value-or-promise "1.0.6" -"@graphql-tools/delegate@^8.4.1", "@graphql-tools/delegate@^8.4.2": - version "8.4.2" - resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.4.2.tgz#a61d45719855720304e3656800342cfa17d82558" - integrity sha512-CjggOhiL4WtyG2I3kux+1/p8lQxSFHBj0gwa0NxnQ6Vsnpw7Ig5VP1ovPnitFuBv2k4QdC37Nj2xv2n7DRn8fw== +"@graphql-tools/delegate@^8.4.1", "@graphql-tools/delegate@^8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.5.0.tgz#f835b413f9277a07dd6db09d401fbec1ee76af0b" + integrity sha512-P2LLahWpv8eFrqXQi9v/NDLxLBKAugd3rmB8lxeTnCqma19ZM/VaSpvGAgGyjjHKQe097mAeBEkM/7uYbG/NFg== dependencies: "@graphql-tools/batch-execute" "^8.3.1" "@graphql-tools/schema" "^8.3.1" - "@graphql-tools/utils" "^8.5.3" + "@graphql-tools/utils" "^8.5.4" dataloader "2.0.0" + graphql-executor "0.0.18" tslib "~2.3.0" value-or-promise "1.0.11" @@ -2411,13 +2895,13 @@ unixify "^1.0.0" "@graphql-tools/github-loader@^7.0.5": - version "7.2.1" - resolved "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.2.1.tgz#53ce2bf215a0eb083ff985b213402a24f1302da2" - integrity sha512-vqwh2H11ZkAATDam/JqiP0CSqQRPUbjgCDxPdUu/xvST2QKyA4+uVXLBcpBRJc5kJCQjELijeRWVHSk9oN1q6g== + version "7.2.3" + resolved "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.2.3.tgz#1195150078e48c1b49b5106973c5ec5c928b24c1" + integrity sha512-enbMT5lWtKaLGw0PB9RL9Xg/oc9y89e6ihuxD/ZnnNXo60J1JVNtTy3+gRgXvGOX9WtJgy3UDVudDefrOHsqaA== dependencies: "@graphql-tools/graphql-tag-pluck" "^7.1.3" "@graphql-tools/utils" "^8.5.1" - cross-undici-fetch "^0.0.20" + cross-undici-fetch "^0.1.19" sync-fetch "0.3.1" tslib "~2.3.0" @@ -2442,22 +2926,22 @@ unixify "^1.0.0" "@graphql-tools/graphql-tag-pluck@^7.1.3": - version "7.1.4" - resolved "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.1.4.tgz#174b69d40988c3450d310173c5be5af894929c41" - integrity sha512-0V2AY68ip3YmJ9rnIwQGxXsokCeGD9FTQOeSLzpwG74U0VY6bphfaCp5KVGW+W5sGJchTj3HvnmvdmWZnEZWZA== + version "7.1.5" + resolved "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.1.5.tgz#229ed40f38430cdea750f112cbfad89fbc29129c" + integrity sha512-NKbFcjlg7cbK+scLXc6eVxXIhX4k8QL6lZ/y5Ju7yrpIN18k2vA78dI6W3Qb5qdftxbDNuC+kDmScZfzzxVPjQ== dependencies: - "@babel/parser" "7.16.4" - "@babel/traverse" "7.16.3" - "@babel/types" "7.16.0" + "@babel/parser" "^7.16.8" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" "@graphql-tools/utils" "^8.5.1" tslib "~2.3.0" "@graphql-tools/import@^6.2.6", "@graphql-tools/import@^6.5.7": - version "6.6.6" - resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.6.tgz#a4ff216e6b8a49c392bb8a4378d4e9caf2b303d7" - integrity sha512-a0aVajxqu1MsL8EwavA44Osw20lBOIhq8IM2ZIHFPP62cPAcOB26P+Sq57DHMsSyX5YQ0ab9XPM2o4e1dQhs0w== + version "6.6.5" + resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.5.tgz#e1ec593960288ceda7d5c56c0073c702b1bdcfa0" + integrity sha512-w0/cYuhrr2apn+iGoTToCqt65x2NN2iHQyqRNk/Zw1NJ+e8/C3eKVw0jmW4pYQvSocuPxL4UCSI56SdKO7m3+Q== dependencies: - "@graphql-tools/utils" "8.6.2" + "@graphql-tools/utils" "8.6.1" resolve-from "5.0.0" tslib "~2.3.0" @@ -2504,15 +2988,7 @@ p-limit "3.1.0" tslib "~2.3.0" -"@graphql-tools/merge@8.2.6", "@graphql-tools/merge@^8.2.1": - version "8.2.6" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz#7fb615fa9c143c3151ff025e501d52bd48186d19" - integrity sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw== - dependencies: - "@graphql-tools/utils" "8.6.5" - tslib "~2.3.0" - -"@graphql-tools/merge@^6.0.0", "@graphql-tools/merge@^6.2.12": +"@graphql-tools/merge@6.0.0 - 6.2.14": version "6.2.14" resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.14.tgz#694e2a2785ba47558e5665687feddd2935e9d94e" integrity sha512-RWT4Td0ROJai2eR66NHejgf8UwnXJqZxXgDWDI+7hua5vNA2OW8Mf9K1Wav1ZkjWnuRp4ztNtkZGie5ISw55ow== @@ -2521,6 +2997,31 @@ "@graphql-tools/utils" "^7.7.0" tslib "~2.2.0" +"@graphql-tools/merge@8.2.6": + version "8.2.6" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz#7fb615fa9c143c3151ff025e501d52bd48186d19" + integrity sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw== + dependencies: + "@graphql-tools/utils" "8.6.5" + tslib "~2.3.0" + +"@graphql-tools/merge@^6.2.12": + version "6.2.17" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.17.tgz#4dedf87d8435a5e1091d7cc8d4f371ed1e029f1f" + integrity sha512-G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow== + dependencies: + "@graphql-tools/schema" "^8.0.2" + "@graphql-tools/utils" "8.0.2" + tslib "~2.3.0" + +"@graphql-tools/merge@^8.2.1": + version "8.2.2" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.2.tgz#433566c662a33f5a9c3cc5f3ce3753fb0019477a" + integrity sha512-2DyqhIOMUMKbCPqo8p6xSdll2OBcBxGdOrxlJJlFQvinsSaYqp/ct3dhAxNtzaIcvSVgXvttQqfD7O2ziFtE7Q== + dependencies: + "@graphql-tools/utils" "^8.5.1" + tslib "~2.3.0" + "@graphql-tools/mock@^8.1.2": version "8.5.1" resolved "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.5.1.tgz#379d18eafdcb65486beb8f9247b33b7b693c53aa" @@ -2532,11 +3033,11 @@ tslib "~2.3.0" "@graphql-tools/optimize@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.0.1.tgz#9933fffc5a3c63f95102b1cb6076fb16ac7bb22d" - integrity sha512-cRlUNsbErYoBtzzS6zXahXeTBZGPVlPHXCpnEZ0XiK/KY/sQL96cyzak0fM/Gk6qEI9/l32MYEICjasiBQrl5w== + version "1.2.0" + resolved "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.2.0.tgz#292d0a269f95d04bc6d822c034569bb7e591fb26" + integrity sha512-l0PTqgHeorQdeOizUor6RB49eOAng9+abSxiC5/aHRo6hMmXVaqv5eqndlmxCpx9BkgNb3URQbK+ZZHVktkP/g== dependencies: - tslib "~2.0.1" + tslib "~2.3.0" "@graphql-tools/prisma-loader@^7.0.6": version "7.1.1" @@ -2573,7 +3074,7 @@ relay-compiler "12.0.0" tslib "~2.3.0" -"@graphql-tools/schema@8.3.5", "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": +"@graphql-tools/schema@8.3.5": version "8.3.5" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz#ebec0c0c7f53e591d34375d6f81d0660852fcaca" integrity sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg== @@ -2592,6 +3093,16 @@ tslib "~2.2.0" value-or-promise "1.0.6" +"@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.0.2", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": + version "8.3.1" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74" + integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ== + dependencies: + "@graphql-tools/merge" "^8.2.1" + "@graphql-tools/utils" "^8.5.1" + tslib "~2.3.0" + value-or-promise "1.0.11" + "@graphql-tools/url-loader@^6.0.0": version "6.10.1" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz#dc741e4299e0e7ddf435eba50a1f713b3e763b33" @@ -2618,9 +3129,9 @@ ws "7.4.5" "@graphql-tools/url-loader@^7.0.11", "@graphql-tools/url-loader@^7.4.2": - version "7.7.0" - resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.0.tgz#504f0030c75b61bca4ac07da49e8cd872c316972" - integrity sha512-mBBb+aJqI4E0MVEzyfi76Pi/G6lGxGTVt/tP1YtKJly7UnonNoWOtDusdL3zIVAGhGgLsNrLbGhLDbwSd6TV6A== + version "7.7.1" + resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.1.tgz#2faabdc1d2c47edc8edc9cc938eee2767189869f" + integrity sha512-K/5amdeHtKYI976HVd/AXdSNvLL7vx5QVjMlwN0OHeYyxSgC+UOH+KkS7cshYgL13SekGu0Mxbg9ABfgQ34ECA== dependencies: "@graphql-tools/delegate" "^8.4.1" "@graphql-tools/utils" "^8.5.1" @@ -2628,7 +3139,7 @@ "@n1ru4l/graphql-live-query" "^0.9.0" "@types/websocket" "^1.0.4" "@types/ws" "^8.0.0" - cross-undici-fetch "^0.1.4" + cross-undici-fetch "^0.1.19" dset "^3.1.0" extract-files "^11.0.0" graphql-sse "^1.0.1" @@ -2642,17 +3153,17 @@ value-or-promise "^1.0.11" ws "^8.3.0" -"@graphql-tools/utils@8.6.1": - version "8.6.1" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" - integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg== +"@graphql-tools/utils@8.0.2": + version "8.0.2" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.0.2.tgz#795a8383cdfdc89855707d62491c576f439f3c51" + integrity sha512-gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ== dependencies: tslib "~2.3.0" -"@graphql-tools/utils@8.6.2": - version "8.6.2" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.2.tgz#095408135f091aac68fe18a0a21b708e685500da" - integrity sha512-x1DG0cJgpJtImUlNE780B/dfp8pxvVxOD6UeykFH5rHes26S4kGokbgU8F1IgrJ1vAPm/OVBHtd2kicTsPfwdA== +"@graphql-tools/utils@8.6.1", "@graphql-tools/utils@^8.5.4": + version "8.6.1" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" + integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg== dependencies: tslib "~2.3.0" @@ -2684,11 +3195,11 @@ value-or-promise "1.0.6" "@graphql-tools/wrap@^8.3.1": - version "8.3.2" - resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.3.2.tgz#d3bcecb7529d071e4ecc4dfc75b9566e3da79d4f" - integrity sha512-7DcOBFB+Dd84x9dxSm7qS4iJONMyfLnCJb8A19vGPffpu4SMJ3sFcgwibKFu5l6mMUiigKgXna2RRgWI+02bKQ== + version "8.4.0" + resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.4.0.tgz#8fb2aa950ab68abe1fb63b6d62fc5b8fc4f8b025" + integrity sha512-fPB3+UnxLIPWDfMvAfBQnGmm8rrejeQjmCy7h9avWHBbkEELcvtrSWnKAvoKowe+WR9PVDM15XQ/PQvcddV0kQ== dependencies: - "@graphql-tools/delegate" "^8.4.2" + "@graphql-tools/delegate" "^8.5.0" "@graphql-tools/schema" "^8.3.1" "@graphql-tools/utils" "^8.5.3" tslib "~2.3.0" @@ -2699,38 +3210,39 @@ resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== -"@grpc/grpc-js@~1.4.0": - version "1.4.5" - resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.5.tgz#0cd840b47180624eeedf066f2cdc422d052401f8" - integrity sha512-A6cOzSu7dqXZ7rzvh/9JZf+Jg/MOpLEMP0IdT8pT8hrWJZ6TB4ydN/MRuqOtAugInJe/VQ9F8BPricUpYZSaZA== +"@grpc/grpc-js@~1.5.0": + version "1.5.5" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz#f850a1bb7de8a1d0bb4821aabd3655d1c928d4c6" + integrity sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ== dependencies: "@grpc/proto-loader" "^0.6.4" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.6.1", "@grpc/proto-loader@^0.6.4": - version "0.6.7" - resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.7.tgz#e62a202f4cf5897bdd0e244dec1dbc80d84bdfa1" - integrity sha512-QzTPIyJxU0u+r2qGe8VMl3j/W2ryhEvBv7hc42OjYfthSj370fUrb7na65rG6w3YLZS/fb8p89iTBobfWGDgdw== + version "0.6.9" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz#4014eef366da733f8e04a9ddd7376fe8a58547b7" + integrity sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" long "^4.0.0" protobufjs "^6.10.0" - yargs "^16.1.1" + yargs "^16.2.0" "@hapi/hoek@^9.0.0": - version "9.0.4" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz#e80ad4e8e8d2adc6c77d985f698447e8628b6010" - integrity sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw== + version "9.2.1" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17" + integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== "@hapi/topo@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" - integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== + version "5.1.0" + resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== dependencies: "@hapi/hoek" "^9.0.0" -"@hot-loader/react-dom-v16@npm:@hot-loader/react-dom@^16.0.2": +"@hot-loader/react-dom-v16@npm:@hot-loader/react-dom@^16.0.2", "@hot-loader/react-dom@^16.13.0": + name "@hot-loader/react-dom-v16" version "16.14.0" resolved "https://registry.npmjs.org/@hot-loader/react-dom/-/react-dom-16.14.0.tgz#3cfc64e40bb78fa623e59b582b8f09dcdaad648a" integrity sha512-EN9czvcLsMYmSDo5yRKZOAq3ZGRlDpad1gPtX0NdMMomJXcPE3yFSeFzE94X/NjOaiSVimB7LuqPYpkWVaIi4Q== @@ -2750,9 +3262,9 @@ scheduler "^0.20.2" "@humanwhocodes/config-array@^0.9.2": - version "0.9.2" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" - integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== + version "0.9.3" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz#f2564c744b387775b436418491f15fce6601f63e" + integrity sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -2779,19 +3291,20 @@ integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== "@istanbuljs/load-nyc-config@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" - integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" find-up "^4.1.0" + get-package-type "^0.1.0" js-yaml "^3.13.1" resolve-from "^5.0.0" "@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== "@jest/console@^26.6.2": version "26.6.2" @@ -2964,17 +3477,6 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^27.2.5": - version "27.2.5" - resolved "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" - integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - "@jimp/bmp@^0.10.3": version "0.10.3" resolved "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.10.3.tgz#79a23678e8389865c62e77b0dccc3e069dfc27f0" @@ -3300,6 +3802,24 @@ resolved "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jsdevtools/ono@^7.1.3": version "7.1.3" resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" @@ -4017,14 +4537,14 @@ write-file-atomic "^3.0.3" "@lezer/common@^0.15.0", "@lezer/common@^0.15.5": - version "0.15.10" - resolved "https://registry.npmjs.org/@lezer/common/-/common-0.15.10.tgz#662da668f46244fb20bfaada67b43b3d0463b344" - integrity sha512-vlr+be73zTDoQBIknBVOh/633tmbQcjxUu9PIeVeYESeBK3V6TuBW96RRFg93Y2cyK9lglz241gOgSn452HFvA== + version "0.15.11" + resolved "https://registry.npmjs.org/@lezer/common/-/common-0.15.11.tgz#965b5067036305f12e8a3efc344076850be1d3a8" + integrity sha512-vv0nSdIaVCRcJ8rPuDdsrNVfBOYe/4Szr/LhF929XyDmBndLDuWiCCHooGlGlJfzELyO608AyDhVsuX/ZG36NA== "@lezer/lr@^0.15.0": - version "0.15.5" - resolved "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.5.tgz#4bce44169c441d9dda7be398f5202ea65c5f1138" - integrity sha512-DEcLyhdmBxD1foQe7RegLrSlfS/XaTMGLkO5evkzHWAQKh/JnFWp7j7iNB7s2EpxzRrBCh0U+W7JDCeFhv2mng== + version "0.15.8" + resolved "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz#1564a911e62b0a0f75ca63794a6aa8c5dc63db21" + integrity sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg== dependencies: "@lezer/common" "^0.15.0" @@ -4051,24 +4571,24 @@ read-yaml-file "^1.1.0" "@mapbox/node-pre-gyp@^1.0.0": - version "1.0.5" - resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz#2a0b32fcb416fb3f2250fd24cb2a81421a4f5950" - integrity sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA== + version "1.0.8" + resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz#32abc8a5c624bc4e46c43d84dfb8b26d33a96f58" + integrity sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg== dependencies: detect-libc "^1.0.3" https-proxy-agent "^5.0.0" make-dir "^3.1.0" - node-fetch "^2.6.1" + node-fetch "^2.6.5" nopt "^5.0.0" - npmlog "^4.1.2" + npmlog "^5.0.1" rimraf "^3.0.2" - semver "^7.3.4" - tar "^6.1.0" + semver "^7.3.5" + tar "^6.1.11" "@material-table/core@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@material-table/core/-/core-3.1.0.tgz#4fc3bd1553359e628413437a4102d8469852c253" - integrity sha512-46vpm1q9v2B5t/VgaEq2JmnftTBYle1yNAX3cfdQsTRZ1iWkpG34qBkNHx/hbOauQPsm5hmeUo1KJJZdwtGL1g== + version "3.2.5" + resolved "https://registry.npmjs.org/@material-table/core/-/core-3.2.5.tgz#37b3c665bed3ded6c147ad74adb330bf49efb213" + integrity sha512-TmVN/In15faabezW3COb4Ve5+YhqxFEQnf2Q2Cz3FVXXCFqJvtu3pkRLi+7N9UJ5bvistszz6wfHeiZZY1Rf9Q== dependencies: "@babel/runtime" "^7.12.5" "@date-io/date-fns" "^1.3.13" @@ -4081,6 +4601,7 @@ prop-types "^15.7.2" react-beautiful-dnd "^13.0.0" react-double-scrollbar "0.0.15" + uuid "^3.4.0" "@material-ui/core@^4.11.0", "@material-ui/core@^4.11.3", "@material-ui/core@^4.12.1", "@material-ui/core@^4.12.2", "@material-ui/core@^4.9.13": version "4.12.3" @@ -4200,9 +4721,9 @@ "@types/gapi.client" "*" "@microsoft/api-documenter@^7.15.0": - version "7.15.0" - resolved "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.15.0.tgz#e6cf24fc0e2f18a71dcf4c5c8100cc083167a81e" - integrity sha512-0KvwFamTIGZk6VE71F5gdDLxszLet0A1PEeb87RTdxr4KC0/yVFQvDyj+ck+HVr5+Exf6RyzIHfou0sgJl9SDA== + version "7.15.3" + resolved "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.15.3.tgz#2aeeb9ef95a59ad2328e7b7a3de66fa715c7eee0" + integrity sha512-tehv1f/aKwGBQp0sheQofz5NQfa61mvTdAe4IHQnVavsyyK71r+P+CVXWewznPYkqFzzVXaTdrCuNGPU5Yd3mg== dependencies: "@microsoft/api-extractor-model" "7.15.3" "@microsoft/tsdoc" "0.13.2" @@ -4245,9 +4766,9 @@ integrity sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA== "@microsoft/microsoft-graph-types@^2.6.0": - version "2.15.0" - resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.15.0.tgz#1705ea1ce84c3de4705957392d7f0e3ae465c9f8" - integrity sha512-EyuOpZs55HUoC37Ujrp6IRgE5ghf/wtDrlWuJm7J/DKoB7B/Iek7eXdavTygx2uBeDZ5b4jXXvwl4PiDLlEcsw== + version "2.14.0" + resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.14.0.tgz#5c9ba1ad153b4a1ddeb330099e9ac55e379882c4" + integrity sha512-O4vcX6+2ivfUhDiZm/p4SIxGv+SQFe3qROcmvZpPluNAqL/Ho5/6LXysgjexvtUtNOUYXN/ZtfZdY30tlwQy+w== "@microsoft/tsdoc-config@~0.15.2": version "0.15.2" @@ -4290,29 +4811,29 @@ integrity sha512-BTpWy1e+FxN82RnLz4x1+JcEewVdfmUhV1C6/XYD5AjS7PQp9QFF7K8bCD6gzPTr2l+prvqOyVueQhFJxB1vfg== "@n1ru4l/push-pull-async-iterable-iterator@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.1.0.tgz#be450c97d1c7cd6af1a992d53232704454345df9" - integrity sha512-K4scWxGhdQM0masHHy4gIQs2iGiLEXCrXttumknyPJqtdl4J179BjpibWSSQ1fxKdCcHgIlCTKXJU6cMM6D6Wg== + version "3.2.0" + resolved "https://registry.npmjs.org/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.2.0.tgz#c15791112db68dd9315d329d652b7e797f737655" + integrity sha512-3fkKj25kEjsfObL6IlKPAlHYPq/oYwUkkQ03zsTTiDjD7vg/RxjdiLeCydqtxHZP0JgsXL3D/X5oAkMGzuUp/Q== -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - "@nodelib/fs.stat" "2.0.3" + "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@nodelib/fs.scandir" "2.1.3" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" "@npmcli/arborist@^4.0.4": @@ -4354,19 +4875,19 @@ walk-up-path "^1.0.0" "@npmcli/ci-detect@^1.0.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" - integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== + version "1.4.0" + resolved "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz#18478bbaa900c37bfbd8a2006a6262c62e8b0fe1" + integrity sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q== "@npmcli/fs@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f" - integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ== + version "1.1.1" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: "@gar/promisify" "^1.0.1" semver "^7.3.5" -"@npmcli/git@^2.0.1", "@npmcli/git@^2.1.0": +"@npmcli/git@^2.1.0": version "2.1.0" resolved "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== @@ -4389,14 +4910,14 @@ npm-normalize-package-bin "^1.0.1" "@npmcli/map-workspaces@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.0.tgz#e342efbbdd0dad1bba5d7723b674ca668bf8ac5a" - integrity sha512-QBJfpCY1NOAkkW3lFfru9VTdqvMB2TN0/vrevl5xBCv5Fi0XDVcA6rqqSau4Ysi4Iw3fBzyXV7hzyTBDfadf7g== + version "2.0.1" + resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.1.tgz#da8b4d2e1f4cef30efcc81e425bd11a9bf5489f2" + integrity sha512-awwkB/tSWWaCD8F0IbawBdmoPFlbXMaEPN9LyTuJcyJz404/QhB4B/vhQntpk6uxOAkM+bxR7qWMJghYg0tcYQ== dependencies: "@npmcli/name-from-folder" "^1.0.1" - glob "^7.1.6" - minimatch "^3.0.4" - read-package-json-fast "^2.0.1" + glob "^7.2.0" + minimatch "^5.0.0" + read-package-json-fast "^2.0.3" "@npmcli/metavuln-calculator@^2.0.0": version "2.0.0" @@ -4408,14 +4929,7 @@ pacote "^12.0.0" semver "^7.3.2" -"@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== - dependencies: - mkdirp "^1.0.4" - -"@npmcli/move-file@^1.1.0": +"@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": version "1.1.2" resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== @@ -4448,15 +4962,13 @@ infer-owner "^1.0.4" "@npmcli/run-script@^1.8.2": - version "1.8.3" - resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.3.tgz#07f440ed492400bb1114369bc37315eeaaae2bb3" - integrity sha512-ELPGWAVU/xyU+A+H3pEPj0QOvYwLTX71RArXcClFzeiyJ/b/McsZ+d0QxpznvfFtZzxGN/gz/1cvlqICR4/suQ== + version "1.8.6" + resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" + integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== dependencies: "@npmcli/node-gyp" "^1.0.2" "@npmcli/promise-spawn" "^1.3.2" - infer-owner "^1.0.4" node-gyp "^7.1.0" - puka "^1.0.1" read-package-json-fast "^2.0.1" "@npmcli/run-script@^2.0.0": @@ -4482,7 +4994,7 @@ "@octokit/types" "^6.27.1" "@octokit/webhooks" "^9.0.1" -"@octokit/auth-app@^3.3.0": +"@octokit/auth-app@^3.3.0", "@octokit/auth-app@^3.4.0": version "3.6.1" resolved "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-3.6.1.tgz#aa5b02cc211175cbc28ce6c03c73373c1206d632" integrity sha512-6oa6CFphIYI7NxxHrdVOzhG7hkcKyGyYocg7lNDSJVauVOLtylg8hNJzoUyPAYKKK0yUeoZamE/lMs2tG+S+JA== @@ -4498,22 +5010,6 @@ universal-github-app-jwt "^1.0.1" universal-user-agent "^6.0.0" -"@octokit/auth-app@^3.4.0": - version "3.4.0" - resolved "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-3.4.0.tgz#af9f68512e7b8dd071b49e1470a1ddf88ff6a3a3" - integrity sha512-zBVgTnLJb0uoNMGCpcDkkAbPeavHX7oAjJkaDv2nqMmsXSsCw4AbUhjl99EtJQG/JqFY/kLFHM9330Wn0k70+g== - dependencies: - "@octokit/auth-oauth-app" "^4.1.0" - "@octokit/auth-oauth-user" "^1.2.3" - "@octokit/request" "^5.4.11" - "@octokit/request-error" "^2.0.0" - "@octokit/types" "^6.0.3" - "@types/lru-cache" "^5.1.0" - deprecation "^2.3.1" - lru-cache "^6.0.0" - universal-github-app-jwt "^1.0.1" - universal-user-agent "^6.0.0" - "@octokit/auth-oauth-app@^4.0.0", "@octokit/auth-oauth-app@^4.3.0": version "4.3.0" resolved "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-4.3.0.tgz#de02f184360ffd7cfccef861053784fc4410e7ea" @@ -4527,42 +5023,17 @@ btoa-lite "^1.0.0" universal-user-agent "^6.0.0" -"@octokit/auth-oauth-app@^4.1.0": - version "4.1.2" - resolved "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-4.1.2.tgz#bf3ff30c260e6e9f10b950386f279befb8fe907d" - integrity sha512-bdNGNRmuDJjKoHla3mUGtkk/xcxKngnQfBEnyk+7VwMqrABKvQB1wQRSrwSWkPPUX7Lcj2ttkPAPG7+iBkMRnw== - dependencies: - "@octokit/auth-oauth-device" "^3.1.1" - "@octokit/auth-oauth-user" "^1.2.1" - "@octokit/request" "^5.3.0" - "@octokit/types" "^6.0.3" - "@types/btoa-lite" "^1.0.0" - btoa-lite "^1.0.0" - universal-user-agent "^6.0.0" - "@octokit/auth-oauth-device@^3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-3.1.1.tgz#380499f9a850425e2c7bdeb62afc070181c536a9" - integrity sha512-ykDZROilszXZJ6pYdl6SZ15UZniCs0zDcKgwOZpMz3U0QDHPUhFGXjHToBCAIHwbncMu+jLt4/Nw4lq3FwAw/w== + version "3.1.2" + resolved "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-3.1.2.tgz#d299f51f491669f37fe7af8738f5ac921e63973c" + integrity sha512-w7Po4Ck6N2aAn2VQyKLuojruiyKROTBv4qs6IwE5rbwF7HhBXXp4A/NKmkpoFIZkiXQtM+N8QtkSck4ApYWdGg== dependencies: "@octokit/oauth-methods" "^1.1.0" "@octokit/request" "^5.4.14" "@octokit/types" "^6.10.0" universal-user-agent "^6.0.0" -"@octokit/auth-oauth-user@^1.2.1", "@octokit/auth-oauth-user@^1.2.3": - version "1.2.4" - resolved "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-1.2.4.tgz#3594eb7d40cb462240e7e90849781dfa0045aed5" - integrity sha512-efOajupCZBP1veqx5w59Qey0lIud1rDUgxTRjjkQDU3eOBmkAasY1pXemDsQwW0I85jb1P/gn2dMejedVxf9kw== - dependencies: - "@octokit/auth-oauth-device" "^3.1.1" - "@octokit/oauth-methods" "^1.1.0" - "@octokit/request" "^5.4.14" - "@octokit/types" "^6.12.2" - btoa-lite "^1.0.0" - universal-user-agent "^6.0.0" - -"@octokit/auth-oauth-user@^1.3.0": +"@octokit/auth-oauth-user@^1.2.1", "@octokit/auth-oauth-user@^1.2.3", "@octokit/auth-oauth-user@^1.3.0": version "1.3.0" resolved "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-1.3.0.tgz#da4e4529145181a6aa717ae858afb76ebd6e3360" integrity sha512-3QC/TAdk7onnxfyZ24BnJRfZv8TRzQK7SEFUS9vLng4Vv6Hv6I64ujdk/CUkREec8lhrwU764SZ/d+yrjjqhaQ== @@ -4575,11 +5046,11 @@ universal-user-agent "^6.0.0" "@octokit/auth-token@^2.4.4": - version "2.4.4" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.4.tgz#ee31c69b01d0378c12fd3ffe406030f3d94d3b56" - integrity sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q== + version "2.5.0" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== dependencies: - "@octokit/types" "^6.0.0" + "@octokit/types" "^6.0.3" "@octokit/auth-unauthenticated@^2.0.0", "@octokit/auth-unauthenticated@^2.0.4": version "2.1.0" @@ -4589,18 +5060,6 @@ "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.0.3" -"@octokit/core@^3.2.3": - version "3.2.4" - resolved "https://registry.npmjs.org/@octokit/core/-/core-3.2.4.tgz#5791256057a962eca972e31818f02454897fd106" - integrity sha512-d9dTsqdePBqOn7aGkyRFe7pQpCXdibSJ5SFnrTr0axevObZrpz3qkWm7t/NjYv5a66z6vhfteriaq4FRz3e0Qg== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.4.12" - "@octokit/types" "^6.0.3" - before-after-hook "^2.1.0" - universal-user-agent "^6.0.0" - "@octokit/core@^3.3.2", "@octokit/core@^3.4.0", "@octokit/core@^3.5.1": version "3.5.1" resolved "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" @@ -4615,18 +5074,18 @@ universal-user-agent "^6.0.0" "@octokit/endpoint@^6.0.1": - version "6.0.3" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.3.tgz#dd09b599662d7e1b66374a177ab620d8cdf73487" - integrity sha512-Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg== + version "6.0.12" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== dependencies: - "@octokit/types" "^5.0.0" - is-plain-object "^3.0.0" - universal-user-agent "^5.0.0" + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" "@octokit/graphql@^4.5.8": - version "4.7.0" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.7.0.tgz#cbe12edc2bc61e9eaa5f9e5d092644c92b6fcb74" - integrity sha512-diY0qMPyQjfu4rDu3kDhJ9qIZadIm4IISO3RJSv9ajYUWJUCO0AykbgzLcg1xclxtXgzY583u3gAv66M6zz5SA== + version "4.8.0" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== dependencies: "@octokit/request" "^5.6.0" "@octokit/types" "^6.0.3" @@ -4647,28 +5106,12 @@ fromentries "^1.3.1" universal-user-agent "^6.0.0" -"@octokit/oauth-authorization-url@^4.2.1": +"@octokit/oauth-authorization-url@^4.2.1", "@octokit/oauth-authorization-url@^4.3.1": version "4.3.3" resolved "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-4.3.3.tgz#6a6ef38f243086fec882b62744f39b517528dfb9" integrity sha512-lhP/t0i8EwTmayHG4dqLXgU+uPVys4WD/qUNvC+HfB1S1dyqULm5Yx9uKc1x79aP66U1Cb4OZeW8QU/RA9A4XA== -"@octokit/oauth-authorization-url@^4.3.1": - version "4.3.1" - resolved "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-4.3.1.tgz#008d09bf427a7f61c70b5283040d60a456011a51" - integrity sha512-sI/SOEAvzRhqdzj+kJl+2ifblRve2XU6ZB36Lq25Su8R31zE3GoKToSLh64nWFnKePNi2RrdcMm94UEIQZslOw== - -"@octokit/oauth-methods@^1.1.0": - version "1.2.2" - resolved "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-1.2.2.tgz#3d98c548aa2ace36ad8d0ce6593fd49dcbe103cc" - integrity sha512-CFMUMn9DdPLMcpffhKgkwIIClfv0ZToJM4qcg4O0egCoHMYkVlxl22bBoo9qCnuF1U/xn871KEXuozKIX+bA2w== - dependencies: - "@octokit/oauth-authorization-url" "^4.3.1" - "@octokit/request" "^5.4.14" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.12.2" - btoa-lite "^1.0.0" - -"@octokit/oauth-methods@^1.2.2": +"@octokit/oauth-methods@^1.1.0", "@octokit/oauth-methods@^1.2.2": version "1.2.6" resolved "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-1.2.6.tgz#b9ac65e374b2cc55ee9dd8dcdd16558550438ea7" integrity sha512-nImHQoOtKnSNn05uk2o76om1tJWiAo4lOu2xMAHYsNr0fwopP+Dv+2MlGvaMMlFjoqVd3fF3X5ZDTKCsqgmUaQ== @@ -4684,11 +5127,6 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== -"@octokit/openapi-types@^7.3.2": - version "7.3.2" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.3.2.tgz#065ce49b338043ec7f741316ce06afd4d459d944" - integrity sha512-oJhK/yhl9Gt430OrZOzAl2wJqR0No9445vmZ9Ey8GjUZUpwuu/vmEFP0TDhDXdpGDoxD6/EIFHJEcY8nHXpDTA== - "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" @@ -4701,31 +5139,11 @@ dependencies: "@octokit/types" "^6.34.0" -"@octokit/plugin-paginate-rest@^2.6.2": - version "2.7.0" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.7.0.tgz#6bb7b043c246e0654119a6ec4e72a172c9e2c7f3" - integrity sha512-+zARyncLjt9b0FjqPAbJo4ss7HOlBi1nprq+cPlw5vu2+qjy7WvlXhtXFdRHQbSL1Pt+bfAKaLADEkkvg8sP8w== - dependencies: - "@octokit/types" "^6.0.1" - -"@octokit/plugin-request-log@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44" - integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg== - "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@5.3.1": - version "5.3.1" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.3.1.tgz#deddce769b4ec3179170709ab42e4e9e6195aaa9" - integrity sha512-3B2iguGmkh6bQQaVOtCsS0gixrz8Lg0v4JuXPqBcFqLKuJtxAUf3K88RxMEf/naDOI73spD+goJ/o7Ie7Cvdjg== - dependencies: - "@octokit/types" "^6.16.2" - deprecation "^2.3.1" - "@octokit/plugin-rest-endpoint-methods@^5.12.0": version "5.13.0" resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" @@ -4750,7 +5168,7 @@ "@octokit/types" "^6.0.1" bottleneck "^2.15.3" -"@octokit/request-error@^2.0.0", "@octokit/request-error@^2.0.2", "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": +"@octokit/request-error@^2.0.2", "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": version "2.1.0" resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== @@ -4759,29 +5177,19 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.3.0", "@octokit/request@^5.4.11", "@octokit/request@^5.4.12", "@octokit/request@^5.4.14", "@octokit/request@^5.6.0": - version "5.6.0" - resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.0.tgz#6084861b6e4fa21dc40c8e2a739ec5eff597e672" - integrity sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA== +"@octokit/request@^5.3.0", "@octokit/request@^5.4.12", "@octokit/request@^5.4.14", "@octokit/request@^5.6.0": + version "5.6.3" + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== dependencies: "@octokit/endpoint" "^6.0.1" "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.16.1" is-plain-object "^5.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@^18.1.0", "@octokit/rest@^18.5.3": - version "18.5.6" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.6.tgz#8c9a7c9329c7bbf478af20df78ddeab0d21f6d89" - integrity sha512-8HdG6ZjQdZytU6tCt8BQ2XLC7EJ5m4RrbyU/EARSkAM1/HP3ceOzMG/9atEfe17EDMer3IVdHWLedz2wDi73YQ== - dependencies: - "@octokit/core" "^3.2.3" - "@octokit/plugin-paginate-rest" "^2.6.2" - "@octokit/plugin-request-log" "^1.0.2" - "@octokit/plugin-rest-endpoint-methods" "5.3.1" - -"@octokit/rest@^18.12.0": +"@octokit/rest@^18.1.0", "@octokit/rest@^18.12.0", "@octokit/rest@^18.5.3": version "18.12.0" resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== @@ -4791,21 +5199,14 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/types@^5.0.0", "@octokit/types@^5.0.1": +"@octokit/types@^5.0.1": version "5.5.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b" integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== dependencies: "@types/node" ">= 8" -"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.16.2", "@octokit/types@^6.8.2": - version "6.16.4" - resolved "https://registry.npmjs.org/@octokit/types/-/types-6.16.4.tgz#d24f5e1bacd2fe96d61854b5bda0e88cf8288dfe" - integrity sha512-UxhWCdSzloULfUyamfOg4dJxV9B+XjgrIZscI0VCbp4eNrjmorGEw+4qdwcpTsu6DIrm9tQsFQS2pK5QkqQ04A== - dependencies: - "@octokit/openapi-types" "^7.3.2" - -"@octokit/types@^6.26.0", "@octokit/types@^6.27.1", "@octokit/types@^6.34.0": +"@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.26.0", "@octokit/types@^6.27.1", "@octokit/types@^6.34.0", "@octokit/types@^6.8.2": version "6.34.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== @@ -4838,12 +5239,11 @@ integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== "@openapi-contrib/openapi-schema-to-json-schema@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.0.3.tgz#c626eab186938f2751ee54ec68b345133bc0065c" - integrity sha512-/WX/Jos8n7CxvtWPmhlKl9qCAAW0I+VR+V4yXfQxCmB8wmjiz6lPLTGjNk5zD15qi2MGv58++hQLLdow89KdkA== + version "3.1.1" + resolved "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.1.1.tgz#e43b09680e652bf1b9e135db3f8648e979b76c07" + integrity sha512-FMvdhv9Jr9tULjJAQaQzhCmNYYj2vQFVnl7CGlLAImZvJal71oedXMGszpPaZTLftAk5TCHqjnirig+P6LZxug== dependencies: fast-deep-equal "^3.1.3" - lodash.clonedeep "^4.5.0" "@opentelemetry/api@^1.0.1": version "1.0.4" @@ -4913,6 +5313,13 @@ resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.1.tgz#1e9aad97b964879b54a3909f36f0727befa13e1f" integrity sha512-6k/pU2jNlgYvKOy84vpCAZ8MGVwybvAdjzrh4UicCVOCPxz0LSBws1OE6O5TO4sPHaSw+yLfNzNK8RicGFc1Kw== +"@react-hookz/web@^12.3.0": + version "12.3.0" + resolved "https://registry.npmjs.org/@react-hookz/web/-/web-12.3.0.tgz#a9a1311a15171a57d68a3db61492f913d4fd455a" + integrity sha512-Uujp2RfX/oDEtAbdkV0W/nhiQ5ZYVH+MEq04T7/8TstyiwoIlvsRbEic6c6gQA6sQ/lw93cZ8NP8R7AYjiqDvg== + dependencies: + "@react-hookz/deep-equal" "^1.0.1" + "@react-hookz/web@^13.0.0": version "13.0.0" resolved "https://registry.npmjs.org/@react-hookz/web/-/web-13.0.0.tgz#7c4d54fb4c1edf885879914d719e35086964e46e" @@ -5076,9 +5483,9 @@ picomatch "^2.2.2" "@rollup/pluginutils@^4.1.1": - version "4.1.1" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz#1d4da86dd4eded15656a57d933fda2b9a08d47ec" - integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ== + version "4.1.2" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.2.tgz#ed5821c15e5e05e32816f5fb9ec607cdf5a75751" + integrity sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ== dependencies: estree-walker "^2.0.1" picomatch "^2.2.2" @@ -5117,16 +5524,16 @@ string-argv "~0.3.1" "@samverschueren/stream-to-observable@^0.3.0": - version "0.3.0" - resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" - integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== + version "0.3.1" + resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== dependencies: any-observable "^0.3.0" -"@sideway/address@^4.1.0": - version "4.1.1" - resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz#9e321e74310963fdf8eebfbee09c7bd69972de4d" - integrity sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ== +"@sideway/address@^4.1.3": + version "4.1.3" + resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz#d93cce5d45c5daec92ad76db492cc2ee3c64ab27" + integrity sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ== dependencies: "@hapi/hoek" "^9.0.0" @@ -5146,9 +5553,9 @@ integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sindresorhus/is@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" - integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== + version "4.4.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz#e277e5bdbdf7cb1e20d320f02f5e2ed113cd3185" + integrity sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ== "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": version "1.8.3" @@ -5157,6 +5564,13 @@ dependencies: type-detect "4.0.8" +"@sinonjs/fake-timers@>=5": + version "9.1.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.0.tgz#8c92c56f195e0bed4c893ba59c8e3d55831ca0df" + integrity sha512-M8vapsv9qQupMdzrVzkn5rb9jG7aUTEPAZdMtME2PuBaefksFZVE2C1g4LBRTkF/k3nRDNbDc5tp5NFC1PEYxA== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@sinonjs/fake-timers@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" @@ -5164,7 +5578,7 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/fake-timers@^7.0.4", "@sinonjs/fake-timers@^7.1.0": +"@sinonjs/fake-timers@^7.1.2": version "7.1.2" resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== @@ -5172,9 +5586,9 @@ "@sinonjs/commons" "^1.7.0" "@sinonjs/samsam@^6.0.2": - version "6.0.2" - resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz#a0117d823260f282c04bff5f8704bdc2ac6910bb" - integrity sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ== + version "6.1.1" + resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz#627f7f4cbdb56e6419fa2c1a3e4751ce4f6a00b1" + integrity sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA== dependencies: "@sinonjs/commons" "^1.6.0" lodash.get "^4.4.2" @@ -5185,6 +5599,11 @@ resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== +"@spotify/eslint-config-base@^12.0.0": + version "12.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-12.0.0.tgz#0b1e41bb436d5c1c20714703629514d64c3c0f06" + integrity sha512-5Uud/TmzakqmdUNCZpD8JFQRa2VG3dVd3DanSMpU/nVdu6K5LyX8EMU3Tz1vGP18Wih8iAu/sBSJhntNzw7e6w== + "@spotify/eslint-config-base@^13.0.0": version "13.0.0" resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-13.0.0.tgz#bb748bb2b705ffb5085f873aa0daf94dfad59985" @@ -5195,6 +5614,11 @@ resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-12.0.0.tgz#5b8d4bc3b81a8ec2824648f482f1f6c3cf711893" integrity sha512-lNHZRtJesNA273OJHBVUGAg2JYyVDZ+bsT7h3OwnX1HYgejJ3YcKPSziPM8TGFAN8DruH3tHFfaM63uAIA1+uw== +"@spotify/eslint-config-typescript@^12.0.0": + version "12.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#4c7af3f74a47668bec0c860b72e2a0103e78a138" + integrity sha512-nMVll8ZkN/W8+IHn6Iz3YzCKW0qhrn3TVfyxkAr3qmXm5cex+GzyUdZEuxb8rdN2inZL6A1Il2NFfO5p/UKxog== + "@spotify/eslint-config-typescript@^13.0.0": version "13.0.0" resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz#908a51e05de7ec9d2e3b136f9831e0ddb36c7f89" @@ -5219,46 +5643,100 @@ dependencies: loader-utils "^1.1.0" +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + "@svgr/babel-plugin-add-jsx-attribute@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz#bd6d1ff32a31b82b601e73672a789cc41e84fe18" integrity sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA== +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + "@svgr/babel-plugin-remove-jsx-attribute@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz#58654908beebfa069681a83332544b17e5237e89" integrity sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw== +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + "@svgr/babel-plugin-remove-jsx-empty-expression@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz#d06dd6e8a8f603f92f9979bb9990a1f85a4f57ba" integrity sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA== +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + "@svgr/babel-plugin-replace-jsx-attribute-value@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz#0b85837577b02c31c09c758a12932820f5245cee" integrity sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ== +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + "@svgr/babel-plugin-svg-dynamic-title@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz#28236ec26f7ab9d486a487d36ae52d58ba15676f" integrity sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg== +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + "@svgr/babel-plugin-svg-em-dimensions@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz#40267c5dea1b43c4f83a0eb6169e08b43d8bafce" integrity sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA== +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + "@svgr/babel-plugin-transform-react-native-svg@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz#eb688d0a5f539e34d268d8a516e81f5d7fede7c9" integrity sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ== +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + "@svgr/babel-plugin-transform-svg-component@^6.2.0": version "6.2.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz#7ba61d9fc1fb42b0ba1a04e4630019fa7e993c4f" integrity sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg== +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + "@svgr/babel-preset@^6.2.0": version "6.2.0" resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.2.0.tgz#1d3ad8c7664253a4be8e4a0f0e6872f30d8af627" @@ -5273,6 +5751,15 @@ "@svgr/babel-plugin-transform-react-native-svg" "^6.0.0" "@svgr/babel-plugin-transform-svg-component" "^6.2.0" +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + "@svgr/core@^6.2.1": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/core/-/core-6.2.1.tgz#195de807a9f27f9e0e0d678e01084b05c54fdf61" @@ -5282,6 +5769,13 @@ camelcase "^6.2.0" cosmiconfig "^7.0.1" +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + "@svgr/hast-util-to-babel-ast@^6.2.1": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.2.1.tgz#ae065567b74cbe745afae617053adf9a764bea25" @@ -5300,6 +5794,16 @@ "@svgr/hast-util-to-babel-ast" "^6.2.1" svg-parser "^2.0.2" +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + "@svgr/plugin-svgo@6.2.x", "@svgr/plugin-svgo@^6.2.0": version "6.2.0" resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.2.0.tgz#4cbe6a33ccccdcae4e3b63ded64cc1cbe1faf48c" @@ -5309,6 +5813,29 @@ deepmerge "^4.2.2" svgo "^2.5.0" +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/rollup@5.5.x": + version "5.5.0" + resolved "https://registry.npmjs.org/@svgr/rollup/-/rollup-5.5.0.tgz#9ceaaa6d463916e69aff8a9e10b3bb8fbb94688a" + integrity sha512-EiZmH2VTr+Xzyb6Ga8XtGa9MEbiU3WQnB5vHmqhwAUqibU3uwuwr7MN+QwIh/gtBk1ucMim8BCfcRTlLVREM8A== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + rollup-pluginutils "^2.8.2" + "@svgr/rollup@6.2.x": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/rollup/-/rollup-6.2.1.tgz#23ac3173d2bd85842ca8858d3435332af1f064ab" @@ -5324,6 +5851,20 @@ "@svgr/plugin-svgo" "^6.2.0" rollup-pluginutils "^2.8.2" +"@svgr/webpack@5.5.x": + version "5.5.0" + resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + loader-utils "^2.0.0" + "@svgr/webpack@6.2.x": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.2.1.tgz#ef5d51c1b6be4e7537fb9f76b3f2b2e22b63c58d" @@ -5346,9 +5887,9 @@ defer-to-connect "^1.0.1" "@szmarczak/http-timer@^4.0.5": - version "4.0.5" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" - integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + version "4.0.6" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== dependencies: defer-to-connect "^2.0.0" @@ -5360,6 +5901,20 @@ "@babel/runtime" "^7.14.6" "@testing-library/dom" "^8.1.0" +"@testing-library/dom@^7.28.1": + version "7.31.2" + resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" + integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.6" + lz-string "^1.4.4" + pretty-format "^26.6.2" + "@testing-library/dom@^8.0.0", "@testing-library/dom@^8.1.0": version "8.11.3" resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz#38fd63cbfe14557021e88982d931e33fb7c1a808" @@ -5400,6 +5955,14 @@ "@types/react-test-renderer" ">=16.9.0" react-error-boundary "^3.1.0" +"@testing-library/react@^11.2.5": + version "11.2.7" + resolved "https://registry.npmjs.org/@testing-library/react/-/react-11.2.7.tgz#b29e2e95c6765c815786c0bc1d5aed9cb2bf7818" + integrity sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.28.1" + "@testing-library/react@^12.1.3": version "12.1.4" resolved "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz#09674b117e550af713db3f4ec4c0942aa8bbf2c0" @@ -5493,9 +6056,9 @@ integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== "@types/aria-query@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" - integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== + version "4.2.2" + resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" + integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== "@types/aws-lambda@^8.10.83": version "8.10.92" @@ -5510,9 +6073,9 @@ "@types/node" "*" "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.9" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" - integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== + version "7.1.18" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" + integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -5521,24 +6084,24 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.1" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" - integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + version "7.6.4" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.2" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + version "7.4.1" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.0.15" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03" - integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A== + version "7.14.2" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== dependencies: "@babel/types" "^7.3.0" @@ -5563,9 +6126,9 @@ integrity sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg== "@types/cacheable-request@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" - integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + version "6.0.2" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" + integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== dependencies: "@types/http-cache-semantics" "*" "@types/keyv" "*" @@ -5598,7 +6161,7 @@ dependencies: "@types/color-name" "*" -"@types/color-name@*", "@types/color-name@^1.1.1": +"@types/color-name@*": version "1.1.1" resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== @@ -5645,9 +6208,9 @@ "@types/node" "*" "@types/connect@*": - version "3.4.33" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" - integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== + version "3.4.35" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" @@ -5664,9 +6227,9 @@ integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== "@types/cookiejar@*": - version "2.1.1" - resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.1.tgz#90b68446364baf9efd8e8349bb36bd3852b75b80" - integrity sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw== + version "2.1.2" + resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz#66ad9331f63fe8a3d3d9d8c6e3906dd10f6446e8" + integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== "@types/core-js@^2.5.4": version "2.5.5" @@ -5697,9 +6260,9 @@ integrity sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w== "@types/d3-force@^2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.1.tgz#a18b6f029d056eb0f8f84a09471e6228e4469b14" - integrity sha512-3r+CQv2K/uDTAVg0DGxsbBjV02vgOxb8RhPIv3gd6cp3pdPAZ7wEXpDjUZSoqycAQLSDOxG/AZ54Vx6YXZSbmQ== + version "2.1.4" + resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.4.tgz#98919b87db8a0ca5011d189c598d69251d20344d" + integrity sha512-1XVRc2QbeUSL1FRVE53Irdz7jY+drTwESHIMVirCwkAAMB/yVC8ezAfx/1Alq0t0uOnphoyhRle1ht5CuPgSJQ== "@types/d3-interpolate@*": version "3.0.1" @@ -5743,9 +6306,9 @@ integrity sha512-d29EDd0iUBrRoKhPndhDY6U/PYxOWqgIZwKTooy2UkBfU7TNZNpRho0yLWPxlatQrFWk2mnTu71IZQ4+LRgKlQ== "@types/d3-shape@^1": - version "1.3.5" - resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.5.tgz#c0164c1be1429473016f855871d487f806c4e968" - integrity sha512-aPEax03owTAKynoK8ZkmkZEDZvvT4Y5pWgii4Jp4oQt0gH45j6siDl9gNDVC5kl64XHN2goN9jbYoHK88tFAcA== + version "1.3.8" + resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.8.tgz#c3c15ec7436b4ce24e38de517586850f1fea8e89" + integrity sha512-gqfnMz6Fd5H6GOLYixOZP/xlrMtJms9BaS+6oWxTKHNqPGZ93BkWWupQSCYm6YHqx6h9wjRupuJb90bun6ZaYg== dependencies: "@types/d3-path" "^1" @@ -5824,7 +6387,15 @@ "@types/eslint" "*" "@types/estree" "*" -"@types/eslint@*", "@types/eslint@^7.28.2": +"@types/eslint@*": + version "8.4.1" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" + integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/eslint@^7.28.2": version "7.29.0" resolved "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== @@ -5918,9 +6489,9 @@ integrity sha512-Zf9mY4Mz7N3Nyi341nUkOtgVUQn4j6NS4ndqEha/lOgEbTkHzpD7wZuRagYKzrXNtvawWfsrojoC1nhsQexvNA== "@types/glob@*": - version "7.1.3" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + version "7.2.0" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" "@types/node" "*" @@ -5931,9 +6502,9 @@ integrity sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw== "@types/graceful-fs@^4.1.2": - version "4.1.3" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" - integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== + version "4.1.5" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== dependencies: "@types/node" "*" @@ -5965,9 +6536,9 @@ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-cache-semantics@*": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" - integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + version "4.0.1" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== "@types/http-errors@^1.6.3": version "1.8.2" @@ -6019,9 +6590,9 @@ ci-info "^3.1.0" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" - integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + version "2.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": version "3.0.0" @@ -6031,9 +6602,9 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" - integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + version "3.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== dependencies: "@types/istanbul-lib-report" "*" @@ -6045,16 +6616,24 @@ "@types/node" "*" "@types/jest-when@^2.7.2": - version "2.7.2" - resolved "https://registry.npmjs.org/@types/jest-when/-/jest-when-2.7.2.tgz#619fbc5f623bcd0b29efde0e4993c7f0d50d026d" - integrity sha512-vOtj0cev6vO1VX7Jbfg/qvy+sfLI64STsHbKVkggK+1kd11rcMGzFpZKBxUvQfsm4JRULCBISu+qrfs7fYZFGg== + version "2.7.4" + resolved "https://registry.npmjs.org/@types/jest-when/-/jest-when-2.7.4.tgz#1bedac232f4a54c1a1c01cc641c03ecfd0dad0ec" + integrity sha512-2OC69oyaD33tmSaOjtxvy7ZpBO85OWIw1AbpWVziL4bek5mr795H59qK5EKDpp4dLhtH1QIs54tXpoHEb2mE/A== dependencies: "@types/jest" "*" -"@types/jest@*", "@types/jest@^26.0.7": - version "26.0.22" - resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.22.tgz#8308a1debdf1b807aa47be2838acdcd91e88fbe6" - integrity sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw== +"@types/jest@*": + version "27.4.0" + resolved "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz#037ab8b872067cae842a320841693080f9cb84ed" + integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== + dependencies: + jest-diff "^27.0.0" + pretty-format "^27.0.0" + +"@types/jest@^26.0.7": + version "26.0.24" + resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== dependencies: jest-diff "^26.0.0" pretty-format "^26.0.0" @@ -6067,14 +6646,14 @@ "@types/sizzle" "*" "@types/js-cookie@^2.2.6": - version "2.2.6" - resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f" - integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw== + version "2.2.7" + resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3" + integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA== "@types/js-levenshtein@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.0.tgz#9541eec4ad6e3ec5633270a3a2b55d981edc44a9" - integrity sha512-14t0v1ICYRtRVcHASzes0v/O+TIeASb8aD55cWF1PidtInhFWSXcmhzhHqGjUWf9SUq1w70cvd1cWKUULubAfQ== + version "1.1.1" + resolved "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz#ba05426a43f9e4e30b631941e0aa17bf0c890ed5" + integrity sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g== "@types/js-yaml@^4.0.0", "@types/js-yaml@^4.0.1": version "4.0.5" @@ -6101,10 +6680,15 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== +"@types/json-schema@7.0.9": + version "7.0.9" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + "@types/json-stable-stringify@^1.0.32": - version "1.0.32" - resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz#121f6917c4389db3923640b2e68de5fa64dda88e" - integrity sha512-q9Q6+eUEGwQkv4Sbst3J4PNgDOvpuVuKj79Hl/qnmBMEIPzB5QoFRUtjcgcg2xNUZyYUGXBk5wYIBKHt0A+Mxw== + version "1.0.33" + resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz#099b0712d824d15e2660c20e1c16e6a8381f308c" + integrity sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw== "@types/json5@^0.0.29": version "0.0.29" @@ -6112,9 +6696,9 @@ integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/jsonwebtoken@^8.3.3", "@types/jsonwebtoken@^8.5.0": - version "8.5.0" - resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.0.tgz#2531d5e300803aa63279b232c014acf780c981c5" - integrity sha512-9bVao7LvyorRGZCw0VmH/dr7Og+NdjYSsKAxB43OQoComFbBgsEpoR9JW6+qSq/ogwVBg8GI2MfAlk4SYI4OLg== + version "8.5.8" + resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz#01b39711eb844777b7af1d1f2b4cf22fda1c0c44" + integrity sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A== dependencies: "@types/node" "*" @@ -6126,9 +6710,9 @@ jwt-decode "*" "@types/keyv@*": - version "3.1.1" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" - integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + version "3.1.3" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz#1c9aae32872ec1f20dcdaee89a9f3ba88f465e41" + integrity sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg== dependencies: "@types/node" "*" @@ -6150,24 +6734,24 @@ integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== "@types/lru-cache@^5.1.0": - version "5.1.0" - resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03" - integrity sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w== + version "5.1.1" + resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/lunr@^2.3.3": - version "2.3.3" - resolved "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.3.tgz#ec985618fd2712c010f8edab4f1ae7784ad7c583" - integrity sha512-09sXZZVsB3Ib41U0fC+O1O+4UOZT1bl/e+/QubPxpqDWHNEchvx/DEb1KJMOwq6K3MTNzZFoNSzVdR++o1DVnw== + version "2.3.4" + resolved "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.4.tgz#728f445855818fb17776d10ef4678f278072eb03" + integrity sha512-j4x4XJwZvorEUbA519VdQ5b9AOU9TSvfi8tvxMAfP8XzNLtFex7A8vFQwqOx3WACbV0KMXbACV3cZl4/gynQ7g== "@types/luxon@^2.0.4", "@types/luxon@^2.0.5", "@types/luxon@^2.0.9": version "2.3.0" resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.3.0.tgz#0f4d912c385e47890374cb694da9bc93bacbe2b0" integrity sha512-mWXdRlg+5dWvxU+uaijB2RY5NrJtMEXR6j+D6W66hPuezSVXrQqQvWa/JNHntgEYgjzeoVRrQVmMWAbKjUJiFQ== -"@types/mdast@^3.0.0", "@types/mdast@^3.0.3": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" - integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== +"@types/mdast@^3.0.0": + version "3.0.10" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== dependencies: "@types/unist" "*" @@ -6197,9 +6781,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/minipass@*": - version "2.2.0" - resolved "https://registry.npmjs.org/@types/minipass/-/minipass-2.2.0.tgz#51ad404e8eb1fa961f75ec61205796807b6f9651" - integrity sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg== + version "3.1.2" + resolved "https://registry.npmjs.org/@types/minipass/-/minipass-3.1.2.tgz#e2d7f9df0698aff421dcf145b4fc05b8183b9030" + integrity sha512-foLGjgrJkUjLG/o2t2ymlZGEoBNBa/TfoUZ7oCTkOjP1T43UGBJspovJou/l3ZuHvye2ewR5cZNtp2zyWgILMA== dependencies: "@types/node" "*" @@ -6223,42 +6807,52 @@ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node-fetch@^2.5.0", "@types/node-fetch@^2.5.12", "@types/node-fetch@^2.5.7": - version "2.5.12" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" - integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== + version "2.6.1" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975" + integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== dependencies: "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^16.9.2": - version "16.11.6" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" - integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== +"@types/node@*", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "17.0.18" + resolved "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz#3b4fed5cfb58010e3a2be4b6e74615e4847f1074" + integrity sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA== -"@types/node@12.20.24", "@types/node@^12.7.1": +"@types/node@12.20.24": version "12.20.24" resolved "https://registry.npmjs.org/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== "@types/node@^10.1.0", "@types/node@^10.12.0": - version "10.17.13" - resolved "https://registry.npmjs.org/@types/node/-/node-10.17.13.tgz#ccebcdb990bd6139cd16e84c39dc2fb1023ca90c" - integrity sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg== + version "10.17.60" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^12.7.1": + version "12.20.46" + resolved "https://registry.npmjs.org/@types/node/-/node-12.20.46.tgz#7e49dee4c54fd19584e6a9e0da5f3dc2e9136bc7" + integrity sha512-cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A== "@types/node@^14.14.31", "@types/node@^14.14.32": - version "14.17.8" - resolved "https://registry.npmjs.org/@types/node/-/node-14.17.8.tgz#813b73ab7d82ac06ddfd2458b13c88459a3b319f" - integrity sha512-0CHLt50GbUmH/6MrlBIKNdWCglvlyQKkorRf08/0DIi0ryuTPP+ijWLSI19SbDTHSKaagGDELiImY4BSikt61w== + version "14.18.12" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" + integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== "@types/node@^15.6.1": version "15.14.9" resolved "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== +"@types/node@^16.9.2": + version "16.11.25" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.25.tgz#bb812b58bacbd060ce85921250d8b4ca553cd4a2" + integrity sha512-NrTwfD7L1RTc2qrHQD4RTTy4p0CO2LatKBEKEds3CaVuhoM/+DJzmWZl5f+ikR8cm8F5mfJxK+9rQq07gRiSjQ== + "@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + version "2.4.1" + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== "@types/npm-packlist@^3.0.0": version "3.0.0" @@ -6313,9 +6907,9 @@ "@types/passport-oauth2" "*" "@types/passport-oauth2@*": - version "1.4.9" - resolved "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.9.tgz#134007c4b505a82548c9cb19094c5baeb2205c92" - integrity sha512-QP0q+NVQOaIu2r0e10QWkiUA0Ya5mOBHRJN0UrI+LolMLOP1/VN4EVIpJ3xVwFo+xqNFRoFvFwJhBvKnk7kpUA== + version "1.4.11" + resolved "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.11.tgz#fbca527ecb44258774d17bcb251630c321515fa9" + integrity sha512-KUNwmGhe/3xPbjkzkPwwcPmyFwfyiSgtV1qOrPBLaU4i4q9GSCdAOyCbkFG0gUxAyEmYwqo9OAF/rjPjJ6ImdA== dependencies: "@types/express" "*" "@types/oauth" "*" @@ -6350,9 +6944,9 @@ integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA== "@types/prettier@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.0.tgz#dc85454b953178cc6043df5208b9e949b54a3bc4" - integrity sha512-/rM+sWiuOZ5dvuVzV37sUuklsbg+JPOP8d+nNFlo2ZtfpzPiPvh1/gc8liWOLBqe+sR+ZM7guPaIcTt6UZTo7Q== + version "2.4.4" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" + integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== "@types/prop-types@*", "@types/prop-types@^15.7.3": version "15.7.4" @@ -6366,15 +6960,20 @@ dependencies: "@types/node" "*" +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + "@types/qs@*": - version "6.9.6" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" - integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== + version "6.9.7" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/range-parser@*": - version "1.2.3" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + version "1.2.4" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/react-dom@*", "@types/react-dom@>=16.9.0": version "17.0.11" @@ -6390,10 +6989,10 @@ dependencies: "@types/react" "*" -"@types/react-redux@^7.1.16": - version "7.1.19" - resolved "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.19.tgz#477bd0a9b01bae6d6bf809418cdfa7d3c16d4c62" - integrity sha512-L37dSCT0aoJnCgpR8Iuginlbxoh7qhWOXiaDqEsxVMrER1CmVhFD+63NxgJeT4pkmEM28oX0NH4S4f+sXHTZjA== +"@types/react-redux@^7.1.20": + version "7.1.22" + resolved "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.22.tgz#0eab76a37ef477cc4b53665aeaf29cb60631b72a" + integrity sha512-GxIA1kM7ClU73I6wg9IRTVwSO9GS+SAKZKe0Enj+82HMU6aoESFU2HNAdNi3+J53IaOHPiUfT3kSG4L828joDQ== dependencies: "@types/hoist-non-react-statics" "^3.3.0" "@types/react" "*" @@ -6415,9 +7014,9 @@ "@types/react" "*" "@types/react-test-renderer@>=16.9.0": - version "16.9.2" - resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.2.tgz#e1c408831e8183e5ad748fdece02214a7c2ab6c5" - integrity sha512-4eJr1JFLIAlWhzDkBCkhrOIWOvOxcCAfQh+jiKg7l/nNZcCIL2MHl2dZhogIFKyHzedVWHaVP1Yydq/Ruu4agw== + version "17.0.1" + resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz#3120f7d1c157fba9df0118dae20cb0297ee0e06b" + integrity sha512-3Fi2O6Zzq/f3QR9dRnlnHso9bMl7weKCviFmfF6B4LS1Uat6Hkm15k0ZAQuDz+UBq6B3+g+NM6IT2nr5QgPzCw== dependencies: "@types/react" "*" @@ -6429,9 +7028,9 @@ "@types/react" "*" "@types/react-transition-group@^4.2.0": - version "4.2.4" - resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.4.tgz#c7416225987ccdb719262766c1483da8f826838d" - integrity sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA== + version "4.4.4" + resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e" + integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug== dependencies: "@types/react" "*" @@ -6479,9 +7078,9 @@ integrity sha512-i7KOGl6xdkfpq5+p2ooC+/XFIRUMkYymZ29SD8p+Ko9lesKGUsh6860ey3YM7Y+ZG7kEDGcjzyLO3sOhozqEeA== "@types/request@^2.47.1": - version "2.48.5" - resolved "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz#019b8536b402069f6d11bee1b2c03e7f232937a0" - integrity sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ== + version "2.48.8" + resolved "https://registry.npmjs.org/@types/request/-/request-2.48.8.tgz#0b90fde3b655ab50976cb8c5ac00faca22f5a82c" + integrity sha512-whjk1EDJPcAR2kYHRbFl/lKeeKYTi05A15K9bnLInCVroNDCtXce57xKdI0/rQaA3K+6q0eFyUBPmqfSndUZdQ== dependencies: "@types/caseless" "*" "@types/node" "*" @@ -6508,9 +7107,9 @@ "@types/node" "*" "@types/retry@^0.12.0": - version "0.12.0" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + version "0.12.1" + resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== "@types/rollup-plugin-peer-deps-external@^2.2.0": version "2.2.1" @@ -6535,14 +7134,14 @@ htmlparser2 "^6.0.0" "@types/scheduler@*": - version "0.16.1" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" - integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + version "0.16.2" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== "@types/semver@^6.0.0": - version "6.2.1" - resolved "https://registry.npmjs.org/@types/semver/-/semver-6.2.1.tgz#a236185670a7860f1597cf73bea2e16d001461ba" - integrity sha512-+beqKQOh9PYxuHvijhVl+tIHvT6tuwOrE9m14zd+MT2A38KoKZhh7pYJ0SNleLtwDsiIxHDsIk9bv01oOxvSvA== + version "6.2.3" + resolved "https://registry.npmjs.org/@types/semver/-/semver-6.2.3.tgz#5798ecf1bec94eaa64db39ee52808ec0693315aa" + integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== "@types/semver@^7.3.8": version "7.3.9" @@ -6564,17 +7163,17 @@ "@types/express" "*" "@types/serve-static@*": - version "1.13.9" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" - integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== + version "1.13.10" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/set-cookie-parser@^2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.0.tgz#10cc0446bad372827671a5195fbd14ebce4a9baf" - integrity sha512-w7BFUq81sy7H/0jN0K5cax8MwRN6NOSURpY4YuO4+mOgoicxCZ33BUYz+gyF/sUf7uDl2We2yGJfppxzEXoAXQ== + version "2.4.2" + resolved "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz#b6a955219b54151bfebd4521170723df5e13caad" + integrity sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w== dependencies: "@types/node" "*" @@ -6584,9 +7183,9 @@ integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@*", "@types/sizzle@^2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" - integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== + version "2.3.3" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" + integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== "@types/sockjs@^0.3.33": version "0.3.33" @@ -6596,32 +7195,24 @@ "@types/node" "*" "@types/ssh2-streams@*": - version "0.1.8" - resolved "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.8.tgz#142af404dae059931aea7fcd1511b5478964feb6" - integrity sha512-I7gixRPUvVIyJuCEvnmhr3KvA2dC0639kKswqD4H5b4/FOcnPtNU+qWLiXdKIqqX9twUvi5j0U1mwKE5CUsrfA== + version "0.1.9" + resolved "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.9.tgz#8ca51b26f08750a780f82ee75ff18d7160c07a87" + integrity sha512-I2J9jKqfmvXLR5GomDiCoHrEJ58hAOmFrekfFqmCFd+A6gaEStvWnPykoWUwld1PNg4G5ag1LwdA+Lz1doRJqg== dependencies: "@types/node" "*" -"@types/ssh2@*": - version "0.5.47" - resolved "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.47.tgz#67a8b35a0527b2bb668f6dea4c84be6ff1abdc19" - integrity sha512-ZhqJg8BRV7OsCi0KVqPr27lUMMmLEeHYw1VXUNGGDlQEDq9HTsKx+wYvi8E6oNC6gRZ7PV99ZMZmMr5vztcYYA== - dependencies: - "@types/node" "*" - "@types/ssh2-streams" "*" - -"@types/ssh2@^0.5.48": - version "0.5.48" - resolved "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.48.tgz#0d9e8654a76eaaf4cfeaeb88d74c4489cfcf7aea" - integrity sha512-cmQu0gp/6RtDXe1r2xXGgi0V0TeCdueDSRMEvBX8cTRT/sSREkUpgCYZLyh+iI8Ql+VNV8Az9toQoYa/IdgHbQ== +"@types/ssh2@*", "@types/ssh2@^0.5.48": + version "0.5.51" + resolved "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.51.tgz#8fd9f9d7d3e8973b5227878f8f1e2b4eda1716b3" + integrity sha512-aIq7ownezauW/+VWYaeXwd5J1Evnn4EXyeKi7bT3H6ZLBLoqsmhdvkHYPLpnZPM6unKKKsxTHIyQAVOZnPiJBw== dependencies: "@types/node" "*" "@types/ssh2-streams" "*" "@types/stack-utils@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" - integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + version "2.0.1" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/stoppable@^1.1.0": version "1.1.1" @@ -6631,23 +7222,23 @@ "@types/node" "*" "@types/stream-buffers@^3.0.3": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.3.tgz#34e565bf64e3e4bdeee23fd4aa58d4636014a02b" - integrity sha512-NeFeX7YfFZDYsCfbuaOmFQ0OjSmHreKBpp7MQ4alWQBHeh2USLsj7qyMyn9t82kjqIX516CR/5SRHnARduRtbQ== + version "3.0.4" + resolved "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz#bf128182da7bc62722ca0ddf5458a9c65f76e648" + integrity sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w== dependencies: "@types/node" "*" "@types/styled-jsx@^2.2.8": - version "2.2.8" - resolved "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.8.tgz#b50d13d8a3c34036282d65194554cf186bab7234" - integrity sha512-Yjye9VwMdYeXfS71ihueWRSxrruuXTwKCbzue4+5b2rjnQ//AtyM7myZ1BEhNhBQ/nL/RE7bdToUoLln2miKvg== + version "2.2.9" + resolved "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.9.tgz#e50b3f868c055bcbf9bc353eca6c10fdad32a53f" + integrity sha512-W/iTlIkGEyTBGTEvZCey8EgQlQ5l0DwMqi3iOXlLs2kyBwYTXHKEiU6IZ5EwoRwngL8/dGYuzezSup89ttVHLw== dependencies: "@types/react" "*" "@types/superagent@*": - version "4.1.7" - resolved "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.7.tgz#a7d92d98c490ee0f802a127fdf149b9a114f77a5" - integrity sha512-JSwNPgRYjIC4pIeOqLwWwfGj6iP1n5NE6kNBEbGx2V8H78xCPwx7QpNp9plaI30+W3cFEzJO7BIIsXE+dbtaGg== + version "4.1.15" + resolved "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.15.tgz#63297de457eba5e2bc502a7609426c4cceab434a" + integrity sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ== dependencies: "@types/cookiejar" "*" "@types/node" "*" @@ -6690,9 +7281,9 @@ "@types/node" "*" "@types/tern@*": - version "0.23.3" - resolved "https://registry.npmjs.org/@types/tern/-/tern-0.23.3.tgz#4b54538f04a88c9ff79de1f6f94f575a7f339460" - integrity sha512-imDtS4TAoTcXk0g7u4kkWqedB3E4qpjXzCpD2LU5M5NAXHzCDsypyvXSaG7mM8DKYkCRa7tFp4tS/lp/Wo7Q3w== + version "0.23.4" + resolved "https://registry.npmjs.org/@types/tern/-/tern-0.23.4.tgz#03926eb13dbeaf3ae0d390caf706b2643a0127fb" + integrity sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg== dependencies: "@types/estree" "*" @@ -6718,9 +7309,9 @@ "@types/node" "*" "@types/tough-cookie@*": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz#fef1904e4668b6e5ecee60c52cc6a078ffa6697d" - integrity sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A== + version "4.0.1" + resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz#8f80dd965ad81f3e1bc26d6f5c727e132721ff40" + integrity sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg== "@types/trusted-types@*": version "2.0.2" @@ -6735,9 +7326,9 @@ "@types/node" "*" "@types/underscore@^1.8.9": - version "1.10.23" - resolved "https://registry.npmjs.org/@types/underscore/-/underscore-1.10.23.tgz#cc672e8864000d288e1e39c609fd9cab84391ff3" - integrity sha512-vX1NPekXhrLquFWskH2thcvFAha187F/lM6xYOoEMZWwJ/6alSk0/ttmGP/YRqcqtCv0TMbZjYAdZyHAEcuU4g== + version "1.11.4" + resolved "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.4.tgz#62e393f8bc4bd8a06154d110c7d042a93751def3" + integrity sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg== "@types/unist@*", "@types/unist@^2.0.0": version "2.0.6" @@ -6786,9 +7377,9 @@ "@types/node" "*" "@types/websocket@^1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8" - integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA== + version "1.0.5" + resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz#3fb80ed8e07f88e51961211cd3682a3a4a81569c" + integrity sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ== dependencies: "@types/node" "*" @@ -6800,9 +7391,9 @@ "@types/node" "*" "@types/ws@^8.0.0", "@types/ws@^8.2.2": - version "8.2.2" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21" - integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg== + version "8.2.3" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.2.3.tgz#0bca6b03ba2f41e0fab782d4a573fe284aa907ae" + integrity sha512-ahRJZquUYCdOZf/rCsWg88S0/+cb9wazUBHv6HZEe3XdYaBe2zr/slM8J28X07Hn88Pnm4ezo7N8/ofnOgrPVQ== dependencies: "@types/node" "*" @@ -6814,21 +7405,14 @@ "@types/node" "*" "@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + version "20.2.1" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== "@types/yargs@^15.0.0": - version "15.0.4" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" - integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + version "15.0.14" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== dependencies: "@types/yargs-parser" "*" @@ -6855,13 +7439,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz#5119b67152356231a0e24b998035288a9cd21335" - integrity sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w== + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.0.tgz#bb46dd7ce7015c0928b98af1e602118e97df6c70" + integrity sha512-fwCMkDimwHVeIOKeBHiZhRUfJXU8n6xW1FL9diDxAyGAFvKcH4csy0v7twivOQdQdA0KC8TDr7GGRd3L4Lv0rQ== dependencies: - "@typescript-eslint/scope-manager" "5.14.0" - "@typescript-eslint/type-utils" "5.14.0" - "@typescript-eslint/utils" "5.14.0" + "@typescript-eslint/scope-manager" "5.12.0" + "@typescript-eslint/type-utils" "5.12.0" + "@typescript-eslint/utils" "5.12.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -6870,34 +7454,29 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.0.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz#652762d37d6565ef07af285021b8347b6c79a827" - integrity sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g== + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.12.0.tgz#b97c599a281f14a68015c25ee24966cb54ba9fc5" + integrity sha512-iFVADWH2CmiDF+E9kFK2r474BO2JILDKw1NVD5ytqHrM3ezsfdu5uo6B+77DH0suM7iUC/yOayHNziuiI9BPbQ== dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.9.0" - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/typescript-estree" "5.9.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" + "@typescript-eslint/utils" "5.12.0" "@typescript-eslint/parser@^5.9.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz#e4de1bde4b4dad5b6124d3da227347616ed55508" - integrity sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA== + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.0.tgz#0ca669861813df99ce54916f66f524c625ed2434" + integrity sha512-MfSwg9JMBojMUoGjUmX+D2stoQj1CBYTCP0qnnVtu9A+YQXVKNtLjasYh+jozOcrb/wau8TCfWOkQTiOAruBog== dependencies: - "@typescript-eslint/scope-manager" "5.16.0" - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/typescript-estree" "5.16.0" + "@typescript-eslint/scope-manager" "5.12.0" + "@typescript-eslint/types" "5.12.0" + "@typescript-eslint/typescript-estree" "5.12.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" - integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw== +"@typescript-eslint/scope-manager@5.12.0": + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz#59619e6e5e2b1ce6cb3948b56014d3a24da83f5e" + integrity sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ== dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" + "@typescript-eslint/types" "5.12.0" + "@typescript-eslint/visitor-keys" "5.12.0" "@typescript-eslint/scope-manager@5.16.0": version "5.16.0" @@ -6907,45 +7486,32 @@ "@typescript-eslint/types" "5.16.0" "@typescript-eslint/visitor-keys" "5.16.0" -"@typescript-eslint/scope-manager@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz#02dfef920290c1dcd7b1999455a3eaae7a1a3117" - integrity sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg== +"@typescript-eslint/type-utils@5.12.0": + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.0.tgz#aaf45765de71c6d9707c66ccff76ec2b9aa31bb6" + integrity sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q== dependencies: - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/visitor-keys" "5.9.0" - -"@typescript-eslint/type-utils@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz#711f08105860b12988454e91df433567205a8f0b" - integrity sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw== - dependencies: - "@typescript-eslint/utils" "5.14.0" + "@typescript-eslint/utils" "5.12.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" - integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== +"@typescript-eslint/types@5.12.0": + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz#5b4030a28222ee01e851836562c07769eecda0b8" + integrity sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ== "@typescript-eslint/types@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== -"@typescript-eslint/types@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" - integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== - -"@typescript-eslint/typescript-estree@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" - integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== +"@typescript-eslint/typescript-estree@5.12.0": + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz#cabf545fd592722f0e2b4104711e63bf89525cd2" + integrity sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ== dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" + "@typescript-eslint/types" "5.12.0" + "@typescript-eslint/visitor-keys" "5.12.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" @@ -6965,28 +7531,15 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz#0e5c6f03f982931abbfbc3c1b9df5fbf92a3490f" - integrity sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw== - dependencies: - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/visitor-keys" "5.9.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4" - integrity sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w== +"@typescript-eslint/utils@5.12.0": + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz#92fd3193191621ab863add2f553a7b38b65646af" + integrity sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.14.0" - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/typescript-estree" "5.14.0" + "@typescript-eslint/scope-manager" "5.12.0" + "@typescript-eslint/types" "5.12.0" + "@typescript-eslint/typescript-estree" "5.12.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -7002,12 +7555,12 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" - integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== +"@typescript-eslint/visitor-keys@5.12.0": + version "5.12.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz#1ac9352ed140b07ba144ebf371b743fdf537ec16" + integrity sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg== dependencies: - "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/types" "5.12.0" eslint-visitor-keys "^3.0.0" "@typescript-eslint/visitor-keys@5.16.0": @@ -7018,14 +7571,6 @@ "@typescript-eslint/types" "5.16.0" eslint-visitor-keys "^3.0.0" -"@typescript-eslint/visitor-keys@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" - integrity sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw== - dependencies: - "@typescript-eslint/types" "5.9.0" - eslint-visitor-keys "^3.0.0" - "@uiw/react-codemirror@^4.5.1": version "4.5.1" resolved "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.5.1.tgz#f2af4e761f13b729a3ec7c7c858b34432cdf46a7" @@ -7214,9 +7759,9 @@ abort-controller@3.0.0, abort-controller@^3.0.0: event-target-shim "^5.0.0" abstract-logging@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.0.tgz#08a85814946c98ef06f4256ad470aba1886d4490" - integrity sha512-/oA9z7JszpIioo6J6dB79LVUgJ3eD3cxkAmdCkvWWS+Y9tPtALs1rLqOekLUXUbYqM2fB9TTK0ibAyZJJOP/CA== + version "2.0.1" + resolved "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" + integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" @@ -7235,19 +7780,19 @@ acorn-globals@^6.0.0: acorn-walk "^7.1.1" acorn-import-assertions@^1.7.6: - version "1.7.6" - resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" - integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + version "1.8.0" + resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" - integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== + version "7.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.1.1, acorn-walk@^8.2.0: version "8.2.0" @@ -7259,7 +7804,7 @@ acorn@^7.1.1: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0: +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.0: version "8.7.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== @@ -7322,7 +7867,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv@^6.7.0, ajv@~6.12.6: +ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.7.0, ajv@~6.12.6: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -7352,11 +7897,6 @@ ajv@^8.0.0, ajv@^8.10.0, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" -alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - already@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/already/-/already-3.3.0.tgz#a5e5becd167cf537b45f8f1c23d331488ed77003" @@ -7370,11 +7910,11 @@ anafanafo@2.0.0: char-width-table-consumer "^1.0.0" ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + version "3.0.1" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: - string-width "^3.0.0" + string-width "^4.1.0" ansi-colors@^4.1.1: version "4.1.1" @@ -7387,11 +7927,11 @@ ansi-escapes@^3.0.0: integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: - type-fest "^0.11.0" + type-fest "^0.21.3" ansi-html-community@^0.0.8: version "0.0.8" @@ -7436,11 +7976,10 @@ ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" ansi-styles@^5.0.0: @@ -7647,9 +8186,9 @@ are-we-there-yet@^3.0.0: readable-stream "^3.6.0" are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + version "1.1.7" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -7714,11 +8253,6 @@ array-differ@^3.0.0: resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -7734,7 +8268,7 @@ array-ify@^1.0.0: resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.1.2, array-includes@^3.1.3, array-includes@^3.1.4: +array-includes@^3.1.3, array-includes@^3.1.4: version "3.1.4" resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== @@ -7805,19 +8339,20 @@ asap@^2.0.0, asap@^2.0.3, asap@~2.0.3: resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" asn1@^0.2.4, asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + version "0.2.6" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" @@ -7857,16 +8392,16 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-lock@^1.1.0: - version "1.2.4" - resolved "https://registry.npmjs.org/async-lock/-/async-lock-1.2.4.tgz#80d0d612383045dd0c30eb5aad08510c1397cb91" - integrity sha512-UBQJC2pbeyGutIfYmErGc9RaJYnpZ1FHaxuKwb0ahvGiiCkPUf3p67Io+YLPmmv3RHY+mF6JEtNW8FlHsraAaA== - -async-retry@^1.2.1, async-retry@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55" - integrity sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA== + resolved "https://registry.npmjs.org/async-lock/-/async-lock-1.3.1.tgz#f2301c200600cde97acc386453b7126fa8aced3c" + integrity sha512-zK7xap9UnttfbE23JmcrNIyueAn6jWshihJqA33U/hEnKprF/lVGBDsBv/bqLm2YMMl1DnpHhUY044eA0t1TUw== + +async-retry@^1.2.1, async-retry@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== dependencies: - retry "0.12.0" + retry "0.13.1" async@0.9.x: version "0.9.2" @@ -7911,18 +8446,16 @@ auto-bind@~4.0.0: integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== autolinker@^3.11.0: - version "3.14.1" - resolved "https://registry.npmjs.org/autolinker/-/autolinker-3.14.1.tgz#6ae4b812b6eaf42d4d68138b9e67757cbf2bc1e4" - integrity sha512-yvsRHIaY51EYDml6MGlbqyJGfl4n7zezGYf+R7gvM8c5LNpRGc4SISkvgAswSS8SWxk/OrGCylKV9mJyVstz7w== + version "3.14.3" + resolved "https://registry.npmjs.org/autolinker/-/autolinker-3.14.3.tgz#c61c424bc6077bcf2fc62803803ec2f58e15a7ec" + integrity sha512-t81i2bCpS+s+5FIhatoww9DmpjhbdiimuU9ATEuLxtZMQ7jLv9fyFn7SWNG8IkEfD4AmYyirL1ss9k1aqVWRvg== dependencies: tslib "^1.9.3" -available-typed-arrays@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" - integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== - dependencies: - array-filter "^1.0.0" +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk-mock@^5.2.1: version "5.6.2" @@ -7934,9 +8467,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.840.0, aws-sdk@^2.928.0, aws-sdk@^2.948.0: - version "2.1095.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1095.0.tgz#7847493b09a326a0613010ed9db53302f760edf6" - integrity sha512-OrZq2pTDsnfOJYsAdRlw+NXTGLQYqWldSZR3HugW8JT4JPWyFZrgB2yPP2ElFHX+4J4SZg5QvkAXl/7s9gLTgA== + version "2.1077.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1077.0.tgz#d4a391d38ede867fe9a88f31555f09a338dfdf4e" + integrity sha512-orJvJROs8hJaQRfHsX7Zl5PxEgrD/uTXyqXz9Yu9Io5VVxzvnOty9oHmvEMSlgTIf1qd01gnev/vpvP1HgzKtw== dependencies: buffer "4.9.2" events "1.1.1" @@ -7959,9 +8492,9 @@ aws4@^1.11.0, aws4@^1.8.0: integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== axe-core@^4.3.5: - version "4.3.5" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5" - integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA== + version "4.4.1" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" + integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== axios-cached-dns-resolve@0.5.2: version "0.5.2" @@ -8022,14 +8555,14 @@ babel-plugin-dynamic-import-node@^2.3.3: object.assign "^4.1.0" babel-plugin-istanbul@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + version "6.1.1" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" + istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" babel-plugin-jest-hoist@^26.6.2: @@ -8052,12 +8585,12 @@ babel-plugin-polyfill-corejs2@^0.3.0: semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz#d66183bf10976ea677f4149a7fcc4d8df43d4060" - integrity sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A== + version "0.5.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.20.0" + core-js-compat "^3.21.0" babel-plugin-polyfill-regenerator@^0.3.0: version "0.3.1" @@ -8081,9 +8614,9 @@ babel-polyfill@^6.26.0: regenerator-runtime "^0.10.5" babel-preset-current-node-syntax@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz#cf5feef29551253471cfa82fc8e0f5063df07a77" - integrity sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q== + version "1.0.1" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -8168,9 +8701,9 @@ badge-maker@^3.3.0: css-color-converter "^2.0.0" bail@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz#d676736373a374058a935aec81b94c12ba815771" - integrity sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA== + version "2.0.2" + resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== balanced-match@^0.4.2: version "0.4.2" @@ -8239,7 +8772,7 @@ bdd-lazy-var@^2.6.0: resolved "https://registry.npmjs.org/bdd-lazy-var/-/bdd-lazy-var-2.6.1.tgz#ca03fb36d68c5a507c0ba9a4d53160b899e6b7cb" integrity sha512-X3ADwcFji/IHIrYJhTTpaiWhoOx4pl4whdAx1dmvdeUPsMUb7fVYFvf/Q33VEAEAVkEwi5rgNSZ0Y9oOVeQV+A== -before-after-hook@^2.1.0, before-after-hook@^2.2.0: +before-after-hook@^2.2.0: version "2.2.2" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== @@ -8280,9 +8813,9 @@ big.js@^5.2.2: integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== bignumber.js@^9.0.0: - version "9.0.1" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" - integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== + version "9.0.2" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== bin-links@^3.0.0: version "3.0.0" @@ -8297,9 +8830,9 @@ bin-links@^3.0.0: write-file-atomic "^4.0.0" binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== binary-search@^1.3.5: version "1.3.6" @@ -8365,11 +8898,16 @@ bmp-js@^0.1.0: resolved "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + body-parser@1.19.2, body-parser@^1.19.0: version "1.19.2" resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" @@ -8398,7 +8936,7 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boolbase@^1.0.0: +boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= @@ -8522,26 +9060,28 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + version "4.2.1" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" browserify-zlib@^0.2.0: version "0.2.0" @@ -8550,15 +9090,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.19.1: - version "4.19.1" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.19.1: + version "4.19.3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" + integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" + caniuse-lite "^1.0.30001312" + electron-to-chromium "^1.4.71" escalade "^3.1.1" - node-releases "^2.0.1" + node-releases "^2.0.2" picocolors "^1.0.0" bser@2.1.1: @@ -8594,9 +9134,9 @@ buffer-equal@0.0.1: integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-indexof-polyfill@~1.0.0: version "1.0.2" @@ -8649,9 +9189,9 @@ buffers@~0.1.1: integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= builtin-modules@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== + version "3.2.0" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== builtin-status-codes@^3.0.0: version "3.0.0" @@ -8669,9 +9209,9 @@ byline@^5.0.0: integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= byte-size@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/byte-size/-/byte-size-7.0.0.tgz#36528cd1ca87d39bd9abd51f5715dc93b6ceb032" - integrity sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ== + version "7.0.1" + resolved "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" + integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== bytes@3.0.0: version "3.0.0" @@ -8723,9 +9263,9 @@ cache-base@^1.0.1: unset-value "^1.0.0" cacheable-lookup@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" - integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== + version "5.0.4" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== cacheable-request@^6.0.0: version "6.1.0" @@ -8833,10 +9373,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286: - version "1.0.30001315" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001315.tgz#f1b1efd1171ee1170d52709a7252632dacbd7c77" - integrity sha512-5v7LFQU4Sb/qvkz7JcZkvtSH1Ko+1x2kgo3ocdBeMGZSOFpuE1kkm0kpTwLtWeFrw5qw08ulLxJjVIXIS8MkiQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001312: + version "1.0.30001312" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" + integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== canvas@^2.6.1: version "2.9.0" @@ -8869,9 +9409,9 @@ caseless@~0.12.0: integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= ccount@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz#3d6fb55803832766a24c6f339abc507297eb5d25" - integrity sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA== + version "2.0.1" + resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== chainsaw@~0.1.0: version "0.1.0" @@ -8975,31 +9515,21 @@ character-entities-legacy@^1.0.0: resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== -character-entities-legacy@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz#57f4d00974c696e8f74e9f493e7fcb75b44d7ee7" - integrity sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA== - character-entities@^1.0.0: version "1.2.4" resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== character-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz#508355fcc8c73893e0909efc1a44d28da2b6fdf3" - integrity sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA== + version "2.0.1" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" + integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== character-reference-invalid@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -character-reference-invalid@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz#a0bdeb89c051fe7ed5d3158b2f06af06984f2813" - integrity sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g== - chardet@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -9041,11 +9571,9 @@ chownr@^2.0.0: integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" + version "1.0.3" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== ci-info@^2.0.0: version "2.0.0" @@ -9093,9 +9621,9 @@ classnames@*, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1: integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== clean-css@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.2.2.tgz#d3a7c6ee2511011e051719838bdcf8314dc4548d" - integrity sha512-/eR8ru5zyxKzpBLv9YZvMXgTSSQn7AdkMItMYynsFgGwTveCRVam9IUPFloE85B4vAIj05IuKmmEoV7/AQjT0w== + version "5.2.4" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz#982b058f8581adb2ae062520808fb2429bd487a4" + integrity sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg== dependencies: source-map "~0.6.0" @@ -9129,9 +9657,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-spinners@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" - integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== + version "2.6.1" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== cli-table3@~0.6.1: version "0.6.1" @@ -9143,9 +9671,9 @@ cli-table3@~0.6.1: colors "1.4.0" cli-table@^0.3.1: - version "0.3.6" - resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz#e9d6aa859c7fe636981fd3787378c2a20bce92fc" - integrity sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ== + version "0.3.11" + resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz#ac69cdecbe81dccdba4889b9a18b7da312a9d3ee" + integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== dependencies: colors "1.0.3" @@ -9272,6 +9800,15 @@ co@^4.6.0: resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + code-error-fragment@0.0.230: version "0.0.230" resolved "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7" @@ -9282,18 +9819,18 @@ code-point-at@^1.0.0: resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codemirror-graphql@^1.2.13: - version "1.2.13" - resolved "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.2.13.tgz#2525141b2ea8e54b78aea91cc8b85693bbcb17d9" - integrity sha512-7I2qPHxoTndvDNBkaoYYbL2S6A6JAMXBA17ZFcIWAj7A0V/NEg0aPSxhwNRK1yLmC+3XI9OR4BjZTiPxrA2gBA== +codemirror-graphql@^1.2.12: + version "1.2.12" + resolved "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.2.12.tgz#59cf88ae254d5dabd4e596028977a7ec305cddb7" + integrity sha512-irP+E8HOWtgIdU3PNTU77bNmpEXQYADRRDmKqkjh3w1m0welbxl6HtZgp+c+Mkkz+FXY1+3+gF6nEEj+eJ1xdg== dependencies: "@codemirror/stream-parser" "^0.19.2" - graphql-language-service "^5.0.0" + graphql-language-service "^4.1.5" codemirror@^5.58.2: - version "5.63.3" - resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.63.3.tgz#97042a242027fe0c87c09b36bc01931d37b76527" - integrity sha512-1C+LELr+5grgJYqwZKqxrcbPsHFHapVaVAloBsFBASbpLnQqLw1U8yXJ3gT5D+rhxIiSpo+kTqN+hQ+9ialIXw== + version "5.65.1" + resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.65.1.tgz#5988a812c974c467f964bcc1a00c944e373de502" + integrity sha512-s6aac+DD+4O2u1aBmdxhB7yz2XU7tG3snOyQ05Kxifahz7hoxnfxIRHxiCSEv3TUC38dIVH8G+lZH9UWSfGQxA== codeowners-utils@^1.0.2: version "1.0.2" @@ -9306,9 +9843,9 @@ codeowners-utils@^1.0.2: locate-path "^5.0.0" collect-v8-coverage@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz#150ee634ac3650b71d9c985eb7f608942334feb1" - integrity sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ== + version "1.0.1" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== collection-visit@^1.0.0: version "1.0.0" @@ -9323,7 +9860,7 @@ color-convert@^0.5.2: resolved "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" integrity sha1-vbbGnOZg+t/+CwAHzER+G59ygr0= -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -9347,7 +9884,7 @@ color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.2, color-string@^1.9.0: +color-string@^1.6.0, color-string@^1.9.0: version "1.9.0" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== @@ -9360,13 +9897,13 @@ color-support@^1.1.2: resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@3.0.x: - version "3.0.0" - resolved "https://registry.npmjs.org/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" - integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== +color@^3.1.3: + version "3.2.1" + resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" + color-convert "^1.9.3" + color-string "^1.6.0" color@^4.0.1: version "4.2.1" @@ -9377,9 +9914,9 @@ color@^4.0.1: color-string "^1.9.0" colord@^2.9.1: - version "2.9.1" - resolved "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" - integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== + version "2.9.2" + resolved "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" + integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== colorette@2.0.16, colorette@^2.0.10, colorette@^2.0.16: version "2.0.16" @@ -9402,19 +9939,19 @@ colors@~1.2.1: integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== colorspace@1.1.x: - version "1.1.2" - resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" - integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== + version "1.1.4" + resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== dependencies: - color "3.0.x" + color "^3.1.3" text-hex "1.0.x" columnify@^1.5.4: - version "1.5.4" - resolved "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" - integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= + version "1.6.0" + resolved "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== dependencies: - strip-ansi "^3.0.0" + strip-ansi "^6.0.1" wcwidth "^1.0.0" combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: @@ -9439,10 +9976,10 @@ command-exists@^1.2.9: resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== -commander@*, commander@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@*: + version "9.0.0" + resolved "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz#86d58f24ee98126568936bd1d3574e0308a99a40" + integrity sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw== commander@7.1.0: version "7.1.0" @@ -9474,6 +10011,11 @@ commander@^7.2.0: resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" @@ -9518,12 +10060,12 @@ component-inherit@0.0.3: integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= compress-commons@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.0.tgz#25ec7a4528852ccd1d441a7d4353cd0ece11371b" - integrity sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA== + version "4.1.1" + resolved "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== dependencies: buffer-crc32 "^0.2.13" - crc32-stream "^4.0.1" + crc32-stream "^4.0.2" normalize-path "^3.0.0" readable-stream "^3.6.0" @@ -9603,9 +10145,9 @@ concurrently@^7.0.0: yargs "^16.2.0" config-chain@^1.1.12: - version "1.1.12" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + version "1.1.13" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -9669,9 +10211,9 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== conventional-changelog-angular@^5.0.12: - version "5.0.12" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" - integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== + version "5.0.13" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" + integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== dependencies: compare-func "^2.0.0" q "^1.5.1" @@ -9725,9 +10267,9 @@ conventional-commits-filter@^2.0.7: modify-values "^1.0.0" conventional-commits-parser@^3.2.0: - version "3.2.1" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz#ba44f0b3b6588da2ee9fd8da508ebff50d116ce2" - integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== + version "3.2.4" + resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" + integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.1" @@ -9735,7 +10277,6 @@ conventional-commits-parser@^3.2.0: meow "^8.0.0" split2 "^3.0.0" through2 "^4.0.0" - trim-off-newlines "^1.0.0" conventional-recommended-bump@^6.1.0: version "6.1.0" @@ -9752,18 +10293,18 @@ conventional-recommended-bump@^6.1.0: q "^1.5.1" convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + version "1.8.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" cookie-parser@^1.4.5: - version "1.4.5" - resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49" - integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw== + version "1.4.6" + resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" + integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== dependencies: - cookie "0.4.0" + cookie "0.4.1" cookie-signature "1.0.6" cookie-signature@1.0.6: @@ -9771,11 +10312,6 @@ cookie-signature@1.0.6: resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - cookie@0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" @@ -9803,10 +10339,10 @@ copy-to-clipboard@^3, copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.20.0, core-js-compat@^3.20.2: - version "3.20.3" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz#d71f85f94eb5e4bea3407412e549daa083d23bd6" - integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw== +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.21.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" + integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== dependencies: browserslist "^4.19.1" semver "7.0.0" @@ -9826,11 +10362,16 @@ core-js@^3.4.1, core-js@^3.6.5: resolved "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cors@^2.8.5: version "2.8.5" resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -9887,30 +10428,30 @@ cpu-features@0.0.2: nan "^2.14.1" crc-32@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" - integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + version "1.2.1" + resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz#436d2bcaad27bcb6bd073a2587139d3024a16460" + integrity sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w== dependencies: exit-on-epipe "~1.0.1" - printj "~1.1.0" + printj "~1.3.1" -crc32-stream@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.1.tgz#0f047d74041737f8a55e86837a1b826bd8ab0067" - integrity sha512-FN5V+weeO/8JaXsamelVYO1PHyeCsuL3HcG4cqsj0ceARcocxalaShCsohZMSAF+db7UYFwBy1rARK/0oFItUw== +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== dependencies: crc-32 "^1.2.0" readable-stream "^3.4.0" create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + version "4.0.4" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" - elliptic "^6.0.0" + elliptic "^6.5.3" -create-hash@^1.1.0, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -9921,7 +10462,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -9969,7 +10510,7 @@ cross-fetch@3.1.4: dependencies: node-fetch "2.6.1" -cross-fetch@3.1.5, cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.3, cross-fetch@^3.1.5: +cross-fetch@3.1.5, cross-fetch@^3.0.6, cross-fetch@^3.1.3, cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -10005,20 +10546,10 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cross-undici-fetch@^0.0.20: - version "0.0.20" - resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.0.20.tgz#6b7c5ac82a3601edd439f37275ac0319d77a120a" - integrity sha512-5d3WBC4VRHpFndECK9bx4TngXrw0OUXdhX561Ty1ZoqMASz9uf55BblhTC1CO6GhMWnvk9SOqYEXQliq6D2P4A== - dependencies: - abort-controller "^3.0.0" - form-data "^4.0.0" - node-fetch "^2.6.5" - undici "^4.9.3" - -cross-undici-fetch@^0.1.4: - version "0.1.25" - resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.25.tgz#8c6826dd0ffbb45fcb1a554be5984e0eaef7f3ba" - integrity sha512-KS6hm/VuRO+3jIrg4uidz3mQ8NWvCbiTTOg3yoH30zuGVUvjqZlnXw66h0kuzyfP21hDkrdIbufXCW6BAQdSNw== +cross-undici-fetch@^0.1.19: + version "0.1.24" + resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.24.tgz#2ad23d096ba07cfa1260b1aeb9a78d2132ea3385" + integrity sha512-83KDV6+8pYCn51zSM2cFAwqQ5UQtDaPm89RkUwHxEMDq/cdqYgqo1q+2eM/Xhmd8HeAsGTtecsC4crrQkCn0zg== dependencies: abort-controller "^3.0.0" form-data-encoder "^1.7.1" @@ -10066,9 +10597,9 @@ css-color-converter@^2.0.0: css-unit-converter "^1.1.2" css-declaration-sorter@^6.0.3: - version "6.1.3" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" - integrity sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA== + version "6.1.4" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz#b9bfb4ed9a41f8dcca9bf7184d849ea94a8294b4" + integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw== dependencies: timsort "^0.3.0" @@ -10094,16 +10625,39 @@ css-loader@^6.5.1: postcss-value-parser "^4.2.0" semver "^7.3.5" -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== dependencies: boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.2.1" + resolved "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" + integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + dependencies: + boolbase "^1.0.0" + css-what "^5.1.0" + domhandler "^4.3.0" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" @@ -10126,7 +10680,12 @@ css-vendor@^2.0.8: "@babel/runtime" "^7.8.3" is-in-browser "^1.0.2" -css-what@^5.0.0: +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== @@ -10155,57 +10714,56 @@ cssfilter@0.0.10: resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= -cssnano-preset-default@^5.1.7: - version "5.1.7" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.7.tgz#68c3ad1ec6a810482ec7d06b2d70fc34b6b0d70c" - integrity sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA== +cssnano-preset-default@^5.1.12: + version "5.1.12" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz#64e2ad8e27a279e1413d2d2383ef89a41c909be9" + integrity sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w== dependencies: css-declaration-sorter "^6.0.3" - cssnano-utils "^2.0.1" - postcss-calc "^8.0.0" - postcss-colormin "^5.2.1" - postcss-convert-values "^5.0.2" - postcss-discard-comments "^5.0.1" - postcss-discard-duplicates "^5.0.1" - postcss-discard-empty "^5.0.1" - postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.4" - postcss-merge-rules "^5.0.3" - postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.3" - postcss-minify-params "^5.0.2" - postcss-minify-selectors "^5.1.0" - postcss-normalize-charset "^5.0.1" - postcss-normalize-display-values "^5.0.1" - postcss-normalize-positions "^5.0.1" - postcss-normalize-repeat-style "^5.0.1" - postcss-normalize-string "^5.0.1" - postcss-normalize-timing-functions "^5.0.1" - postcss-normalize-unicode "^5.0.1" - postcss-normalize-url "^5.0.3" - postcss-normalize-whitespace "^5.0.1" - postcss-ordered-values "^5.0.2" - postcss-reduce-initial "^5.0.1" - postcss-reduce-transforms "^5.0.1" - postcss-svgo "^5.0.3" - postcss-unique-selectors "^5.0.2" + cssnano-utils "^3.0.2" + postcss-calc "^8.2.0" + postcss-colormin "^5.2.5" + postcss-convert-values "^5.0.4" + postcss-discard-comments "^5.0.3" + postcss-discard-duplicates "^5.0.3" + postcss-discard-empty "^5.0.3" + postcss-discard-overridden "^5.0.4" + postcss-merge-longhand "^5.0.6" + postcss-merge-rules "^5.0.6" + postcss-minify-font-values "^5.0.4" + postcss-minify-gradients "^5.0.6" + postcss-minify-params "^5.0.5" + postcss-minify-selectors "^5.1.3" + postcss-normalize-charset "^5.0.3" + postcss-normalize-display-values "^5.0.3" + postcss-normalize-positions "^5.0.4" + postcss-normalize-repeat-style "^5.0.4" + postcss-normalize-string "^5.0.4" + postcss-normalize-timing-functions "^5.0.3" + postcss-normalize-unicode "^5.0.4" + postcss-normalize-url "^5.0.5" + postcss-normalize-whitespace "^5.0.4" + postcss-ordered-values "^5.0.5" + postcss-reduce-initial "^5.0.3" + postcss-reduce-transforms "^5.0.4" + postcss-svgo "^5.0.4" + postcss-unique-selectors "^5.0.4" -cssnano-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" - integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== +cssnano-utils@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz#d82b4991a27ba6fec644b39bab35fe027137f516" + integrity sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ== cssnano@^5.0.1: - version "5.0.11" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-5.0.11.tgz#743397a05e04cb87e9df44b7659850adfafc3646" - integrity sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg== + version "5.0.17" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz#ff45713c05cfc780a1aeb3e663b6f224d091cabf" + integrity sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw== dependencies: - cssnano-preset-default "^5.1.7" - is-resolvable "^1.1.0" + cssnano-preset-default "^5.1.12" lilconfig "^2.0.3" yaml "^1.10.2" -csso@^4.2.0: +csso@^4.0.2, csso@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== @@ -10229,40 +10787,40 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@^2.5.2, csstype@^2.6.7: - version "2.6.17" - resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" - integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== +csstype@^2.5.2: + version "2.6.19" + resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz#feeb5aae89020bb389e1f63669a5ed490e391caa" + integrity sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ== csstype@^3.0.2, csstype@^3.0.6: - version "3.0.7" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" - integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== + version "3.0.10" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" + integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== -csv-generate@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.4.tgz#440dab9177339ee0676c9e5c16f50e2b3463c019" - integrity sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA== +csv-generate@^3.4.3: + version "3.4.3" + resolved "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.3.tgz#bc42d943b45aea52afa896874291da4b9108ffff" + integrity sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw== -csv-parse@^4.8.8: - version "4.12.0" - resolved "https://registry.npmjs.org/csv-parse/-/csv-parse-4.12.0.tgz#fd42d6291bbaadd51d3009f6cadbb3e53b4ce026" - integrity sha512-wPQl3H79vWLPI8cgKFcQXl0NBgYYEqVnT1i6/So7OjMpsI540oD7p93r3w6fDSyPvwkTepG05F69/7AViX2lXg== +csv-parse@^4.16.3: + version "4.16.3" + resolved "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz#7ca624d517212ebc520a36873c3478fa66efbaf7" + integrity sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg== -csv-stringify@^5.3.6: - version "5.5.1" - resolved "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.5.1.tgz#f42cdd379b0f7f142933a11f674b1a91ebd0fcd0" - integrity sha512-HM0/86Ks8OwFbaYLd495tqTs1NhscZL52dC4ieKYumy8+nawQYC0xZ63w1NqLf0M148T2YLYqowoImc1giPn0g== +csv-stringify@^5.6.5: + version "5.6.5" + resolved "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00" + integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== csv@^5.3.1: - version "5.3.2" - resolved "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz#50b344e25dfbb8c62684a1bcec18c22468b2161e" - integrity sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ== + version "5.5.3" + resolved "https://registry.npmjs.org/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d" + integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== dependencies: - csv-generate "^3.2.4" - csv-parse "^4.8.8" - csv-stringify "^5.3.6" - stream-transform "^2.0.1" + csv-generate "^3.4.3" + csv-parse "^4.16.3" + csv-stringify "^5.6.5" + stream-transform "^2.1.3" cypress-plugin-snapshots@^1.4.4: version "1.4.4" @@ -10564,9 +11122,9 @@ dagre@^0.8.5: lodash "^4.17.15" damerau-levenshtein@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" - integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== + version "1.0.8" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== dargs@^7.0.0: version "7.0.0" @@ -10594,10 +11152,10 @@ dataloader@2.0.0, dataloader@^2.0.0: resolved "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz#41eaf123db115987e21ca93c005cd7753c55fe6f" integrity sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ== -date-and-time@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/date-and-time/-/date-and-time-1.0.0.tgz#0062394bdf6f44e961f0db00511cb19cdf3cc0a5" - integrity sha512-477D7ypIiqlXBkxhU7YtG9wWZJEQ+RUpujt2quTfgf4+E8g5fNUkB0QIL0bVyP5/TKBg8y55Hfa1R/c4bt3dEw== +date-and-time@^2.0.0: + version "2.1.2" + resolved "https://registry.npmjs.org/date-and-time/-/date-and-time-2.1.2.tgz#5b0e71296bbdd66ff1ce0e456c77d40f1479db5a" + integrity sha512-YlQUtuqYGPR58I7jzx4TIjknN9wCKjwewiylIp+P4xMuO23mlZje3Qe9gYCKp/6ncbeNpU8ZnPdhQNZnVphveQ== date-fns@^1.27.2: version "1.30.1" @@ -10605,9 +11163,9 @@ date-fns@^1.27.2: integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== date-fns@^2.16.1, date-fns@^2.18.0: - version "2.19.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.19.0.tgz#65193348635a28d5d916c43ec7ce6fbd145059e1" - integrity sha512-X3bf2iTPgCAQp9wvjOQytnf5vO5rESYRXlPIVcgSbtT5OTScPcsf9eZU+B/YIkKAtYr5WeCii58BgATrNitlWg== + version "2.28.0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" + integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== dateformat@^3.0.0, dateformat@^3.0.3: version "3.0.3" @@ -10615,19 +11173,19 @@ dateformat@^3.0.0, dateformat@^3.0.3: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dateformat@^4.5.0: - version "4.5.1" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz#c20e7a9ca77d147906b6dc2261a8be0a5bd2173c" - integrity sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q== + version "4.6.3" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== dayjs@^1.10.4: - version "1.10.4" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" - integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== + version "1.10.7" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" + integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== debounce@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" - integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== + version "1.2.1" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" @@ -10690,9 +11248,9 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decimal.js-light@^2.4.1: - version "2.5.0" - resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.0.tgz#ca7faf504c799326df94b0ab920424fdfc125348" - integrity sha512-b3VJCbd2hwUpeRGG3Toob+CRo8W22xplipNhP3tN7TSVB/cyMX71P1vM2Xjc9H74uV6dS2hDDmo/rHq8L87Upg== + version "2.5.1" + resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" + integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== decimal.js@^10.2.1: version "10.3.1" @@ -10755,9 +11313,9 @@ deep-extend@0.6.0, deep-extend@^0.6.0: integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2, deepmerge@~4.2.2: version "4.2.2" @@ -10784,9 +11342,9 @@ defer-to-connect@^1.0.1: integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== defer-to-connect@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" - integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + version "2.0.1" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== define-lazy-prop@^2.0.0: version "2.0.0" @@ -10905,9 +11463,9 @@ detect-indent@^5.0.0: integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= detect-indent@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + version "6.1.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== detect-libc@^1.0.3: version "1.0.3" @@ -10924,12 +11482,7 @@ detect-newline@^3.0.0: resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -detect-node@^2.1.0: +detect-node@^2.0.4, detect-node@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== @@ -10960,6 +11513,11 @@ diff-sequences@^26.6.2: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + diff2html@^2.7.0: version "2.12.2" resolved "https://registry.npmjs.org/diff2html/-/diff2html-2.12.2.tgz#356d35f9c87c42ebd11558bedf1c99c5b00886e8" @@ -11034,9 +11592,9 @@ dns-txt@^2.0.2: buffer-indexof "^1.0.0" docker-compose@^0.23.13: - version "0.23.13" - resolved "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.13.tgz#77d37bd05b6a966345f631e6d05e961c79514f06" - integrity sha512-/9fYC4g3AO+qsqxIZhmbVnFvJJPcYEV2yJbAPPXH+6AytU3urIY8lUAXOlvY8sl4u25pdKu1JrOfAmWC7lJDJg== + version "0.23.17" + resolved "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.17.tgz#8816bef82562d9417dc8c790aa4871350f93a2ba" + integrity sha512-YJV18YoYIcxOdJKeFcCFihE6F4M2NExWM/d4S1ITcS9samHKnNUihz9kjggr0dNtsrbpFNc7/Yzd19DWs+m1xg== dependencies: yaml "^1.10.2" @@ -11073,9 +11631,9 @@ doctrine@^3.0.0: esutils "^2.0.2" dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: - version "0.5.13" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b" - integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw== + version "0.5.11" + resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz#79d5846c4f90eba3e617d9031e921de9324f84ed" + integrity sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw== dom-converter@^0.2.0: version "0.2.0" @@ -11092,32 +11650,45 @@ dom-helpers@^3.4.0: "@babel/runtime" "^7.1.2" dom-helpers@^5.0.1: - version "5.1.4" - resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz#4609680ab5c79a45f2531441f1949b79d6587f4b" - integrity sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A== + version "5.2.1" + resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== dependencies: "@babel/runtime" "^7.8.7" - csstype "^2.6.7" + csstype "^3.0.2" -dom-serializer@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" - integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== +dom-serializer@0: + version "0.2.2" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: domelementtype "^2.0.1" - domhandler "^4.0.0" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" entities "^2.0.0" dom-walk@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" - integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= + version "0.1.2" + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== +domelementtype@1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" @@ -11130,7 +11701,7 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domhandler@^4.0.0, domhandler@^4.2.0: +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== @@ -11147,7 +11718,15 @@ dompurify@^2.2.7, dompurify@^2.2.9, dompurify@^2.3.6: resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.3.6.tgz#2e019d7d7617aacac07cbbe3d88ae3ad354cf875" integrity sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg== -domutils@^2.5.2, domutils@^2.6.0: +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -11184,9 +11763,9 @@ dotenv@^10.0.0: integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== dset@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/dset/-/dset-3.1.0.tgz#23feb6df93816ea452566308b1374d6e869b0d7b" - integrity sha512-7xTQ5DzyE59Nn+7ZgXDXjKAGSGmXZHqttMVVz1r4QNfmGpyj+cm2YtI3II0c/+4zS4a9yq2mBhgdeq2QnpcYlw== + version "3.1.1" + resolved "https://registry.npmjs.org/dset/-/dset-3.1.1.tgz#07de5af7a8d03eab337ad1a8ba77fe17bba61a8c" + integrity sha512-hYf+jZNNqJBD2GiMYb+5mqOIX4R4RRHXU3qWMWYN+rqcR2/YpRL2bUHr8C8fU+5DNvqYjJ8YvMGSLuVPWU1cNg== duplexer2@~0.1.4: version "0.1.4" @@ -11200,20 +11779,15 @@ duplexer3@^0.1.4: resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -duplexer@^0.1.1, duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -duplexer@^0.1.2: +duplexer@^0.1.1, duplexer@^0.1.2, duplexer@~0.1.1: version "0.1.2" resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== duplexify@^4.0.0, duplexify@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" - integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== + version "4.1.2" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== dependencies: end-of-stream "^1.4.1" inherits "^2.0.3" @@ -11267,17 +11841,17 @@ elastic-builder@^2.16.0: lodash.isstring "^4.0.1" lodash.omit "^4.5.0" -electron-to-chromium@^1.4.17: - version "1.4.35" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.35.tgz#69aabb73d7030733e71c1e970ec16f5ceefbaea4" - integrity sha512-wzTOMh6HGFWeALMI3bif0mzgRrVGyP1BdFRx7IvWukFrSC5QVQELENuy+Fm2dCrAdQH9T3nuqr07n94nPDFBWA== +electron-to-chromium@^1.4.71: + version "1.4.71" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6" + integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw== elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -elliptic@^6.0.0: +elliptic@^6.5.3: version "6.5.4" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -11291,14 +11865,9 @@ elliptic@^6.0.0: minimalistic-crypto-utils "^1.0.1" emittery@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" - integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + version "0.7.2" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== emoji-regex@^8.0.0: version "8.0.0" @@ -11399,25 +11968,30 @@ ent@^2.2.0: resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= -entities@^2.0.0, entities@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== entities@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + version "2.2.1" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== envinfo@^7.7.4: - version "7.7.4" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" - integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== + version "7.8.1" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== eol@^0.9.1: version "0.9.1" @@ -11437,9 +12011,9 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" error-stack-parser@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" - integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + version "2.0.7" + resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57" + integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA== dependencies: stackframe "^1.1.1" @@ -11448,7 +12022,7 @@ error@^10.4.0: resolved "https://registry.npmjs.org/error/-/error-10.4.0.tgz#6fcf0fd64bceb1e750f8ed9a3dd880f00e46a487" integrity sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw== -es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.1: +es-abstract@^1.17.2, es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -11474,7 +12048,7 @@ es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-module-lexer@^0.9.0: +es-module-lexer@^0.9.0, es-module-lexer@^0.9.3: version "0.9.3" resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== @@ -11488,75 +12062,70 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz#b868bbd9955a92309c69df628d8dd1945478b45c" - integrity sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ== +esbuild-android-arm64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.23.tgz#c89b3c50b4f47668dcbeb0b34ee4615258818e71" + integrity sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw== -esbuild-android-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz#e7d6430555e8e9c505fd87266bbc709f25f1825c" - integrity sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ== +esbuild-darwin-64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.23.tgz#1c131e8cb133ed935ca32f824349a117c896a15b" + integrity sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug== -esbuild-darwin-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz#4dc7484127564e89b4445c0a560a3cb50b3d68e1" - integrity sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g== +esbuild-darwin-arm64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.23.tgz#3c6245a50109dd84953f53d7833bd3b4f0e8c6fa" + integrity sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw== -esbuild-darwin-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz#469e59c665f84a8ed323166624c5e7b9b2d22ac1" - integrity sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ== +esbuild-freebsd-64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.23.tgz#0cdc54e72d3dd9cd992f9c2960055e68a7f8650c" + integrity sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA== -esbuild-freebsd-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz#895df03bf5f87094a56c9a5815bf92e591903d70" - integrity sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA== +esbuild-freebsd-arm64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.23.tgz#1d11faed3a0c429e99b7dddef84103eb509788b2" + integrity sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg== -esbuild-freebsd-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz#0b72a41a6b8655e9a8c5608f2ec1afdcf6958441" - integrity sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA== +esbuild-linux-32@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.23.tgz#fd9f033fc27dcab61100cb1eb1c936893a68c841" + integrity sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ== -esbuild-linux-32@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz#43b8ba3803b0bbe7f051869c6a8bf6de1e95de28" - integrity sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw== +esbuild-linux-64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.23.tgz#c04c438514f1359ecb1529205d0c836d4165f198" + integrity sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ== -esbuild-linux-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz#dc8072097327ecfadba1735562824ce8c05dd0bd" - integrity sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg== +esbuild-linux-arm64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.23.tgz#d1b3ab2988ab0734886eb9e811726f7db099ab96" + integrity sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g== -esbuild-linux-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz#c52b58cbe948426b1559910f521b0a3f396f10b8" - integrity sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ== +esbuild-linux-arm@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.23.tgz#df7558b6a5076f5eb9fd387c8704f768b61d97fb" + integrity sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw== -esbuild-linux-arm@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz#df869dbd67d4ee3a04b3c7273b6bd2b233e78a18" - integrity sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw== +esbuild-linux-mips64le@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.23.tgz#bb4c47fccc9493d460ffeb1f88e8a97a98a14f8b" + integrity sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw== -esbuild-linux-mips64le@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz#a2b646d9df368b01aa970a7b8968be6dd6b01d19" - integrity sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A== +esbuild-linux-ppc64le@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.23.tgz#a332dbc8a1b4e30cfe1261bfaa5cef57c9c8c02a" + integrity sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag== -esbuild-linux-ppc64le@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz#9a21af766a0292578a3009c7408b8509cac7cefd" - integrity sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA== +esbuild-linux-riscv64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.23.tgz#85675f3f931f5cd7cfb238fd82f77a62ffcb6d86" + integrity sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg== -esbuild-linux-riscv64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz#344a27f91568056a5903ad5841b447e00e78d740" - integrity sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg== - -esbuild-linux-s390x@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz#73a7309bd648a07ef58f069658f989a5096130db" - integrity sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg== +esbuild-linux-s390x@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.23.tgz#a526282a696e6d846f4c628f5315475518c0c0f0" + integrity sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA== esbuild-loader@^2.18.0: version "2.18.0" @@ -11570,61 +12139,60 @@ esbuild-loader@^2.18.0: tapable "^2.2.0" webpack-sources "^2.2.0" -esbuild-netbsd-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz#482a587cdbd18a6c264a05136596927deb46c30a" - integrity sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q== +esbuild-netbsd-64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.23.tgz#8e456605694719aa1be4be266d6cd569c06dfaf5" + integrity sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g== -esbuild-openbsd-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz#e99f8cdc63f1628747b63edd124d53cf7796468d" - integrity sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw== +esbuild-openbsd-64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.23.tgz#f2fc51714b4ddabc86e4eb30ca101dd325db2f7d" + integrity sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA== -esbuild-sunos-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz#8611d825bcb8239c78d57452e83253a71942f45c" - integrity sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg== +esbuild-sunos-64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.23.tgz#a408f33ea20e215909e20173a0fd78b1aaad1f8e" + integrity sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g== -esbuild-windows-32@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz#c06374206d4d92dd31d4fda299b09f51a35e82f6" - integrity sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw== +esbuild-windows-32@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.23.tgz#b9005bbff54dac3975ff355d5de2b5e37165d128" + integrity sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA== -esbuild-windows-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz#756631c1d301dfc0d1a887deed2459ce4079582f" - integrity sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg== +esbuild-windows-64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.23.tgz#2b5a99befeaca6aefdad32d738b945730a60a060" + integrity sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g== -esbuild-windows-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz#ad7e187193dcd18768b16065a950f4441d7173f4" - integrity sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg== +esbuild-windows-arm64@0.14.23: + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.23.tgz#edc560bbadb097eb45fc235aeacb942cb94a38c0" + integrity sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw== esbuild@^0.14.1, esbuild@^0.14.10, esbuild@^0.14.6: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz#41fe0f1b6b68b9f77cac025009bc54bb96e616f1" - integrity sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q== + version "0.14.23" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz#95e842cb22bc0c7d82c140adc16788aac91469fe" + integrity sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig== optionalDependencies: - esbuild-android-64 "0.14.27" - esbuild-android-arm64 "0.14.27" - esbuild-darwin-64 "0.14.27" - esbuild-darwin-arm64 "0.14.27" - esbuild-freebsd-64 "0.14.27" - esbuild-freebsd-arm64 "0.14.27" - esbuild-linux-32 "0.14.27" - esbuild-linux-64 "0.14.27" - esbuild-linux-arm "0.14.27" - esbuild-linux-arm64 "0.14.27" - esbuild-linux-mips64le "0.14.27" - esbuild-linux-ppc64le "0.14.27" - esbuild-linux-riscv64 "0.14.27" - esbuild-linux-s390x "0.14.27" - esbuild-netbsd-64 "0.14.27" - esbuild-openbsd-64 "0.14.27" - esbuild-sunos-64 "0.14.27" - esbuild-windows-32 "0.14.27" - esbuild-windows-64 "0.14.27" - esbuild-windows-arm64 "0.14.27" + esbuild-android-arm64 "0.14.23" + esbuild-darwin-64 "0.14.23" + esbuild-darwin-arm64 "0.14.23" + esbuild-freebsd-64 "0.14.23" + esbuild-freebsd-arm64 "0.14.23" + esbuild-linux-32 "0.14.23" + esbuild-linux-64 "0.14.23" + esbuild-linux-arm "0.14.23" + esbuild-linux-arm64 "0.14.23" + esbuild-linux-mips64le "0.14.23" + esbuild-linux-ppc64le "0.14.23" + esbuild-linux-riscv64 "0.14.23" + esbuild-linux-s390x "0.14.23" + esbuild-netbsd-64 "0.14.23" + esbuild-openbsd-64 "0.14.23" + esbuild-sunos-64 "0.14.23" + esbuild-windows-32 "0.14.23" + esbuild-windows-64 "0.14.23" + esbuild-windows-arm64 "0.14.23" escalade@^3.1.1: version "3.1.1" @@ -11674,9 +12242,9 @@ escodegen@^2.0.0: source-map "~0.6.1" eslint-config-prettier@^8.3.0: - version "8.5.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + version "8.4.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.4.0.tgz#8e6d17c7436649e98c4c2189868562921ef563de" + integrity sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw== eslint-formatter-friendly@^7.0.0: version "7.0.0" @@ -11750,6 +12318,13 @@ eslint-plugin-import@^2.25.4: resolve "^1.20.0" tsconfig-paths "^3.12.0" +eslint-plugin-jest@^25.3.4: + version "25.7.0" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" + integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== + dependencies: + "@typescript-eslint/experimental-utils" "^5.0.0" + eslint-plugin-jest@^26.1.2: version "26.1.2" resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.1.2.tgz#0f1a15c62889fffc3f78a773749d672f1bedb15f" @@ -11846,15 +12421,27 @@ eslint-utils@^3.0.0: eslint-visitor-keys "^2.0.0" eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-webpack-plugin@^2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.6.0.tgz#3bd4ada4e539cb1f6687d2f619073dbb509361cd" + integrity sha512-V+LPY/T3kur5QO3u+1s34VDTcRxjXWPUGM4hlmTb5DwVD0OQz631yGTxJZf4SpAqAjdbBVe978S8BJeHpAdOhQ== + dependencies: + "@types/eslint" "^7.28.2" + arrify "^2.0.1" + jest-worker "^27.3.1" + micromatch "^4.0.4" + normalize-path "^3.0.0" + schema-utils "^3.1.1" + eslint-webpack-plugin@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz#83dad2395e5f572d6f4d919eedaa9cf902890fcb" @@ -11867,11 +12454,11 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^3.1.1" eslint@^8.6.0: - version "8.11.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" - integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== + version "8.9.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz#a2a8227a99599adc4342fd9b854cb8d8d6412fdb" + integrity sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q== dependencies: - "@eslint/eslintrc" "^1.2.1" + "@eslint/eslintrc" "^1.1.0" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -11961,9 +12548,9 @@ estree-walker@^1.0.1: integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== estree-walker@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz#f8e030fb21cefa183b44b7ad516b747434e7a3e0" - integrity sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg== + version "2.0.2" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" @@ -12102,9 +12689,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: zen-observable "^0.8.15" exec-sh@^0.3.2: - version "0.3.4" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" - integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + version "0.3.6" + resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== execa@4.1.0, execa@^4.0.0: version "4.1.0" @@ -12365,9 +12952,9 @@ extsprintf@1.3.0: integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + version "1.4.1" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-decode-uri-component@^1.0.1: version "1.0.1" @@ -12384,17 +12971,16 @@ fast-equals@^2.0.0: resolved "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.4.tgz#3add9410585e2d7364c2deeb6a707beadb24b927" integrity sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w== -fast-glob@^3.1.1: - version "3.2.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" - integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== +fast-glob@^3.1.1, fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" + glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" + micromatch "^4.0.4" fast-json-parse@^1.0.3: version "1.0.3" @@ -12402,9 +12988,9 @@ fast-json-parse@^1.0.3: integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== fast-json-patch@^3.0.0-1: - version "3.0.0-1" - resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.0.0-1.tgz#4c68f2e7acfbab6d29d1719c44be51899c93dabb" - integrity sha512-6pdFb07cknxvPzCeLsFHStEy+MysPJPgZQ9LbQ/2O67unQF93SNqfdSqnPPl71YMHX+AD8gbl7iuoGFzHEdDuw== + version "3.1.0" + resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz#ec8cd9b9c4c564250ec8b9140ef7a55f70acaee6" + integrity sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA== fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" @@ -12449,9 +13035,9 @@ fastest-stable-stringify@^2.0.2: integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== fastq@^1.6.0: - version "1.6.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791" - integrity sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw== + version "1.13.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" @@ -12463,9 +13049,9 @@ fault@^1.0.0: format "^0.2.0" faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + version "0.11.4" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" @@ -12482,17 +13068,17 @@ fbjs-css-vars@^1.0.0: integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== fbjs@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165" - integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg== + version "3.0.4" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" + integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== dependencies: - cross-fetch "^3.0.4" + cross-fetch "^3.1.5" fbjs-css-vars "^1.0.0" loose-envify "^1.0.0" object-assign "^4.1.0" promise "^7.1.1" setimmediate "^1.0.5" - ua-parser-js "^0.7.18" + ua-parser-js "^0.7.30" fd-slicer@~1.1.0: version "1.1.0" @@ -12502,9 +13088,9 @@ fd-slicer@~1.1.0: pend "~1.2.0" fecha@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" - integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== + version "4.2.1" + resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" + integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== figures@^1.7.0: version "1.7.0" @@ -12562,9 +13148,9 @@ filelist@^1.0.1: minimatch "^3.0.4" filesize@^8.0.6: - version "8.0.6" - resolved "https://registry.npmjs.org/filesize/-/filesize-8.0.6.tgz#5f0c27aa1b507fa7d9f72c912a774ca6a44111b1" - integrity sha512-sHvRqTiwdmcuzqet7iVwsbwF6UrV3wIgDf2SHNdY1Hgl8PC45HZg/0xtdw6U2izIV4lccnrY9ftl6wZFNdjYMg== + version "8.0.7" + resolved "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== fill-range@^4.0.0: version "4.0.0" @@ -12701,14 +13287,14 @@ flatstr@^1.0.12: integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + version "3.2.5" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== flow-parser@0.*: - version "0.152.0" - resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.152.0.tgz#a627aec1fdcfa243e2016469e44284a98169b996" - integrity sha512-qRXGE3ztuhyI2ovi4Ixwq7/GUYvKX9wmFdwBof2q5pWHteuveexFrlbwZxSonC0dWz2znA6sW+vce4RXgYLnnQ== + version "0.172.0" + resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.172.0.tgz#9f5ee62ebf6bad689d5de0b6b98445d8cf030a2f" + integrity sha512-WWqgvuJgD9Y1n2su9D73m0g5kQ4XVl8Dwk6DeW5V6bjt4XMtVLzSHg35s3iiZOvShY+7w7l8FzlK81PGXRcIYQ== fn.name@1.x.x: version "1.1.0" @@ -12716,9 +13302,9 @@ fn.name@1.x.x: integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== follow-redirects@^1.0.0, follow-redirects@^1.14.0: - version "1.14.8" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== + version "1.14.9" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== for-in@^1.0.2: version "1.0.2" @@ -12795,9 +13381,9 @@ form-data@^2.3.2, form-data@^2.5.0: mime-types "^2.1.12" form-data@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + version "3.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -12817,15 +13403,7 @@ format@^0.2.0: resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= -formdata-node@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.0.tgz#77be2add9092cbd1e1f4d35bc3293a89be117a04" - integrity sha512-TwqhWUZd2jB5l0kUhhcy1XYNsXq46NH6k60zmiu7xsxMztul+cCMuPSAQrSDV62zznhBKJdA9O+zeWj5i5Pbfg== - dependencies: - node-domexception "1.0.0" - web-streams-polyfill "4.0.0-beta.1" - -formdata-node@^4.3.1: +formdata-node@^4.0.0, formdata-node@^4.3.1: version "4.3.2" resolved "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.2.tgz#0262e94931e36db7239c2b08bdb6aaf18ec47d21" integrity sha512-k7lYJyzDOSL6h917favP8j1L0/wNyylzU+x+1w4p5haGVHNlP58dbpdJhiCUsDbWsa9HwEtLp89obQgXl2e0qg== @@ -12892,6 +13470,16 @@ fs-extra@10.0.1, fs-extra@^10.0.0, fs-extra@^10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^7.0.1, fs-extra@~7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -12910,16 +13498,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -12985,9 +13563,9 @@ gauge@^3.0.0: wide-align "^1.1.2" gauge@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz#afba07aa0374a93c6219603b1fb83eaa2264d8f8" - integrity sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw== + version "4.0.1" + resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.1.tgz#82984bc08c90357d60b0a46c03a296beb1affec4" + integrity sha512-zJ4jePUHR8cceduZ53b6temRalyGpkC2Kc2r3ecNphmL+uWNoJ3YcOcUjpbG6WwoE/Ef6/+aEZz63neI2WIa1Q== dependencies: ansi-regex "^5.0.1" aproba "^1.0.3 || ^2.0.0" @@ -13014,37 +13592,24 @@ gauge@~2.7.3: wide-align "^1.1.0" gaxios@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/gaxios/-/gaxios-4.0.1.tgz#bc7b205a89d883452822cc75e138620c35e3291e" - integrity sha512-jOin8xRZ/UytQeBpSXFqIzqU7Fi5TqgPNLlUsSB8kjJ76+FiGBfImF8KJu++c6J4jOldfJUtt0YmkRj2ZpSHTQ== + version "4.3.2" + resolved "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz#845827c2dc25a0213c8ab4155c7a28910f5be83f" + integrity sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q== dependencies: abort-controller "^3.0.0" extend "^3.0.2" https-proxy-agent "^5.0.0" is-stream "^2.0.0" - node-fetch "^2.3.0" + node-fetch "^2.6.1" gcp-metadata@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz#31849fbcf9025ef34c2297c32a89a1e7e9f2cd62" - integrity sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw== + version "4.3.1" + resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" + integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== dependencies: gaxios "^4.0.0" json-bigint "^1.0.0" -gcs-resumable-upload@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-3.3.0.tgz#d1a866173f9b47e045d4406cafaa658dbb01e624" - integrity sha512-MQKWi+9hOSTyg5/SI1NBW4gAjL1wlkoevHefvr1PCBBXH4uKYLsug5qRrcotWKolDPLfWS51cWaHRN0CTtQNZw== - dependencies: - abort-controller "^3.0.0" - configstore "^5.0.0" - extend "^3.0.2" - gaxios "^4.0.0" - google-auth-library "^7.0.0" - pumpify "^2.0.0" - stream-events "^1.0.4" - generate-function@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" @@ -13052,12 +13617,12 @@ generate-function@^2.3.1: dependencies: is-property "^1.0.2" -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== +generic-names@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" + integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== dependencies: - loader-utils "^1.1.0" + loader-utils "^3.2.0" gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -13091,6 +13656,11 @@ get-monorepo-packages@^1.1.0: globby "^7.1.1" load-json-file "^4.0.0" +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-pkg-repo@^4.0.0: version "4.2.1" resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" @@ -13119,16 +13689,16 @@ get-stream@^4.0.0, get-stream@^4.1.0: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + version "5.2.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" - integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" @@ -13163,9 +13733,9 @@ getpass@^0.1.1: assert-plus "^1.0.0" git-raw-commits@^2.0.8: - version "2.0.10" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" - integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== + version "2.0.11" + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== dependencies: dargs "^7.0.0" lodash "^4.17.15" @@ -13190,12 +13760,12 @@ git-semver-tags@^4.1.1: semver "^6.0.0" git-up@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" - integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== + version "4.0.5" + resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" + integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== dependencies: is-ssh "^1.3.0" - parse-url "^5.0.0" + parse-url "^6.0.0" git-url-parse@^11.4.4, git-url-parse@^11.6.0: version "11.6.0" @@ -13216,7 +13786,7 @@ github-from-package@0.0.0: resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= -glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.2: +glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -13296,9 +13866,9 @@ globals@^11.1.0, globals@^11.12.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.9.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" - integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== + version "13.12.1" + resolved "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" + integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== dependencies: type-fest "^0.20.2" @@ -13315,15 +13885,15 @@ globby@11.0.3: slash "^3.0.0" globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@^11.0.3, globby@^11.0.4: - version "11.0.4" - resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" slash "^3.0.0" globby@^7.1.1: @@ -13338,10 +13908,10 @@ globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" -google-auth-library@^7.0.0, google-auth-library@^7.14.0, google-auth-library@^7.6.1: - version "7.14.0" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.0.tgz#9d6a20592f7b4d4c463cd3e93934c4b1711d5dc6" - integrity sha512-or8r7qUqGVI3W8lVSdPh0ZpeFyQHeE73g5c0p+bLNTTUFXJ+GSeDQmZRZ2p4H8cF/RJYa4PNvi/A1ar1uVNLFA== +google-auth-library@^7.0.0, google-auth-library@^7.6.1, google-auth-library@^7.9.2: + version "7.12.0" + resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.12.0.tgz#7965db6bc20cb31f2df05a08a296bbed6af69426" + integrity sha512-RS/whvFPMoF1hQNxnoVET3DWKPBt1Xgqe2rY0k+Jn7TNhoHlwdnSe7Rlcbo2Nub3Mt2lUVz26X65aDQrWp6x8w== dependencies: arrify "^2.0.0" base64-js "^1.3.0" @@ -13354,11 +13924,11 @@ google-auth-library@^7.0.0, google-auth-library@^7.14.0, google-auth-library@^7. lru-cache "^6.0.0" google-gax@^2.24.1: - version "2.28.1" - resolved "https://registry.npmjs.org/google-gax/-/google-gax-2.28.1.tgz#99bc234b5769d901d70959d40bd1651729eb4a34" - integrity sha512-2Xjd3FrjlVd6Cmw2B2Aicpc/q92SwTpIOvxPUlnRg9w+Do8nu7UR+eQrgoKlo2FIUcUuDTvppvcx8toND0pK9g== + version "2.29.7" + resolved "https://registry.npmjs.org/google-gax/-/google-gax-2.29.7.tgz#d238dad424f40f6809205dee3c7d4d6e61511e8b" + integrity sha512-yC0Q4OqX6s081jV72Idt9sxZnuRHOjg0SR0FFH15gT3LDE2u/78xqLjZwa3VuprBvaOLM29jzU19Vv4I7E8ETQ== dependencies: - "@grpc/grpc-js" "~1.4.0" + "@grpc/grpc-js" "~1.5.0" "@grpc/proto-loader" "^0.6.1" "@types/long" "^4.0.0" abort-controller "^3.0.0" @@ -13368,11 +13938,11 @@ google-gax@^2.24.1: is-stream-ended "^0.1.4" node-fetch "^2.6.1" object-hash "^2.1.1" - proto3-json-serializer "^0.1.5" + proto3-json-serializer "^0.1.8" protobufjs "6.11.2" retry-request "^4.0.0" -google-p12-pem@^3.0.3: +google-p12-pem@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz#5497998798ee86c2fc1f4bb1f92b7729baf37537" integrity sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ== @@ -13424,18 +13994,18 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12: - version "1.7.1" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.7.1.tgz#426afa0379c8d5424493fce69b678ee5c94e0e33" - integrity sha512-diEftHKsFtONUy90v1bZYgjCsJmRRVlnS72kYdv2lTETr1jgWN8V1nLepGl47xoQg8j0Bw9Er3v0wHnOdB5JxA== + version "1.5.20" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.5.20.tgz#6d85f7e921676cced881b1a2ea22caa211ed9c1d" + integrity sha512-cHXWN8W1npsQxY0N0hxfPzqWyP572Xiz04O1KANslS9uvlCaQ0YBfmUExRnPr85qI1a4s701wlkFwUViQHukoQ== dependencies: "@graphiql/toolkit" "^0.4.2" codemirror "^5.58.2" - codemirror-graphql "^1.2.13" + codemirror-graphql "^1.2.12" copy-to-clipboard "^3.2.0" dset "^3.1.0" entities "^2.0.0" escape-html "^1.0.3" - graphql-language-service "^5.0.0" + graphql-language-service "^4.1.5" markdown-it "^12.2.0" graphlib@^2.1.8: @@ -13446,15 +14016,15 @@ graphlib@^2.1.8: lodash "^4.17.15" graphql-config@^3.0.2: - version "3.3.0" - resolved "https://registry.npmjs.org/graphql-config/-/graphql-config-3.3.0.tgz#24c3672a427cb67c0c717ca3b9d70e9f0c9e752b" - integrity sha512-mSQIsPMssr7QrgqhnjI+CyVH6oQgCrgS6irHsTvwf7RFDRnR2k9kqpQOQgVoOytBSn0DOYryS0w0SAg9xor/Jw== + version "3.4.1" + resolved "https://registry.npmjs.org/graphql-config/-/graphql-config-3.4.1.tgz#59f937a1b4d3a3c2dcdb27ddf5b4d4d4b2c6e9e1" + integrity sha512-g9WyK4JZl1Ko++FSyE5Ir2g66njfxGzrDDhBOwnkoWf/t3TnnZG6BBkWP+pkqVJ5pqMJGPKHNrbew8jRxStjhw== dependencies: "@endemolshinegroup/cosmiconfig-typescript-loader" "3.0.2" "@graphql-tools/graphql-file-loader" "^6.0.0" "@graphql-tools/json-file-loader" "^6.0.0" "@graphql-tools/load" "^6.0.0" - "@graphql-tools/merge" "^6.0.0" + "@graphql-tools/merge" "6.0.0 - 6.2.14" "@graphql-tools/url-loader" "^6.0.0" "@graphql-tools/utils" "^7.0.0" cosmiconfig "7.0.0" @@ -13479,15 +14049,56 @@ graphql-config@^4.1.0: minimatch "3.0.4" string-env-interpolation "1.0.1" -graphql-language-service@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.0.0.tgz#52dad53135f06551eee4c4dc57057c61eb10c460" - integrity sha512-3tbJOApOJk8FQFVV+hKSs3gEWqqt3gQ5l3iEOUl7ofhyTmpRlbkYp+/dVLMF/p29iwZ5a8wqSXl+DDnHI6RMXQ== +graphql-executor@0.0.18: + version "0.0.18" + resolved "https://registry.npmjs.org/graphql-executor/-/graphql-executor-0.0.18.tgz#6aa4b39e1ca773e159c2a602621e90606df0109a" + integrity sha512-upUSl7tfZCZ5dWG1XkOvpG70Yk3duZKcCoi/uJso4WxJVT6KIrcK4nZ4+2X/hzx46pL8wAukgYHY6iNmocRN+g== + +graphql-language-service-interface@^2.10.2: + version "2.10.2" + resolved "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.10.2.tgz#de9386f699e446320256175e215cdc10ccf9f9b7" + integrity sha512-RKIEBPhRMWdXY3fxRs99XysTDnEgAvNbu8ov/5iOlnkZsWQNzitjtd0O0l1CutQOQt3iXoHde7w8uhCnKL4tcg== dependencies: graphql-config "^4.1.0" - nullthrows "^1.0.0" + graphql-language-service-parser "^1.10.4" + graphql-language-service-types "^1.8.7" + graphql-language-service-utils "^2.7.1" vscode-languageserver-types "^3.15.1" +graphql-language-service-parser@^1.10.4: + version "1.10.4" + resolved "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.10.4.tgz#b2979deefc5c0df571dacd409b2d5fbf1cdf7a9d" + integrity sha512-duDE+0aeKLFVrb9Kf28U84ZEHhHcvTjWIT6dJbIAQJWBaDoht0D4BK9EIhd94I3DtKRc1JCJb2+70y1lvP/hiA== + dependencies: + graphql-language-service-types "^1.8.7" + +graphql-language-service-types@^1.8.7: + version "1.8.7" + resolved "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-1.8.7.tgz#f5e909e6d9334ea2d8d1f7281b695b6f5602c07f" + integrity sha512-LP/Mx0nFBshYEyD0Ny6EVGfacJAGVx+qXtlJP4hLzUdBNOGimfDNtMVIdZANBXHXcM41MDgMHTnyEx2g6/Ttbw== + dependencies: + graphql-config "^4.1.0" + vscode-languageserver-types "^3.15.1" + +graphql-language-service-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-2.7.1.tgz#c97c8d744a761480aba7e03e4a42adf28b6fce39" + integrity sha512-Wci5MbrQj+6d7rfvbORrA9uDlfMysBWYaG49ST5TKylNaXYFf3ixFOa74iM1KtM9eidosUbI3E1JlWi0JaidJA== + dependencies: + "@types/json-schema" "7.0.9" + graphql-language-service-types "^1.8.7" + nullthrows "^1.0.0" + +graphql-language-service@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-4.1.5.tgz#26964e4fcc62e2d850f2b931bef03b91bdf9a6df" + integrity sha512-6vvZ+4L1xMNpQdlt6a9BaEzZD3ZIiaTmFdjKu81UTIVRh02QKfbW6tcz4UJNTY+4LsTWjR1rNtG3H4pVNrKJ2Q== + dependencies: + graphql-language-service-interface "^2.10.2" + graphql-language-service-parser "^1.10.4" + graphql-language-service-types "^1.8.7" + graphql-language-service-utils "^2.7.1" + graphql-modules@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/graphql-modules/-/graphql-modules-2.0.0.tgz#5f710d86eb7295da83769c8cd6d61a049d999800" @@ -13499,9 +14110,9 @@ graphql-modules@^2.0.0: ramda "^0.27.1" graphql-request@^3.3.0: - version "3.4.0" - resolved "https://registry.npmjs.org/graphql-request/-/graphql-request-3.4.0.tgz#3a400cd5511eb3c064b1873afb059196bbea9c2b" - integrity sha512-acrTzidSlwAj8wBNO7Q/UQHS8T+z5qRGquCQRv9J1InwR01BBWV9ObnoE+JS5nCCEj8wSGS0yrDXVDoRiKZuOg== + version "3.7.0" + resolved "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz#c7406e537084f8b9788541e3e6704340ca13055b" + integrity sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ== dependencies: cross-fetch "^3.0.6" extract-files "^9.0.0" @@ -13525,14 +14136,14 @@ graphql-type-json@^0.3.2: integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== graphql-ws@^4.4.1: - version "4.7.0" - resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.7.0.tgz#b323fbf35a3736eed85dac24c0054d6d10c93e62" - integrity sha512-Md8SsmC9ZlsogFPd3Ot8HbIAAqsHh8Xoq7j4AmcIat1Bh6k91tjVyQvA0Au1/BolXSYq+RDvib6rATU2Hcf1Xw== + version "4.9.0" + resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.9.0.tgz#5cfd8bb490b35e86583d8322f5d5d099c26e365c" + integrity sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag== graphql-ws@^5.4.1: - version "5.5.5" - resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.5.5.tgz#f375486d3f196e2a2527b503644693ae3a8670a9" - integrity sha512-hvyIS71vs4Tu/yUYHPvGXsTgo0t3arU820+lT5VjZS2go0ewp2LqyCgxEN56CzOG7Iys52eRhHBiD1gGRdiQtw== + version "5.6.0" + resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.6.0.tgz#8914d0c0a7be0cc3e8fd486ea8a148e500b2ff29" + integrity sha512-Kz/4z1u9yGKWMtzlvia9wW8AJGjx68OyCCV40dabYq1OeyUxgU9t8Ll43vLAje7TYiLwZSwGbvtHviHaPyGYxw== graphql@^15.5.1: version "15.8.0" @@ -13555,14 +14166,13 @@ growly@^1.3.0: integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= gtoken@^5.0.4: - version "5.1.0" - resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.1.0.tgz#4ba8d2fc9a8459098f76e7e8fd7beaa39fda9fe4" - integrity sha512-4d8N6Lk8TEAHl9vVoRVMh9BNOKWVgl2DdNtr3428O75r3QFrF/a5MMu851VmK0AA8+iSvbwRv69k5XnMLURGhg== + version "5.3.2" + resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" + integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== dependencies: gaxios "^4.0.0" - google-p12-pem "^3.0.3" + google-p12-pem "^3.1.3" jws "^4.0.0" - mime "^2.2.0" gzip-size@^6.0.0: version "6.0.0" @@ -13572,9 +14182,9 @@ gzip-size@^6.0.0: duplexer "^0.1.2" handle-thing@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" - integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + version "2.0.1" + resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== handlebars@^4.7.3, handlebars@^4.7.7: version "4.7.7" @@ -13594,11 +14204,11 @@ har-schema@^2.0.0: integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: - ajv "^6.5.5" + ajv "^6.12.3" har-schema "^2.0.0" hard-rejection@^2.1.0: @@ -13607,9 +14217,9 @@ hard-rejection@^2.1.0: integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== harmony-reflect@^1.4.6: - version "1.6.1" - resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" - integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== + version "1.6.2" + resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" + integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== has-ansi@^2.0.0: version "2.0.0" @@ -13706,12 +14316,13 @@ has@^1.0.3: function-bind "^1.1.1" hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + version "3.1.0" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" hash-it@^5.0.0: version "5.0.2" @@ -13732,9 +14343,9 @@ hash.js@^1.0.0, hash.js@^1.0.3: minimalistic-assert "^1.0.1" hast-util-parse-selector@^2.0.0: - version "2.2.4" - resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974" - integrity sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA== + version "2.2.5" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== hast-util-whitespace@^2.0.0: version "2.0.0" @@ -13826,13 +14437,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^3.0.6: - version "3.0.8" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" - integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== - dependencies: - lru-cache "^6.0.0" - hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: version "4.1.0" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" @@ -13868,9 +14472,9 @@ html-entities@^2.3.2: integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== html-escaper@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.1.tgz#beed86b5d2b921e92533aa11bce6d8e3b583dee7" - integrity sha512-hNX23TjWwD3q56HpWjUHOKj1+4KKlnjv9PcmBUYKVpga+2cnb9nDx/B1o0yO4n+RZXZdiNxzx6B24C9aNMTkkQ== + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== html-minifier-terser@^6.0.2: version "6.1.0" @@ -13927,7 +14531,7 @@ http-errors@1.8.1: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -http-errors@2.0.0, http-errors@^2.0.0: +http-errors@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -13949,11 +14553,11 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + version "0.5.5" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" + integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== -http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: +http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== @@ -14010,9 +14614,9 @@ http-signature@~1.3.6: sshpk "^1.14.1" http2-wrapper@^1.0.0-beta.5.2: - version "1.0.0-beta.5.2" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" - integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + version "1.0.3" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.0.0" @@ -14063,9 +14667,9 @@ husky@^7.0.4: integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== hyphenate-style-name@^1.0.2, hyphenate-style-name@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48" - integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ== + version "1.0.4" + resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" @@ -14114,9 +14718,9 @@ ignore-by-default@^1.0.1: integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= ignore-walk@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + version "3.0.4" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== dependencies: minimatch "^3.0.4" @@ -14132,6 +14736,11 @@ ignore@^3.3.5: resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" @@ -14170,9 +14779,9 @@ import-cwd@^3.0.0: import-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -14200,9 +14809,9 @@ import-lazy@~4.0.0: integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + version "3.1.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -14212,13 +14821,6 @@ imurmurhash@^0.1.4: resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indefinite-observable@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz#574af29bfbc17eb5947793797bddc94c9d859400" - integrity sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ== - dependencies: - symbol-observable "1.2.0" - indent-string@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" @@ -14229,11 +14831,6 @@ indent-string@^4.0.0: resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - indexof@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" @@ -14278,16 +14875,15 @@ ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== init-package-json@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.2.tgz#d81a7e6775af9b618f20bba288e440b8d1ce05f3" - integrity sha512-PO64kVeArePvhX7Ff0jVWkpnE1DfGRvaWcStYrPugcJz9twQGYibagKJuIMHCX7ENcp0M6LJlcjLBuLD5KeJMg== + version "2.0.5" + resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz#78b85f3c36014db42d8f32117252504f68022646" + integrity sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA== dependencies: - glob "^7.1.1" - npm-package-arg "^8.1.0" + npm-package-arg "^8.1.5" promzard "^0.3.0" read "~1.0.1" - read-package-json "^3.0.0" - semver "^7.3.2" + read-package-json "^4.1.1" + semver "^7.3.5" validate-npm-package-license "^3.0.4" validate-npm-package-name "^3.0.0" @@ -14297,9 +14893,9 @@ inline-style-parser@0.1.1: integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== inline-style-prefixer@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz#f73d5dbf2855733d6b153a4d24b7b47a73e9770b" - integrity sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg== + version "6.0.1" + resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz#c5c0e43ba8831707afc5f5bbfd97edf45c1fa7ae" + integrity sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ== dependencies: css-in-js-utils "^2.0.0" @@ -14418,11 +15014,6 @@ ipaddr.js@^2.0.1: resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -14450,11 +15041,6 @@ is-alphabetical@^1.0.0: resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== -is-alphabetical@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz#ef6e2caea57c63450fffc7abb6cbdafc5eb96e96" - integrity sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w== - is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -14463,18 +15049,13 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-alphanumerical@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz#0fbfeb6a72d21d91143b3d182bf6cf5909ee66f6" - integrity sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ== - dependencies: - is-alphabetical "^2.0.0" - is-decimal "^2.0.0" - is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + version "1.1.1" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" @@ -14487,9 +15068,11 @@ is-arrayish@^0.3.1: integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" @@ -14499,11 +15082,12 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-buffer@^1.1.5: version "1.1.6" @@ -14511,9 +15095,9 @@ is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + version "2.0.5" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" @@ -14534,7 +15118,7 @@ is-ci@^3.0.0, is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.8.0: +is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -14556,20 +15140,17 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-decimal@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== -is-decimal@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz#db1140337809fd043a056ae40a9bd1cdc563034c" - integrity sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw== - is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -14651,9 +15232,11 @@ is-generator-fn@^2.0.0: integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== is-generator-function@^1.0.7: - version "1.0.8" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" - integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== + version "1.0.10" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" is-glob@4.0.1: version "4.0.1" @@ -14674,11 +15257,6 @@ is-hexadecimal@^1.0.0: resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== -is-hexadecimal@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz#8e1ec9f48fe3eabd90161109856a23e0907a65d5" - integrity sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug== - is-in-browser@^1.0.2, is-in-browser@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" @@ -14715,9 +15293,9 @@ is-module@^1.0.0: integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-node-process@^1.0.1: version "1.0.1" @@ -14730,9 +15308,11 @@ is-npm@^5.0.0: integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + version "1.0.6" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" @@ -14752,9 +15332,9 @@ is-obj@^2.0.0: integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + version "1.0.2" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== is-observable@^1.1.0: version "1.1.0" @@ -14800,13 +15380,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-plain-object@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" - integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== - dependencies: - isobject "^4.0.0" - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -14854,11 +15427,6 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-root@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" @@ -14877,9 +15445,9 @@ is-shared-array-buffer@^1.0.1: integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== is-ssh@^1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz#f349a8cadd24e65298037a522cf7520f2e81a0f3" - integrity sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg== + version "1.3.3" + resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" + integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== dependencies: protocols "^1.1.0" @@ -14894,9 +15462,9 @@ is-stream@^1.1.0: integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" @@ -14906,18 +15474,18 @@ is-string@^1.0.5, is-string@^1.0.7: has-tostringtag "^1.0.0" is-subdir@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/is-subdir/-/is-subdir-1.1.1.tgz#423e66902f9c5f159b9cc4826c820df083059538" - integrity sha512-VYpq0S7gPBVkkmfwkvGnx1EL9UVIo87NQyNcgMiNUdQCws3CJm5wj2nB+XPL7zigvjxhuZgp3bl2yBcKkSIj1w== + version "1.2.0" + resolved "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz#b791cd28fab5202e91a08280d51d9d7254fd20d4" + integrity sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== dependencies: better-path-resolve "1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - has-symbols "^1.0.1" + has-symbols "^1.0.2" is-text-path@^1.0.1: version "1.0.1" @@ -14926,16 +15494,16 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" -is-typed-array@^1.1.3: - version "1.1.5" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" - integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== +is-typed-array@^1.1.3, is-typed-array@^1.1.7: + version "1.1.8" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" + integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== dependencies: - available-typed-arrays "^1.0.2" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" - es-abstract "^1.18.0-next.2" + es-abstract "^1.18.5" foreach "^2.0.5" - has-symbols "^1.0.1" + has-tostringtag "^1.0.0" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -14967,11 +15535,11 @@ is-utf8@^0.2.0, is-utf8@^0.2.1: integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-weakref@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" - integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" is-window@^1.0.2: version "1.0.2" @@ -15032,11 +15600,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isobject@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" - integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== - isomorphic-dompurify@^0.13.0: version "0.13.0" resolved "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-0.13.0.tgz#a4dde357e8531018a85ebb2dd56c4794b6739ba3" @@ -15062,9 +15625,9 @@ isomorphic-form-data@^2.0.0: form-data "^2.3.2" isomorphic-git@^1.8.0: - version "1.13.1" - resolved "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.13.1.tgz#66d9d1f24178f24230844dd70effb9d569214222" - integrity sha512-Hyc/KCCZAqTD5oyn90K5bRbCvRt1vj60OFKKmBZZwGrdzGvXu4FBBaqUrgWnd7N07M8soCOXibkDLq0lGWjNOQ== + version "1.11.2" + resolved "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.11.2.tgz#58fd47f3e797ed9cc1364bb2cae02355499d6bea" + integrity sha512-7gSW+dMftHYyDufoeLCOagxlN0KsAYvR/qddSke9pnPH8vwL4OwqQ2BvkG0O02OnEFqg1pZXyIzBPFBfOMYXUA== dependencies: async-lock "^1.1.0" clean-git-ref "^2.0.1" @@ -15088,12 +15651,12 @@ isstream@~0.1.2: resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: +istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== @@ -15103,6 +15666,17 @@ istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" +istanbul-lib-instrument@^5.0.4: + version "5.1.0" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -15113,9 +15687,9 @@ istanbul-lib-report@^3.0.0: supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + version "4.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== dependencies: debug "^4.1.1" istanbul-lib-coverage "^3.0.0" @@ -15220,6 +15794,16 @@ jest-diff@^26.0.0, jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" +jest-diff@^27.0.0: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + jest-docblock@^26.0.0: version "26.0.0" resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" @@ -15268,6 +15852,11 @@ jest-get-type@^26.3.0: resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + jest-haste-map@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" @@ -15534,10 +16123,10 @@ jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.3.1, jest-worker@^27.4.1: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" - integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== +jest-worker@^27.3.1, jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -15580,13 +16169,13 @@ jmespath@^0.15.0: integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= joi@^17.4.0: - version "17.4.2" - resolved "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz#02f4eb5cf88e515e614830239379dcbbe28ce7f7" - integrity sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw== + version "17.6.0" + resolved "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" + integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.0" + "@sideway/address" "^4.1.3" "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" @@ -15605,9 +16194,9 @@ jose@^2.0.5: "@panva/asn1.js" "^1.0.0" joycon@^3.0.1: - version "3.1.0" - resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.0.tgz#33bb2b6b5a6849a1e251bed623bdf610f477d49f" - integrity sha512-5Y/YJghKF/IzaUXTut0JtbQyHfBShTaIsH7hHhGXEzYO07zWdWZm5hr3Q6miqhrwsRqqm3mgOnUEZdn+1aRxKQ== + version "3.1.1" + resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== jpeg-js@^0.3.4: version "0.3.7" @@ -15786,9 +16375,9 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-pointer@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz#3c6caa6ac139e2599f5a1659d39852154015054d" - integrity sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q== + version "0.6.2" + resolved "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz#f97bd7550be5e9ea901f8c9264c9d436a22a93cd" + integrity sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw== dependencies: foreach "^2.0.4" @@ -15911,11 +16500,11 @@ jsonfile@^4.0.0: graceful-fs "^4.1.6" jsonfile@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: - universalify "^1.0.0" + universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" @@ -15986,85 +16575,76 @@ jsprim@^2.0.2: verror "1.10.0" jss-plugin-camel-case@^10.5.1: - version "10.6.0" - resolved "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.6.0.tgz#93d2cd704bf0c4af70cc40fb52d74b8a2554b170" - integrity sha512-JdLpA3aI/npwj3nDMKk308pvnhoSzkW3PXlbgHAzfx0yHWnPPVUjPhXFtLJzgKZge8lsfkUxvYSQ3X2OYIFU6A== + version "10.9.0" + resolved "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz#4921b568b38d893f39736ee8c4c5f1c64670aaf7" + integrity sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww== dependencies: "@babel/runtime" "^7.3.1" hyphenate-style-name "^1.0.3" - jss "10.6.0" + jss "10.9.0" jss-plugin-default-unit@^10.5.1: - version "10.6.0" - resolved "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.6.0.tgz#af47972486819b375f0f3a9e0213403a84b5ef3b" - integrity sha512-7y4cAScMHAxvslBK2JRK37ES9UT0YfTIXWgzUWD5euvR+JR3q+o8sQKzBw7GmkQRfZijrRJKNTiSt1PBsLI9/w== + version "10.9.0" + resolved "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz#bb23a48f075bc0ce852b4b4d3f7582bc002df991" + integrity sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w== dependencies: "@babel/runtime" "^7.3.1" - jss "10.6.0" + jss "10.9.0" jss-plugin-global@^10.5.1: - version "10.6.0" - resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.6.0.tgz#3e8011f760f399cbadcca7f10a485b729c50e3ed" - integrity sha512-I3w7ji/UXPi3VuWrTCbHG9rVCgB4yoBQLehGDTmsnDfXQb3r1l3WIdcO8JFp9m0YMmyy2CU7UOV6oPI7/Tmu+w== + version "10.9.0" + resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz#fc07a0086ac97aca174e37edb480b69277f3931f" + integrity sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ== dependencies: "@babel/runtime" "^7.3.1" - jss "10.6.0" + jss "10.9.0" jss-plugin-nested@^10.5.1: - version "10.6.0" - resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.6.0.tgz#5f83c5c337d3b38004834e8426957715a0251641" - integrity sha512-fOFQWgd98H89E6aJSNkEh2fAXquC9aZcAVjSw4q4RoQ9gU++emg18encR4AT4OOIFl4lQwt5nEyBBRn9V1Rk8g== + version "10.9.0" + resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz#cc1c7d63ad542c3ccc6e2c66c8328c6b6b00f4b3" + integrity sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA== dependencies: "@babel/runtime" "^7.3.1" - jss "10.6.0" + jss "10.9.0" tiny-warning "^1.0.2" jss-plugin-props-sort@^10.5.1: - version "10.6.0" - resolved "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.6.0.tgz#297879f35f9fe21196448579fee37bcde28ce6bc" - integrity sha512-oMCe7hgho2FllNc60d9VAfdtMrZPo9n1Iu6RNa+3p9n0Bkvnv/XX5San8fTPujrTBScPqv9mOE0nWVvIaohNuw== + version "10.9.0" + resolved "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz#30e9567ef9479043feb6e5e59db09b4de687c47d" + integrity sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw== dependencies: "@babel/runtime" "^7.3.1" - jss "10.6.0" + jss "10.9.0" jss-plugin-rule-value-function@^10.5.1: - version "10.6.0" - resolved "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.6.0.tgz#3c1a557236a139d0151e70a82c810ccce1c1c5ea" - integrity sha512-TKFqhRTDHN1QrPTMYRlIQUOC2FFQb271+AbnetURKlGvRl/eWLswcgHQajwuxI464uZk91sPiTtdGi7r7XaWfA== + version "10.9.0" + resolved "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz#379fd2732c0746fe45168011fe25544c1a295d67" + integrity sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg== dependencies: "@babel/runtime" "^7.3.1" - jss "10.6.0" + jss "10.9.0" tiny-warning "^1.0.2" jss-plugin-vendor-prefixer@^10.5.1: - version "10.6.0" - resolved "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.6.0.tgz#e1fcd499352846890c38085b11dbd7aa1c4f2c78" - integrity sha512-doJ7MouBXT1lypLLctCwb4nJ6lDYqrTfVS3LtXgox42Xz0gXusXIIDboeh6UwnSmox90QpVnub7au8ybrb0krQ== + version "10.9.0" + resolved "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz#aa9df98abfb3f75f7ed59a3ec50a5452461a206a" + integrity sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA== dependencies: "@babel/runtime" "^7.3.1" css-vendor "^2.0.8" - jss "10.6.0" + jss "10.9.0" -jss@10.6.0, jss@^10.5.1: - version "10.6.0" - resolved "https://registry.npmjs.org/jss/-/jss-10.6.0.tgz#d92ff9d0f214f65ca1718591b68e107be4774149" - integrity sha512-n7SHdCozmxnzYGXBHe0NsO0eUf9TvsHVq2MXvi4JmTn3x5raynodDVE/9VQmBdWFyyj9HpHZ2B4xNZ7MMy7lkw== +jss@10.9.0, jss@^10.5.1: + version "10.9.0" + resolved "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz#7583ee2cdc904a83c872ba695d1baab4b59c141b" + integrity sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw== dependencies: "@babel/runtime" "^7.3.1" csstype "^3.0.2" - indefinite-observable "^2.0.1" is-in-browser "^1.1.3" tiny-warning "^1.0.2" -"jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.2.0" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" - integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== - dependencies: - array-includes "^3.1.2" - object.assign "^4.1.2" - -jsx-ast-utils@^3.2.1: +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== @@ -16188,9 +16768,9 @@ kleur@^4.0.3: integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== knex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/knex/-/knex-1.0.2.tgz#1b79273f39f587a631c1a5515482c203d5971781" - integrity sha512-RuDKTylj6X/3nYomnsFV8sOdxTcehLHczOd3yrUdULE4pQR8jVlZxYt3vvIU04otJF0Cw9DCtRt05S4PN4kDpw== + version "1.0.3" + resolved "https://registry.npmjs.org/knex/-/knex-1.0.3.tgz#a5f97aa98e5e036cfd0209a90d53b2a411280e84" + integrity sha512-rY1T7cgTQGHAUD9TshMka37bd+SEK+koPXXvZQEIoE8yjJ/E8ShsenaAmr3oaNNzqXuKD/SC0qlYtp7Js8tAXA== dependencies: colorette "2.0.16" commander "^8.3.0" @@ -16236,9 +16816,9 @@ lazy-ass@1.6.0, lazy-ass@^1.6.0: integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + version "1.0.1" + resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== dependencies: readable-stream "^2.0.5" @@ -16343,47 +16923,47 @@ li@^1.3.0: integrity sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs= libnpmaccess@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.1.tgz#17e842e03bef759854adf6eb6c2ede32e782639f" - integrity sha512-ZiAgvfUbvmkHoMTzdwmNWCrQRsDkOC+aM5BDfO0C9aOSwF3R1LdFDBD+Rer1KWtsoQYO35nXgmMR7OUHpDRxyA== + version "4.0.3" + resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz#dfb0e5b0a53c315a2610d300e46b4ddeb66e7eec" + integrity sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ== dependencies: aproba "^2.0.0" minipass "^3.1.1" - npm-package-arg "^8.0.0" - npm-registry-fetch "^9.0.0" + npm-package-arg "^8.1.2" + npm-registry-fetch "^11.0.0" libnpmpublish@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.0.tgz#ad6413914e0dfd78df868ce14ba3d3a4cc8b385b" - integrity sha512-2RwYXRfZAB1x/9udKpZmqEzSqNd7ouBRU52jyG14/xG8EF+O9A62d7/XVR3iABEQHf1iYhkm0Oq9iXjrL3tsXA== + version "4.0.2" + resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz#be77e8bf5956131bcb45e3caa6b96a842dec0794" + integrity sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw== dependencies: - normalize-package-data "^3.0.0" - npm-package-arg "^8.1.0" - npm-registry-fetch "^9.0.0" + normalize-package-data "^3.0.2" + npm-package-arg "^8.1.2" + npm-registry-fetch "^11.0.0" semver "^7.1.3" - ssri "^8.0.0" + ssri "^8.0.1" -lilconfig@2.0.4, lilconfig@^2.0.3: +lilconfig@2.0.4, lilconfig@^2.0.3, lilconfig@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== linkify-it@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" - integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== + version "3.0.3" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== dependencies: uc.micro "^1.0.1" lint-staged@^12.2.0: - version "12.3.3" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.3.tgz#0a465962fe53baa2b4b9da50801ead49a910e03b" - integrity sha512-OqcLsqcPOqzvsfkxjeBpZylgJ3SRG1RYqc9LxC6tkt6tNsq1bNVkAixBwX09f6CobcHswzqVOCBpFR1Fck0+ag== + version "12.3.4" + resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.4.tgz#4b1ff8c394c3e6da436aaec5afd4db18b5dac360" + integrity sha512-yv/iK4WwZ7/v0GtVkNb3R82pdL9M+ScpIbJLJNyCXkJ1FGaXvRCOg/SeL59SZtPpqZhE7BD6kPKFLIDUhDx2/w== dependencies: cli-truncate "^3.1.0" colorette "^2.0.16" @@ -16448,16 +17028,16 @@ listr2@^3.8.3: wrap-ansi "^7.0.0" listr2@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/listr2/-/listr2-4.0.2.tgz#04d66f8c8694a14920d7df08ebe01568948fb500" - integrity sha512-YcgwfCWpvPbj9FLUGqvdFvd3hrFWKpOeuXznRgfWEJ7RNr8b/IKKIKZABHx3aU+4CWN/iSAFFSReziQG6vTeIA== + version "4.0.4" + resolved "https://registry.npmjs.org/listr2/-/listr2-4.0.4.tgz#d098a1c419284fb26e184b5d5889b235e8912245" + integrity sha512-vJOm5KD6uZXjSsrwajr+mNacIjf87gWvlBEltPWLbTkslUscWAzquyK4xfe9Zd4RDgO5nnwFyV06FC+uVR+5mg== dependencies: cli-truncate "^2.1.0" colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.2" + rxjs "^7.5.4" through "^2.3.8" wrap-ansi "^7.0.0" @@ -16546,9 +17126,9 @@ loader-utils@^1.1.0: json5 "^1.0.1" loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + version "2.0.2" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -16828,15 +17408,15 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -logform@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/logform/-/logform-2.3.2.tgz#68babe6a74ab09a1fd15a9b1e6cbc7713d41cb5b" - integrity sha512-V6JiPThZzTsbVRspNO6TmHkR99oqYTs8fivMBYQkjZj6rxW92KxtDCPE6IkAk1DNBnYKNkjm4jYBm6JDUcyhOA== +logform@^2.3.2, logform@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe" + integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw== dependencies: - colors "1.4.0" + "@colors/colors" "1.5.0" fecha "^4.2.0" ms "^2.1.1" - safe-stable-stringify "^1.1.0" + safe-stable-stringify "^2.3.1" triple-beam "^1.3.0" loglevel@^1.6.8: @@ -16850,9 +17430,9 @@ long@^4.0.0: integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== longest-streak@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz#f127e2bded83caa6a35ac5f7a2f2b2f94b36f3dc" - integrity sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw== + version "3.0.1" + resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" + integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" @@ -16935,11 +17515,6 @@ lz-string@^1.4.4: resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= -macos-release@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" - integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== - magic-string@^0.25.7: version "0.25.7" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" @@ -16975,9 +17550,9 @@ make-error@^1, make-error@^1.1.1, make-error@^1.3.6: integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== make-fetch-happen@^10.0.1: - version "10.0.2" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.2.tgz#0afb38d2f951b17ebc482b0b16c8d77f39dfe389" - integrity sha512-JSFLK53NJP22FL/eAGOyKsWbc2G3v+toPMD7Dq9PJKQCvK0i3t8hGkKxe+3YZzwYa+c0kxRHu7uxH3fvO+rsaA== + version "10.0.3" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.3.tgz#94bbe675cf62a811dbab59668052388a078beaf2" + integrity sha512-CzarPHynPpHjhF5in/YapnO44rSZeYX5VCMfdXa99+gLwpbfFLh20CWa6dP/taV9Net9PWJwXNKtp/4ZTCQnag== dependencies: agentkeepalive "^4.2.0" cacache "^15.3.0" @@ -17017,7 +17592,7 @@ make-fetch-happen@^8.0.9: socks-proxy-agent "^5.0.0" ssri "^8.0.0" -make-fetch-happen@^9.1.0: +make-fetch-happen@^9.0.1, make-fetch-happen@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== @@ -17039,12 +17614,12 @@ make-fetch-happen@^9.1.0: socks-proxy-agent "^6.0.0" ssri "^8.0.0" -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== dependencies: - tmpl "1.0.x" + tmpl "1.0.5" map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" @@ -17085,14 +17660,14 @@ markdown-it@^12.2.0: uc.micro "^1.0.5" markdown-table@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz#88c48957aaf2a8014ccb2ba026776a1d736fe3dc" - integrity sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A== + version "3.0.2" + resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz#9b59eb2c1b22fe71954a65ff512887065a7bb57c" + integrity sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA== marked@^4.0.10: - version "4.0.10" - resolved "https://registry.npmjs.org/marked/-/marked-4.0.10.tgz#423e295385cc0c3a70fa495e0df68b007b879423" - integrity sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw== + version "4.0.12" + resolved "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d" + integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== match-sorter@^6.0.2: version "6.3.1" @@ -17121,9 +17696,9 @@ material-ui-search-bar@^1.0.0: prop-types "^15.5.8" math-expression-evaluator@^1.2.14: - version "1.2.22" - resolved "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz#c14dcb3d8b4d150e5dcea9c68c8dad80309b0d5e" - integrity sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ== + version "1.3.14" + resolved "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.3.14.tgz#0ebeaccf65fea0f6f5a626f88df41814e5fcd9bf" + integrity sha512-M6AMrvq9bO8uL42KvQHPA2/SbAobA0R7gviUmPrcTcGfdwpaLitz4q2Euzx2lP9Oy88vxK3HOrsISgSwKsYS4A== md5.js@^1.3.4: version "1.3.5" @@ -17153,12 +17728,13 @@ mdast-util-find-and-replace@^2.0.0: unist-util-visit-parents "^4.0.0" mdast-util-from-markdown@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.2.tgz#7c793bb96b053d12f032e37382ae989efb70ee66" - integrity sha512-gXaxv/5fGdrr9TqSMlQK7FmshK8yR9DvW3+NapMBDm44inORxIZVJa1D3yjrUT9ISu8tB/jjblEkUzyzclquNg== + version "1.2.0" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" + integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" mdast-util-to-string "^3.1.0" micromark "^3.0.0" micromark-util-decode-numeric-character-reference "^1.0.0" @@ -17166,8 +17742,8 @@ mdast-util-from-markdown@^1.0.0: micromark-util-normalize-identifier "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - parse-entities "^3.0.0" unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" mdast-util-gfm-autolink-literal@^1.0.0: version "1.0.2" @@ -17180,38 +17756,37 @@ mdast-util-gfm-autolink-literal@^1.0.0: micromark-util-character "^1.0.0" mdast-util-gfm-footnote@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.0.tgz#355c1e8dc9e17e871d1b3fa5da8824923fc756e0" - integrity sha512-qeg9YoS2YYP6OBmMyUFxKXb6BLwAsbGidIxgwDAXHIMYZQhIwe52L9BSJs+zP29Jp5nSERPkmG3tSwAN23/ZbQ== + version "1.0.1" + resolved "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz#11d2d40a1a673a399c459e467fa85e00223191fe" + integrity sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw== dependencies: "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" micromark-util-normalize-identifier "^1.0.0" - unist-util-visit "^4.0.0" mdast-util-gfm-strikethrough@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz#6cc72ef5d9539f4cee76af3f15dd0daa9e3af40f" - integrity sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew== + version "1.0.1" + resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz#a4a74c36864ec6a6e3bbd31e1977f29beb475789" + integrity sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg== dependencies: - "@types/mdast" "^3.0.3" - mdast-util-to-markdown "^1.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" mdast-util-gfm-table@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz#07c269a219d66ec2deb6de38aed0ba1d1f9442df" - integrity sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA== + version "1.0.3" + resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.3.tgz#5f880aa6ecd1a9307cd7127f3d94c631ea88da07" + integrity sha512-B/tgpJjND1qIZM2WZst+NYnb0notPE6m0J+YOe3NOHXyEmvK38ytxaOsgz4BvrRPQQcNbRrTzSHMPnBkj1fCjg== dependencies: markdown-table "^3.0.0" - mdast-util-to-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" mdast-util-gfm-task-list-item@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz#a0aa2a00c893f9f006d13ba096cbc64608559c7f" - integrity sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA== + version "1.0.1" + resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz#6f35f09c6e2bcbe88af62fdea02ac199cc802c5c" + integrity sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA== dependencies: - "@types/mdast" "^3.0.3" - mdast-util-to-markdown "^1.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" mdast-util-gfm@^2.0.0: version "2.0.0" @@ -17240,10 +17815,10 @@ mdast-util-to-hast@^12.1.0: unist-util-position "^4.0.0" unist-util-visit "^4.0.0" -mdast-util-to-markdown@^1.0.0: - version "1.2.3" - resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.3.tgz#2b3af92bf0e29080927eb59a8a10cd0a7398e093" - integrity sha512-040jJYtjOUdbvYAXCfPrpLJRdvMOmR33KRqlhT4r+fEbVM+jao1RMbA8RmGeRmw8RAj3vQ+HvhIaJPijvnOwCg== +mdast-util-to-markdown@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz#38b6cdc8dc417de642a469c4fc2abdf8c931bd1e" + integrity sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" @@ -17263,6 +17838,11 @@ mdn-data@2.0.14: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + mdurl@^1.0.0, mdurl@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -17274,9 +17854,9 @@ media-typer@0.3.0: integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= "mem-fs-editor@^8.1.2 || ^9.0.0": - version "9.3.0" - resolved "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz#85ce80541b1961d1d9f433e275c7cee9d0a1c9a2" - integrity sha512-QKFbPwGCh1ypmc2H8BUYpbapwT/x2AOCYZQogzSui4rUNes7WVMagQXsirPIfp18EarX0SSY9Fpg426nSjew4Q== + version "9.4.0" + resolved "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.4.0.tgz#0cc1cf61350e33c25fc364c97fb0551eb32b8c9b" + integrity sha512-HSSOLSVRrsDdui9I6i96dDtG+oAez/4EB2g4cjSrNhgNQ3M+L57/+22NuPdORSoxvOHjIg/xeOE+C0wwF91D2g== dependencies: binaryextensions "^4.16.0" commondir "^1.0.1" @@ -17360,10 +17940,10 @@ merge-stream@^2.0.0: resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== merge@^1.2.1: version "1.2.1" @@ -17408,14 +17988,15 @@ micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: uvu "^0.5.0" micromark-extension-gfm-autolink-literal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz#1a49a62bfcb00f9dff87ab39f3b21a108612dc24" - integrity sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA== + version "1.0.3" + resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz#dc589f9c37eaff31a175bab49f12290edcf96058" + integrity sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg== dependencies: micromark-util-character "^1.0.0" micromark-util-sanitize-uri "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" + uvu "^0.5.0" micromark-extension-gfm-footnote@^1.0.0: version "1.0.3" @@ -17431,42 +18012,45 @@ micromark-extension-gfm-footnote@^1.0.0: uvu "^0.5.0" micromark-extension-gfm-strikethrough@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.1.tgz#9f53ab4f5dc8c0525a889850bae615f074a98a27" - integrity sha512-fzGYXWz9HPWH1uHqYwdyR8XpEtuoYVHUjTdPQTnl3ETVZOQe1NXMwE3RA7AMqeON52hG+kO9g1/P1+pLONBSMQ== + version "1.0.4" + resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz#162232c284ffbedd8c74e59c1525bda217295e18" + integrity sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ== dependencies: micromark-util-chunked "^1.0.0" micromark-util-classify-character "^1.0.0" micromark-util-resolve-all "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" + uvu "^0.5.0" micromark-extension-gfm-table@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz#f0d35dbf008b6182311049f9137323d34a54c7a0" - integrity sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q== + version "1.0.5" + resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz#7b708b728f8dc4d95d486b9e7a2262f9cddbcbb4" + integrity sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" + uvu "^0.5.0" micromark-extension-gfm-tagfilter@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz#a38c7c462c2007b534fcb485e9310165879654a7" - integrity sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg== + version "1.0.1" + resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz#fb2e303f7daf616db428bb6a26e18fda14a90a4d" + integrity sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA== dependencies: micromark-util-types "^1.0.0" micromark-extension-gfm-task-list-item@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz#ab38b2b4ead4e746189d6323c32cacab2c63599d" - integrity sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg== + version "1.0.3" + resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz#7683641df5d4a09795f353574d7f7f66e47b7fc4" + integrity sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" + uvu "^0.5.0" micromark-extension-gfm@^2.0.0: version "2.0.1" @@ -17492,13 +18076,14 @@ micromark-factory-destination@^1.0.0: micromark-util-types "^1.0.0" micromark-factory-label@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz#b316ec479b474232973ff13b49b576f84a6f2cbb" - integrity sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww== + version "1.0.2" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" + integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== dependencies: micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" + uvu "^0.5.0" micromark-factory-space@^1.0.0: version "1.0.0" @@ -17509,14 +18094,15 @@ micromark-factory-space@^1.0.0: micromark-util-types "^1.0.0" micromark-factory-title@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz#708f7a8044f34a898c0efdb4f55e4da66b537273" - integrity sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA== + version "1.0.2" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" + integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" + uvu "^0.5.0" micromark-factory-whitespace@^1.0.0: version "1.0.0" @@ -17568,18 +18154,19 @@ micromark-util-decode-numeric-character-reference@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-decode-string@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.0.tgz#f97946825231d9c97df767875064401774578a6e" - integrity sha512-4g5UJ8P/J8wuRKUXCcB7udQuOBXpLyvBQSLSuznfBLCG+thKG6UTwFnXfHkrr/1wddprkUbPatCzxDjrJ+5zDg== + version "1.0.2" + resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" + integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== dependencies: + decode-named-character-reference "^1.0.0" micromark-util-character "^1.0.0" micromark-util-decode-numeric-character-reference "^1.0.0" - parse-entities "^3.0.0" + micromark-util-symbol "^1.0.0" micromark-util-encode@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz#c409ecf751a28aa9564b599db35640fccec4c068" - integrity sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg== + version "1.0.1" + resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" + integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== micromark-util-html-tag-name@^1.0.0: version "1.0.0" @@ -17610,31 +18197,33 @@ micromark-util-sanitize-uri@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-subtokenize@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz#6f006fa719af92776c75a264daaede0fb3943c6a" - integrity sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ== + version "1.0.2" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" + integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== dependencies: micromark-util-chunked "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" + uvu "^0.5.0" micromark-util-symbol@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz#91cdbcc9b2a827c0129a177d36241bcd3ccaa34d" - integrity sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ== + version "1.0.1" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" + integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz#8bb8a092d93d326bd29fe29602799f2d0d922fd4" - integrity sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA== + version "1.0.2" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" + integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== micromark@^3.0.0: - version "3.0.5" - resolved "https://registry.npmjs.org/micromark/-/micromark-3.0.5.tgz#d24792c8a06f201d5608c106dbfadef34c299684" - integrity sha512-QfjERBnPw0G9mxhOCkkbRP0n8SX8lIBLrEKeEVceviUukqVMv3hWE4AgNTOK/W6GWqtPvvIHg2Apl3j1Dxm6aQ== + version "3.0.10" + resolved "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" + integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" + decode-named-character-reference "^1.0.0" micromark-core-commonmark "^1.0.1" micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" @@ -17648,7 +18237,7 @@ micromark@^3.0.0: micromark-util-subtokenize "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.1" - parse-entities "^3.0.0" + uvu "^0.5.0" micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -17719,7 +18308,7 @@ mime@1.6.0, mime@^1.3.4: resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.2.0, mime@^2.5.0: +mime@^2.5.0: version "2.6.0" resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -17762,9 +18351,9 @@ min-document@^2.19.0: dom-walk "^0.1.0" min-indent@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" - integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= + version "1.0.1" + resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.4.2: version "2.6.0" @@ -17783,7 +18372,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -17797,6 +18386,13 @@ minimatch@5.0.1, minimatch@^5.0.0: dependencies: brace-expansion "^2.0.1" +minimatch@^3.0.2, minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimatch@^4.0.0: version "4.2.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" @@ -17915,12 +18511,7 @@ mixme@^0.5.1: resolved "https://registry.npmjs.org/mixme/-/mixme-0.5.4.tgz#8cb3bd0cd32a513c161bf1ca99d143f0bcf2eff3" integrity sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw== -mkdirp-classic@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" - integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== - -mkdirp-classic@^0.5.3: +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== @@ -17939,7 +18530,7 @@ mkdirp@0.3.0: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5: +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -18126,9 +18717,9 @@ nan@^2.14.1, nan@^2.15.0: integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nano-css@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.3.1.tgz#b709383e07ad3be61f64edffacb9d98250b87a1f" - integrity sha512-ENPIyNzANQRyYVvb62ajDd7PAyIgS2LIUnT9ewih4yrXSZX4hKoUwssy8WjUH++kEOA5wUTMgNnV7ko5n34kUA== + version "5.3.4" + resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.3.4.tgz#40af6a83a76f84204f346e8ccaa9169cdae9167b" + integrity sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg== dependencies: css-tree "^1.1.2" csstype "^3.0.6" @@ -18199,12 +18790,12 @@ nice-try@^1.0.4: integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== nise@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz#713ef3ed138252daef20ec035ab62b7a28be645c" - integrity sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ== + version "5.1.1" + resolved "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz#ac4237e0d785ecfcb83e20f389185975da5c31f3" + integrity sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A== dependencies: - "@sinonjs/commons" "^1.7.0" - "@sinonjs/fake-timers" "^7.0.4" + "@sinonjs/commons" "^1.8.3" + "@sinonjs/fake-timers" ">=5" "@sinonjs/text-encoding" "^0.7.1" just-extend "^4.0.2" path-to-regexp "^1.7.0" @@ -18253,7 +18844,7 @@ node-fetch@2.6.1: resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.5, node-fetch@^2.6.7: +node-fetch@2.6.7, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.5, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -18266,9 +18857,9 @@ node-forge@^1.0.0, node-forge@^1.2.0: integrity sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA== node-gyp@^5.0.2: - version "5.1.0" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.0.tgz#8e31260a7af4a2e2f994b0673d4e0b3866156332" - integrity sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw== + version "5.1.1" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" + integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== dependencies: env-paths "^2.2.0" glob "^7.1.4" @@ -18353,11 +18944,6 @@ node-match-path@^0.6.3: resolved "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz#55dd8443d547f066937a0752dce462ea7dc27551" integrity sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q== -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - node-notifier@^8.0.0: version "8.0.2" resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" @@ -18370,10 +18956,10 @@ node-notifier@^8.0.0: uuid "^8.3.0" which "^2.0.2" -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== nodemon@^2.0.2: version "2.0.15" @@ -18423,14 +19009,14 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" - integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== +normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== dependencies: - hosted-git-info "^3.0.6" - resolve "^1.17.0" - semver "^7.3.2" + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" validate-npm-package-license "^3.0.1" normalize-path@^2.1.1: @@ -18445,25 +19031,20 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - normalize-url@^4.1.0: version "4.5.1" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== -normalize-url@^6.0.1: +normalize-url@^6.0.1, normalize-url@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== npm-bundled@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + version "1.1.2" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" @@ -18503,9 +19084,9 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-pack validate-npm-package-name "^3.0.0" npm-packlist@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.4.tgz#40e96b2b43787d0546a574542d01e066640d09da" - integrity sha512-Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw== + version "2.2.2" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" + integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== dependencies: glob "^7.1.6" ignore-walk "^3.0.3" @@ -18532,6 +19113,18 @@ npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: npm-package-arg "^8.1.2" semver "^7.3.4" +npm-registry-fetch@^11.0.0: + version "11.0.0" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" + integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== + dependencies: + make-fetch-happen "^9.0.1" + minipass "^3.1.3" + minipass-fetch "^1.3.0" + minipass-json-stream "^1.0.1" + minizlib "^2.0.0" + npm-package-arg "^8.0.0" + npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: version "12.0.2" resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz#ae583bb3c902a60dae43675b5e33b5b1f6159f1e" @@ -18602,7 +19195,14 @@ npmlog@^6.0.0: gauge "^4.0.0" set-blocking "^2.0.0" -nth-check@^2.0.0: +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== @@ -18673,9 +19273,12 @@ object-inspect@^1.11.0, object-inspect@^1.12.0, object-inspect@^1.9.0: integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== object-is@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" - integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + version "1.1.5" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -18717,13 +19320,14 @@ object.fromentries@^2.0.5: define-properties "^1.1.3" es-abstract "^1.19.1" -object.getownpropertydescriptors@^2.0.3: - version "2.1.0" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.3" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" + integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.19.1" object.hasown@^1.1.0: version "1.1.0" @@ -18740,7 +19344,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.5: +object.values@^1.1.0, object.values@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== @@ -18840,17 +19444,17 @@ open@^8.0.0, open@^8.0.9, open@^8.4.0: is-wsl "^2.2.0" openapi-sampler@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.1.1.tgz#7bba7000a03cd8a4630bfbe5b3ef258990c78400" - integrity sha512-WAFsl5SPYuhQwaMTDFOcKhnEY1G1rmamrMiPmJdqwfl1lr81g63/befcsN9BNi0w5/R0L+hfcUj13PANEBeLgg== + version "1.2.0" + resolved "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.2.0.tgz#2e82e4e32c1506a42f370be726d759d5275a9d4d" + integrity sha512-Y0tFg2iH7NWnNHYnesxhMfkXc7wWXyJXYMUTTxkGkfpl0U9u/ZOf6BxrdEXBD4sgs9uMlVWsbWLDLesVmSUU7Q== dependencies: "@types/json-schema" "^7.0.7" json-pointer "^0.6.1" openid-client@^4.1.1, openid-client@^4.2.1: - version "4.9.0" - resolved "https://registry.npmjs.org/openid-client/-/openid-client-4.9.0.tgz#bdfc9194435316df419f759ce177635146b43074" - integrity sha512-ThBbvRUUZwxUKBVK2UpDNIZ3eJkvtqWI8s5Dm+naV+gJdL+yRhT+8ywqct1gy5uL+xVS5+A/nhFcpJIisH2x6Q== + version "4.9.1" + resolved "https://registry.npmjs.org/openid-client/-/openid-client-4.9.1.tgz#4f00a9d1566c0fa08f0dd5986cf0e6b1e5d14186" + integrity sha512-DYUF07AHjI3QDKqKbn2F7RqozT4hyi4JvmpodLrq0HHoNP7t/AjeG/uqiBK1/N2PZSAQEThVjDLHSmJN4iqu/w== dependencies: aggregate-error "^3.1.0" got "^11.8.0" @@ -18916,14 +19520,6 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-name@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" - integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== - dependencies: - macos-release "^2.2.0" - windows-release "^3.1.0" - os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -18958,14 +19554,14 @@ p-cancelable@^1.0.0: integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-cancelable@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" - integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + version "2.1.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== p-each-series@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" - integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + version "2.2.0" + resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== p-filter@^2.1.0: version "2.1.0" @@ -18999,9 +19595,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.2" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -19069,12 +19665,12 @@ p-reduce@^2.0.0, p-reduce@^2.1.0: integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== p-retry@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.5.0.tgz#6685336b3672f9ee8174d3769a660cb5e488521d" - integrity sha512-5Hwh4aVQSu6BEP+w2zKlVXtFAaYQe1qWuVADSgoeVlLjwe/Q/AMSoRR4MDeaAfu8llT+YNbEijWu/YF3m6avkg== + version "4.6.1" + resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" + integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== dependencies: "@types/retry" "^0.12.0" - retry "^0.12.0" + retry "^0.13.1" p-timeout@^3.2.0: version "3.2.0" @@ -19124,11 +19720,11 @@ packet-reader@1.0.0: integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== pacote@^11.2.6: - version "11.2.6" - resolved "https://registry.npmjs.org/pacote/-/pacote-11.2.6.tgz#c0426e5d5c8d33aeea3461a75e1390f1ba78f953" - integrity sha512-xCl++Hb3aBC7LaWMimbO4xUqZVsEbKDVc6KKDIIyAeBYrmMwY1yJC2nES/lsGd8sdQLUosgBxQyuVNncZ2Ru0w== + version "11.3.5" + resolved "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" + integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== dependencies: - "@npmcli/git" "^2.0.1" + "@npmcli/git" "^2.1.0" "@npmcli/installed-package-contents" "^1.0.6" "@npmcli/promise-spawn" "^1.2.0" "@npmcli/run-script" "^1.8.2" @@ -19141,7 +19737,7 @@ pacote@^11.2.6: npm-package-arg "^8.0.1" npm-packlist "^2.1.4" npm-pick-manifest "^6.0.0" - npm-registry-fetch "^9.0.0" + npm-registry-fetch "^11.0.0" promise-retry "^2.0.1" read-package-json-fast "^2.0.1" rimraf "^3.0.2" @@ -19198,14 +19794,13 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: - asn1.js "^4.0.0" + asn1.js "^5.2.0" browserify-aes "^1.0.0" - create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" @@ -19249,18 +19844,6 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-entities@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz#9ed6d6569b6cfc95ade058d683ddef239dad60dc" - integrity sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ== - dependencies: - character-entities "^2.0.0" - character-entities-legacy "^2.0.0" - character-reference-invalid "^2.0.0" - is-alphanumerical "^2.0.0" - is-decimal "^2.0.0" - is-hexadecimal "^2.0.0" - parse-filepath@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" @@ -19291,13 +19874,13 @@ parse-json@^4.0.0: json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" - integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" + json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" parse-package-name@^0.1.0: @@ -19306,20 +19889,22 @@ parse-package-name@^0.1.0: integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= parse-path@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" - integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== + version "4.0.3" + resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" + integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== dependencies: is-ssh "^1.3.0" protocols "^1.4.0" + qs "^6.9.4" + query-string "^6.13.8" -parse-url@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" - integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== +parse-url@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" + integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== dependencies: is-ssh "^1.3.0" - normalize-url "^3.3.0" + normalize-url "^6.1.0" parse-path "^4.0.0" protocols "^1.4.0" @@ -19394,9 +19979,9 @@ passport-microsoft@^0.1.0: pkginfo "0.2.x" passport-oauth1@1.x.x: - version "1.1.0" - resolved "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.1.0.tgz#a7de988a211f9cf4687377130ea74df32730c918" - integrity sha1-p96YiiEfnPRoc3cTDqdN8ycwyRg= + version "1.2.0" + resolved "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.2.0.tgz#5229d431781bf5b265bec86ce9a9cce58a756cf9" + integrity sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg== dependencies: oauth "0.9.x" passport-strategy "1.x.x" @@ -19597,9 +20182,9 @@ pause@0.0.1: integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + version "3.1.2" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -19607,10 +20192,10 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -peek-readable@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz#9a045f291db254111c3412c1ce4fec27ddd4d202" - integrity sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ== +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== pend@~1.2.0: version "1.2.0" @@ -19667,11 +20252,11 @@ pg@^8.3.0, pg@^8.4.0: pgpass "1.x" pgpass@1.x: - version "1.0.2" - resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" - integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= + version "1.0.5" + resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== dependencies: - split "^1.0.0" + split2 "^4.1.0" pgtools@^0.3.0: version "0.3.2" @@ -19694,9 +20279,9 @@ picocolors@^1.0.0: integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" @@ -19762,12 +20347,10 @@ pino@^5.12.2: quick-format-unescaped "^3.0.3" sonic-boom "^0.7.5" -pirates@^4.0.0, pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" +pirates@^4.0.1, pirates@^4.0.5: + version "4.0.5" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== pixelmatch@^4.0.2: version "4.0.2" @@ -19831,109 +20414,107 @@ posix-character-classes@^0.1.0: resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-calc@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" - integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== +postcss-calc@^8.2.0: + version "8.2.4" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== dependencies: - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" -postcss-colormin@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d" - integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA== +postcss-colormin@^5.2.5: + version "5.2.5" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz#d1fc269ac2ad03fe641d462b5d1dada35c69968a" + integrity sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" colord "^2.9.1" - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-convert-values@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" - integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== +postcss-convert-values@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz#3e74dd97c581f475ae7b4500bc0a7c4fb3a6b1b6" + integrity sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw== dependencies: - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-discard-comments@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" - integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== +postcss-discard-comments@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz#011acb63418d600fdbe18804e1bbecb543ad2f87" + integrity sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q== -postcss-discard-duplicates@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" - integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== +postcss-discard-duplicates@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz#10f202a4cfe9d407b73dfea7a477054d21ea0c1f" + integrity sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw== -postcss-discard-empty@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" - integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== +postcss-discard-empty@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz#ec185af4a3710b88933b0ff751aa157b6041dd6a" + integrity sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA== -postcss-discard-overridden@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" - integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== +postcss-discard-overridden@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz#cc999d6caf18ea16eff8b2b58f48ec3ddee35c9c" + integrity sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg== postcss-load-config@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz#d214bf9cfec1608ffaf0f4161b3ba20664ab64b9" - integrity sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ== + version "3.1.3" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz#21935b2c43b9a86e6581a576ca7ee1bde2bd1d23" + integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw== dependencies: - cosmiconfig "^7.0.0" - import-cwd "^3.0.0" + lilconfig "^2.0.4" + yaml "^1.10.2" -postcss-merge-longhand@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" - integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== +postcss-merge-longhand@^5.0.6: + version "5.0.6" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz#090e60d5d3b3caad899f8774f8dccb33217d2166" + integrity sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg== dependencies: - postcss-value-parser "^4.1.0" - stylehacks "^5.0.1" + postcss-value-parser "^4.2.0" + stylehacks "^5.0.3" -postcss-merge-rules@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" - integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== +postcss-merge-rules@^5.0.6: + version "5.0.6" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz#26b37411fe1e80202fcef61cab027265b8925f2b" + integrity sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" - cssnano-utils "^2.0.1" + cssnano-utils "^3.0.2" postcss-selector-parser "^6.0.5" -postcss-minify-font-values@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" - integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== +postcss-minify-font-values@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz#627d824406b0712243221891f40a44fffe1467fd" + integrity sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA== dependencies: - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-minify-gradients@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" - integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== +postcss-minify-gradients@^5.0.6: + version "5.0.6" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz#b07cef51a93f075e94053fd972ff1cba2eaf6503" + integrity sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A== dependencies: colord "^2.9.1" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + cssnano-utils "^3.0.2" + postcss-value-parser "^4.2.0" -postcss-minify-params@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" - integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== +postcss-minify-params@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz#86cb624358cd45c21946f8c317893f0449396646" + integrity sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg== dependencies: - alphanum-sort "^1.0.2" browserslist "^4.16.6" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + cssnano-utils "^3.0.2" + postcss-value-parser "^4.2.0" -postcss-minify-selectors@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" - integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== +postcss-minify-selectors@^5.1.3: + version "5.1.3" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz#6ac12d52aa661fd509469d87ab2cebb0a1e3a1b5" + integrity sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ== dependencies: - alphanum-sort "^1.0.2" postcss-selector-parser "^6.0.5" postcss-modules-extract-imports@^3.0.0: @@ -19965,11 +20546,11 @@ postcss-modules-values@^4.0.0: icss-utils "^5.0.0" postcss-modules@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.0.0.tgz#2bc7f276ab88f3f1b0fadf6cbd7772d43b5f3b9b" - integrity sha512-ghS/ovDzDqARm4Zj6L2ntadjyQMoyJmi0JkLlYtH2QFLrvNlxH5OAVRPWPeKilB0pY7SbuhO173KOWkPAxRJcw== + version "4.3.0" + resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.0.tgz#1cb32f16a8cfffe2b989598f8135eb6427106ec7" + integrity sha512-zoUttLDSsbWDinJM9jH37o7hulLRyEgH6fZm2PchxN7AZ8rkdWiALyNhnQ7+jg7cX9f10m6y5VhHsrjO0Mf/DA== dependencies: - generic-names "^2.0.1" + generic-names "^4.0.0" icss-replace-symbols "^1.1.0" lodash.camelcase "^4.3.0" postcss-modules-extract-imports "^3.0.0" @@ -19978,129 +20559,113 @@ postcss-modules@^4.0.0: postcss-modules-values "^4.0.0" string-hash "^1.1.1" -postcss-normalize-charset@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" - integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== - -postcss-normalize-display-values@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" - integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-positions@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" - integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-normalize-repeat-style@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" - integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-string@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" - integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-normalize-timing-functions@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" - integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-unicode@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" - integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== - dependencies: - browserslist "^4.16.0" - postcss-value-parser "^4.1.0" - -postcss-normalize-url@^5.0.3: +postcss-normalize-charset@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz#42eca6ede57fe69075fab0f88ac8e48916ef931c" - integrity sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg== + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz#719fb9f9ca9835fcbd4fed8d6e0d72a79e7b5472" + integrity sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA== + +postcss-normalize-display-values@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz#94cc82e20c51cc4ffba6b36e9618adc1e50db8c1" + integrity sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz#4001f38c99675437b83277836fb4291887fcc6cc" + integrity sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz#d005adf9ee45fae78b673031a376c0c871315145" + integrity sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz#b5e00a07597e7aa8a871817bfeac2bfaa59c3333" + integrity sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz#47210227bfcba5e52650d7a18654337090de7072" + integrity sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz#02866096937005cdb2c17116c690f29505a1623d" + integrity sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig== + dependencies: + browserslist "^4.16.6" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz#c39efc12ff119f6f45f0b4f516902b12c8080e3a" + integrity sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ== dependencies: - is-absolute-url "^3.0.3" normalize-url "^6.0.1" - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" - integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== +postcss-normalize-whitespace@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz#1d477e7da23fecef91fc4e37d462272c7b55c5ca" + integrity sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw== dependencies: - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-ordered-values@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" - integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== +postcss-ordered-values@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz#e878af822a130c3f3709737e24cb815ca7c6d040" + integrity sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ== dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + cssnano-utils "^3.0.2" + postcss-value-parser "^4.2.0" -postcss-reduce-initial@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" - integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== +postcss-reduce-initial@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz#68891594defd648253703bbd8f1093162f19568d" + integrity sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA== dependencies: - browserslist "^4.16.0" + browserslist "^4.16.6" caniuse-api "^3.0.0" -postcss-reduce-transforms@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" - integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== +postcss-reduce-transforms@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz#717e72d30befe857f7d2784dba10eb1157863712" + integrity sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g== dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.4" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" - -postcss-selector-parser@^6.0.5: - version "6.0.6" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.9" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" - integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== +postcss-svgo@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz#cfa8682f47b88f7cd75108ec499e133b43102abf" + integrity sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg== dependencies: - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" svgo "^2.7.0" -postcss-unique-selectors@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" - integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== +postcss-unique-selectors@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz#08e188126b634ddfa615fb1d6c262bafdd64826e" + integrity sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ== dependencies: - alphanum-sort "^1.0.2" postcss-selector-parser "^6.0.5" postcss-value-parser@^3.3.0: @@ -20108,7 +20673,7 @@ postcss-value-parser@^3.3.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -20133,9 +20698,9 @@ postgres-bytea@~1.0.0: integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= postgres-date@~1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" - integrity sha512-pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA== + version "1.0.7" + resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== postgres-interval@^1.1.0: version "1.2.0" @@ -20226,31 +20791,25 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.2: - version "27.3.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" - integrity sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA== +pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== dependencies: - "@jest/types" "^27.2.5" ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^17.0.1" -printj@~1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" - integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== +printj@~1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz#9af6b1d55647a1587ac44f4c1654a4b95b8e12cb" + integrity sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg== prismjs@^1.27.0, prismjs@~1.27.0: version "1.27.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== -private@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - proc-log@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" @@ -20345,9 +20904,9 @@ properties-reader@^2.2.0: mkdirp "^1.0.4" property-expr@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910" - integrity sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg== + version "2.0.5" + resolved "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz#278bdb15308ae16af3e3b9640024524f4dc02cb4" + integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA== property-information@^5.0.0: version "5.6.0" @@ -20357,19 +20916,19 @@ property-information@^5.0.0: xtend "^4.0.0" property-information@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/property-information/-/property-information-6.0.1.tgz#7c668d9f2b9cb63bc3e105d8b8dfee7221a17800" - integrity sha512-F4WUUAF7fMeF4/JUFHNBWDaKDXi2jbvqBW/y6o5wsf3j19wTZ7S60TmtB5HoBhtgw7NKQRMWuz5vk2PR0CygUg== + version "6.1.1" + resolved "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" + integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== proto-list@~1.2.1: version "1.2.4" resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -proto3-json-serializer@^0.1.5: - version "0.1.6" - resolved "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.6.tgz#67cf3b8d5f4c8bebfc410698ad3b1ed64da39c7b" - integrity sha512-tGbV6m6Kad8NqxMh5hw87euPS0YoZSAOIfvR01zYkQV8Gpx1V/8yU/0gCKCvfCkhAJsjvzzhnnsdQxA1w7PSog== +proto3-json-serializer@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.8.tgz#f80f9afc1efe5ed9a9856bbbd17dc7cabd7ce9a3" + integrity sha512-ACilkB6s1U1gWnl5jtICpnDai4VCxmI9GFxuEaYdxtDG2oVI3sVFIUsvUZcQbJgtPM6p+zqKbjTKQZp6Y4FpQw== dependencies: protobufjs "^6.11.2" @@ -20393,9 +20952,9 @@ protobufjs@6.11.2, protobufjs@^6.10.0, protobufjs@^6.11.2, protobufjs@^6.8.6: long "^4.0.0" protocols@^1.1.0, protocols@^1.4.0: - version "1.4.7" - resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" - integrity sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg== + version "1.4.8" + resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" + integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== proxy-addr@~2.0.7: version "2.0.7" @@ -20449,11 +21008,6 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -puka@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/puka/-/puka-1.0.1.tgz#a2df782b7eb4cf9564e4c93a5da422de0dfacc02" - integrity sha512-ssjRZxBd7BT3dte1RR3VoeT2cT/ODH8x+h0rUF1rMqB0srHYf48stSDWfiYakTp5UBZMxroZhB2+ExLDHm7W3g== - pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -20511,7 +21065,7 @@ puppeteer@^13.1.1: unbzip2-stream "1.4.3" ws "8.5.0" -q@^1.5.1: +q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= @@ -20526,7 +21080,7 @@ qs@6.9.7: resolved "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== -qs@^6.10.1, qs@^6.10.2, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: +qs@^6.10.1, qs@^6.10.2, qs@^6.10.3, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: version "6.10.3" resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== @@ -20534,14 +21088,24 @@ qs@^6.10.1, qs@^6.10.2, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: side-channel "^1.0.4" qs@~6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + version "6.5.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@^6.13.8: + version "6.14.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" + integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== + dependencies: + decode-uri-component "^0.2.0" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" query-string@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/query-string/-/query-string-7.0.0.tgz#aaad2c8d5c6a6d0c6afada877fecbd56af79e609" - integrity sha512-Iy7moLybliR5ZgrK/1R3vjrXq03S13Vz4Rbm5Jg3EFq1LUmQppto0qtXz4vqZ386MSRjZgnTSZ9QC+NZOSd/XA== + version "7.1.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" + integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== dependencies: decode-uri-component "^0.2.0" filter-obj "^1.1.0" @@ -20563,6 +21127,11 @@ querystringify@^2.1.1: resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + quick-format-unescaped@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz#fb3e468ac64c01d22305806c39f121ddac0d1fb9" @@ -20579,9 +21148,9 @@ quick-lru@^5.1.1: integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== raf-schd@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" - integrity sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ== + version "4.0.3" + resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a" + integrity sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ== raf@^3.4.0: version "3.4.1" @@ -20625,7 +21194,7 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.3: +raw-body@2.4.3, raw-body@^2.4.1: version "2.4.3" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== @@ -20635,16 +21204,6 @@ raw-body@2.4.3: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@^2.4.1: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - rc-progress@3.2.4: version "3.2.4" resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.2.4.tgz#4036acdae2566438545bc4df2203248babaf7549" @@ -20655,9 +21214,9 @@ rc-progress@3.2.4: rc-util "^5.16.1" rc-util@^5.16.1: - version "5.16.1" - resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.16.1.tgz#374db7cb735512f05165ddc3d6b2c61c21b8b4e3" - integrity sha512-kSCyytvdb3aRxQacS/71ta6c+kBWvM1v8/2h9d/HaNWauc3qB8pLnF20PJ8NajkNN8gb+rR1l0eWO+D4Pz+LLQ== + version "5.18.1" + resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.18.1.tgz#80bd1450b5254655d2fbea63e3d34f6871e9be79" + integrity sha512-24xaSrMZUEKh1+suDOtJWfPe9E6YrwryViZcoPO0miJTKzP4qhUlV5AAlKQ82AJilz/AOHfi3l6HoX8qa1ye8w== dependencies: "@babel/runtime" "^7.12.5" react-is "^16.12.0" @@ -20674,15 +21233,15 @@ rc@^1.2.7, rc@^1.2.8: strip-json-comments "~2.0.1" react-beautiful-dnd@^13.0.0: - version "13.0.0" - resolved "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.0.0.tgz#f70cc8ff82b84bc718f8af157c9f95757a6c3b40" - integrity sha512-87It8sN0ineoC3nBW0SbQuTFXM6bUqM62uJGY4BtTf0yzPl8/3+bHMWkgIe0Z6m8e+gJgjWxefGRVfpE3VcdEg== + version "13.1.0" + resolved "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz#ec97c81093593526454b0de69852ae433783844d" + integrity sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA== dependencies: - "@babel/runtime" "^7.8.4" + "@babel/runtime" "^7.9.2" css-box-model "^1.2.0" memoize-one "^5.1.1" raf-schd "^4.0.2" - react-redux "^7.1.1" + react-redux "^7.2.0" redux "^4.0.4" use-memo-one "^1.1.1" @@ -20747,9 +21306,9 @@ react-double-scrollbar@0.0.15: integrity sha1-6RWrjLO5WYdwdfSUNt6/2wQoj+Q= react-error-boundary@^3.1.0: - version "3.1.3" - resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.3.tgz#276bfa05de8ac17b863587c9e0647522c25e2a0b" - integrity sha512-A+F9HHy9fvt9t8SNDlonq01prnU8AmkjvGKV4kk8seB9kU3xMEO8J/PQlLVmoOIDODl5U2kufSBs4vrWIqhsAA== + version "3.1.4" + resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz#255db92b23197108757a888b01e5b729919abde0" + integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA== dependencies: "@babel/runtime" "^7.12.5" @@ -20823,7 +21382,7 @@ react-is@^16.10.2, react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -"react-is@^16.8.0 || ^17.0.0", react-is@^17.0.0, react-is@^17.0.1: +"react-is@^16.8.0 || ^17.0.0", react-is@^17.0.0, react-is@^17.0.1, react-is@^17.0.2: version "17.0.2" resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== @@ -20862,17 +21421,17 @@ react-query@^3.34.16: broadcast-channel "^3.4.1" match-sorter "^6.0.2" -react-redux@^7.1.1, react-redux@^7.2.4: - version "7.2.5" - resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.5.tgz#213c1b05aa1187d9c940ddfc0b29450957f6a3b8" - integrity sha512-Dt29bNyBsbQaysp6s/dN0gUodcq+dVKKER8Qv82UrpeygwYeX1raTtil7O/fftw/rFqzaf6gJhDZRkkZnn6bjg== +react-redux@^7.2.0, react-redux@^7.2.4: + version "7.2.6" + resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.6.tgz#49633a24fe552b5f9caf58feb8a138936ddfe9aa" + integrity sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ== dependencies: - "@babel/runtime" "^7.12.1" - "@types/react-redux" "^7.1.16" + "@babel/runtime" "^7.15.4" + "@types/react-redux" "^7.1.20" hoist-non-react-statics "^3.3.2" loose-envify "^1.4.0" prop-types "^15.7.2" - react-is "^16.13.1" + react-is "^17.0.2" react-resize-detector@^2.3.0: version "2.3.0" @@ -20916,14 +21475,14 @@ react-router@^6.0.0-beta.0: history "^5.2.0" react-side-effect@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz#1ce4a8b4445168c487ed24dab886421f74d380d3" - integrity sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg== + version "2.1.1" + resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3" + integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ== react-smooth@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.5.tgz#94ae161d7951cdd893ccb7099d031d342cb762ad" - integrity sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w== + version "1.0.6" + resolved "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.6.tgz#18b964f123f7bca099e078324338cd8739346d0a" + integrity sha512-B2vL4trGpNSMSOzFiAul9kFAsxTukL9Wyy9EXtkQy3GJr6sZqW9e1nShdVOJ3hRYamPZ94O17r3Q0bjSw3UYtg== dependencies: lodash "~4.17.4" prop-types "^15.6.0" @@ -20958,15 +21517,22 @@ react-syntax-highlighter@^15.4.5: refractor "^3.6.0" react-test-renderer@^16.13.1: - version "16.13.1" - resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" - integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== + version "16.14.0" + resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" + integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" react-is "^16.8.6" scheduler "^0.19.1" +react-text-truncate@^0.17.0: + version "0.17.0" + resolved "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.17.0.tgz#a820bfd9d084caf85d900a011fe2ab4216fc3821" + integrity sha512-EUL7s47XApOgbR//t/9X+fXg1feS47RcTywNXEQZAlNL0vrCIYGye1C+mpUgGIIXKTkabweid6z7s16AkTo5sA== + dependencies: + prop-types "^15.5.7" + react-text-truncate@^0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.18.0.tgz#c65f4be660d24734badb903a4832467eddcf8058" @@ -20985,9 +21551,9 @@ react-transition-group@2.9.0, react-transition-group@^2.5.0: react-lifecycles-compat "^3.0.4" react-transition-group@^4.0.0, react-transition-group@^4.4.0: - version "4.4.1" - resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" - integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== + version "4.4.2" + resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" + integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== dependencies: "@babel/runtime" "^7.5.5" dom-helpers "^5.0.1" @@ -21045,7 +21611,7 @@ read-cmd-shim@^2.0.0: resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== -read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2: +read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== @@ -21054,21 +21620,29 @@ read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2: npm-normalize-package-bin "^1.0.1" read-package-json@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1" - integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== + version "2.1.2" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" + integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== dependencies: glob "^7.1.1" - json-parse-better-errors "^1.0.1" + json-parse-even-better-errors "^2.3.0" normalize-package-data "^2.0.0" npm-normalize-package-bin "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.2" read-package-json@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.0.tgz#2219328e77c9be34f035a4ce58d1fb8e2979adf9" - integrity sha512-4TnJZ5fnDs+/3deg1AuMExL4R1SFNRLQeOhV9c8oDKm3eoG6u8xU0r0mNNRJHi3K6B+jXmT7JOhwhAklWw9SSQ== + version "3.0.1" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz#c7108f0b9390257b08c21e3004d2404c806744b9" + integrity sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng== + dependencies: + glob "^7.1.1" + json-parse-even-better-errors "^2.3.0" + normalize-package-data "^3.0.0" + npm-normalize-package-bin "^1.0.0" + +read-package-json@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.1.tgz#153be72fce801578c1c86b8ef2b21188df1b9eea" + integrity sha512-P82sbZJ3ldDrWCOSKxJT0r/CXMWR0OR3KRh55SgKo3p91GSIEEC32v3lSHAvO/UcH3/IoL7uqhOFBduAnwdldw== dependencies: glob "^7.1.1" json-parse-even-better-errors "^2.3.0" @@ -21208,9 +21782,9 @@ readdirp@~3.6.0: picomatch "^2.2.1" recast@^0.20.3, recast@^0.20.4: - version "0.20.4" - resolved "https://registry.npmjs.org/recast/-/recast-0.20.4.tgz#db55983eac70c46b3fff96c8e467d65ffb4a7abc" - integrity sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ== + version "0.20.5" + resolved "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" + integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== dependencies: ast-types "0.14.2" esprima "~4.0.0" @@ -21242,9 +21816,9 @@ recharts@^1.8.5: reduce-css-calc "^1.3.0" recharts@^2.1.5: - version "2.1.8" - resolved "https://registry.npmjs.org/recharts/-/recharts-2.1.8.tgz#ca8774fcec5f5d7ec15dedd638db9ee12faf1c09" - integrity sha512-Wi7ufdDGyvy/BPf1za1Ok7VeWB2KtEejaewO9ulmlUhvn5l5RPS4AOkrUfhtMRTTjgJ4K6AbWMDpwtDjczUHJA== + version "2.1.9" + resolved "https://registry.npmjs.org/recharts/-/recharts-2.1.9.tgz#a52d411a7d822d118f7754cfc9c50db8fab46fb9" + integrity sha512-VozH5uznUvGqD7n224FGj7cmMAenlS0HPCs+7r2HeeHiQK6un6z0CTZfWVAB860xbcr4m+BN/EGMPZmYWd34Rg== dependencies: "@types/d3-interpolate" "^2.0.0" "@types/d3-scale" "^3.0.0" @@ -21357,17 +21931,17 @@ refractor@^3.6.0: parse-entities "^2.0.0" prismjs "~1.27.0" -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: - regenerate "^1.4.0" + regenerate "^1.4.2" -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.10.5: version "0.10.5" @@ -21385,12 +21959,11 @@ regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + version "0.14.5" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" - private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -21413,22 +21986,22 @@ regexpp@^3.2.0: resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== + version "4.2.1" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== dependencies: rc "^1.2.8" @@ -21439,15 +22012,15 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" -regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" @@ -21504,9 +22077,9 @@ remark-gfm@^3.0.1: unified "^10.0.0" remark-parse@^10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz#65e2b2b34d8581d36b97f12a2926bb2126961cb4" - integrity sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ== + version "10.0.1" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" + integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== dependencies: "@types/mdast" "^3.0.0" mdast-util-from-markdown "^1.0.0" @@ -21562,9 +22135,9 @@ renderkid@^3.0.0: strip-ansi "^6.0.1" repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + version "1.1.4" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" @@ -21659,9 +22232,9 @@ resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== resolve-alpn@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" - integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== + version "1.2.1" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-cwd@^3.0.0: version "3.0.0" @@ -21686,11 +22259,11 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0: - version "1.21.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" - integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== + version "1.22.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.8.0" + is-core-module "^2.8.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -21765,7 +22338,12 @@ retry-request@^4.0.0, retry-request@^4.2.2: debug "^4.1.1" extend "^3.0.2" -retry@0.12.0, retry@^0.12.0: +retry@0.13.1, retry@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= @@ -21776,9 +22354,9 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfc4648@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz#c75b2856ad2e2d588b6ddb985d556f1f7f2a2abd" - integrity sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg== + version "1.5.1" + resolved "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.1.tgz#b0b16756e33d9de8c0c7833e94b28e627ec372a4" + integrity sha512-60e/YWs2/D3MV1ErdjhJHcmlgnyLUiG4X/14dgsfm9/zmCWLN16xI6YqJYSCd/OANM7bUNzJqPY5B8/02S9Ibw== rfdc@^1.3.0: version "1.3.0" @@ -21831,14 +22409,21 @@ rollup-plugin-dts@^4.0.1: "@babel/code-frame" "^7.16.7" rollup-plugin-esbuild@^4.7.2: - version "4.7.2" - resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.7.2.tgz#1a496a9f96257cdf5ed800e818932859232471f8" - integrity sha512-rBS2hTedtG+wL/yyIWQ84zju5rtfF15gkaCLN0vsWGmBdRd0UPm52meAwkmrsPQf3mB/H2o+k9Q8Ce8A66SE5A== + version "4.8.2" + resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.8.2.tgz#c097b93cd4b622e62206cadb5797589f548cf48c" + integrity sha512-wsaYNOjzTb6dN1qCIZsMZ7Q0LWiPJklYs2TDI8vJA2LUbvtPUY+17TC8C0vSat3jPMInfR9XWKdA7ttuwkjsGQ== dependencies: "@rollup/pluginutils" "^4.1.1" + debug "^4.3.3" + es-module-lexer "^0.9.3" joycon "^3.0.1" jsonc-parser "^3.0.0" +rollup-plugin-peer-deps-external@^2.2.2: + version "2.2.4" + resolved "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz#8a420bbfd6dccc30aeb68c9bf57011f2f109570d" + integrity sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g== + rollup-plugin-postcss@*, rollup-plugin-postcss@^4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" @@ -21886,23 +22471,23 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== rtl-css-js@^1.14.0: - version "1.14.0" - resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d" - integrity sha512-Dl5xDTeN3e7scU1cWX8c9b6/Nqz3u/HgR4gePc1kWXYiQWVQbKCEyK6+Hxve9LbcJ5EieHy1J9nJCN3grTtGwg== + version "1.15.0" + resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.15.0.tgz#680ed816e570a9ebccba9e1cd0f202c6a8bb2dc0" + integrity sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew== dependencies: "@babel/runtime" "^7.1.2" run-async@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== - dependencies: - is-promise "^2.1.0" + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" run-script-webpack-plugin@^0.0.11: version "0.0.11" @@ -21916,10 +22501,10 @@ rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.0, rxjs@^6.6.3: dependencies: tslib "^1.9.0" -rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.1, rxjs@^7.5.2: - version "7.5.5" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== +rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.1, rxjs@^7.5.4: + version "7.5.4" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz#3d6bd407e6b7ce9a123e76b1e770dc5761aa368d" + integrity sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ== dependencies: tslib "^2.1.0" @@ -21935,7 +22520,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -21959,11 +22544,6 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safe-stable-stringify@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a" - integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw== - safe-stable-stringify@^2.2.0, safe-stable-stringify@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" @@ -22001,7 +22581,7 @@ sax@1.2.1: resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= -sax@>=0.6.0: +sax@>=0.6.0, sax@~1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -22063,9 +22643,9 @@ scoped-regex@^2.0.0: integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== screenfull@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.1.0.tgz#85c13c70f4ead4c1b8a935c70010dfdcd2c0e5c8" - integrity sha512-dYaNuOdzr+kc6J6CFcBrzkLCfyGcMg+gWkJ8us93IQ7y1cevhQAugFsaCdMHb6lw8KV3xPzSxzH7zM1dQap9mA== + version "5.2.0" + resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba" + integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== scuid@^1.1.0: version "1.1.0" @@ -22368,12 +22948,12 @@ simple-swizzle@^0.2.2: is-arrayish "^0.3.1" sinon@^11.1.1: - version "11.1.1" - resolved "https://registry.npmjs.org/sinon/-/sinon-11.1.1.tgz#99a295a8b6f0fadbbb7e004076f3ae54fc6eab91" - integrity sha512-ZSSmlkSyhUWbkF01Z9tEbxZLF/5tRC9eojCdFh33gtQaP7ITQVaMWQHGuFM7Cuf/KEfihuh1tTl3/ABju3AQMg== + version "11.1.2" + resolved "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz#9e78850c747241d5c59d1614d8f9cbe8840e8674" + integrity sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw== dependencies: "@sinonjs/commons" "^1.8.3" - "@sinonjs/fake-timers" "^7.1.0" + "@sinonjs/fake-timers" "^7.1.2" "@sinonjs/samsam" "^6.0.2" diff "^5.0.0" nise "^5.1.0" @@ -22542,20 +23122,20 @@ socket.io@^2.2.0: socket.io-parser "~3.4.0" sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + version "0.3.24" + resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== dependencies: faye-websocket "^0.11.3" - uuid "^3.4.0" + uuid "^8.3.2" websocket-driver "^0.7.4" socks-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" - integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== + version "5.0.1" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== dependencies: - agent-base "6" + agent-base "^6.0.2" debug "4" socks "^2.3.3" @@ -22636,9 +23216,9 @@ source-map-support@^0.5.10, source-map-support@^0.5.16, source-map-support@^0.5. source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + version "0.4.1" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@0.5.6: version "0.5.6" @@ -22689,30 +23269,30 @@ spawndamnit@^2.0.0: signal-exit "^3.0.2" spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + version "3.1.1" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + version "2.3.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + version "3.0.1" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + version "3.0.11" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== spdy-transport@^3.0.0: version "3.0.0" @@ -22761,6 +23341,11 @@ split2@^3.0.0: dependencies: readable-stream "^3.0.0" +split2@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + split@0.3: version "0.3.3" resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -22801,9 +23386,9 @@ ssh-remote-port-forward@^1.0.4: ssh2 "^1.4.0" ssh2@^1.4.0: - version "1.5.0" - resolved "https://registry.npmjs.org/ssh2/-/ssh2-1.5.0.tgz#4dc559ba98a1cbb420e8d42998dfe35d0eda92bc" - integrity sha512-iUmRkhH9KGeszQwDW7YyyqjsMTf4z+0o48Cp4xOwlY5LjtbIAvyd3fwnsoUZW/hXmTCRA3yt7S/Jb9uVjErVlA== + version "1.6.0" + resolved "https://registry.npmjs.org/ssh2/-/ssh2-1.6.0.tgz#61aebc3a6910fe488f9c85cd8355bdf8d4724e05" + integrity sha512-lxc+uvXqOxyQ99N2M7k5o4pkYDO5GptOTYduWw7hIM41icxvoBcCNHcj+LTKrjkL0vFcAl+qfZekthoSFRJn2Q== dependencies: asn1 "^0.2.4" bcrypt-pbkdf "^1.0.2" @@ -22812,9 +23397,9 @@ ssh2@^1.4.0: nan "^2.15.0" sshpk@^1.14.1, sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.17.0" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -22851,16 +23436,16 @@ stack-trace@0.0.x: integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== + version "2.0.5" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== dependencies: escape-string-regexp "^2.0.0" stackframe@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71" - integrity sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ== + version "1.2.1" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1" + integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg== stacktrace-gps@^3.0.4: version "3.0.4" @@ -22940,7 +23525,7 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-events@^1.0.1, stream-events@^1.0.4, stream-events@^1.0.5: +stream-events@^1.0.4, stream-events@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== @@ -22963,7 +23548,7 @@ stream-shift@^1.0.0: resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -stream-transform@^2.0.1: +stream-transform@^2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3" integrity sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ== @@ -22998,9 +23583,9 @@ string-hash@^1.1.1: integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= string-length@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" - integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + version "4.0.2" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== dependencies: char-regex "^1.0.2" strip-ansi "^6.0.0" @@ -23031,15 +23616,6 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^5.0.0: version "5.1.0" resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz#5ab00980cfb29f43e736b113a120a73a0fb569d3" @@ -23093,7 +23669,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@5.2.0, strip-ansi@^5.1.0: +strip-ansi@5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -23197,12 +23773,12 @@ strong-log-transformer@^2.1.0: through "^2.3.4" strtok3@^6.2.4: - version "6.2.4" - resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz#302aea64c0fa25d12a0385069ba66253fdc38a81" - integrity sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw== + version "6.3.0" + resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== dependencies: "@tokenizer/token" "^0.3.0" - peek-readable "^4.0.1" + peek-readable "^4.1.0" stubs@^3.0.0: version "3.0.0" @@ -23231,18 +23807,18 @@ style-to-object@^0.3.0: dependencies: inline-style-parser "0.1.1" -stylehacks@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" - integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== +stylehacks@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz#2ef3de567bfa2be716d29a93bf3d208c133e8d04" + integrity sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg== dependencies: - browserslist "^4.16.0" + browserslist "^4.16.6" postcss-selector-parser "^6.0.4" stylis@^4.0.6: - version "4.0.7" - resolved "https://registry.npmjs.org/stylis/-/stylis-4.0.7.tgz#412a90c28079417f3d27c028035095e4232d2904" - integrity sha512-OFFeUXFgwnGOKvEXaSv0D0KQ5ADP0n6g3SVONx6I/85JzNZ3u50FRwB3lVIk1QO2HNdI75tbVzc4Z66Gdp9voA== + version "4.0.13" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" + integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== subscriptions-transport-ws@^0.11.0: version "0.11.0" @@ -23335,9 +23911,9 @@ supports-color@^9.2.1: integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ== supports-hyperlinks@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" - integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + version "2.2.0" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -23352,6 +23928,25 @@ svg-parser@^2.0.2: resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== +svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + svgo@^2.5.0, svgo@^2.7.0: version "2.8.0" resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" @@ -23386,9 +23981,9 @@ swagger-client@^3.18.4: url "~0.11.0" swagger-ui-react@^4.1.3: - version "4.6.1" - resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.6.1.tgz#25d0dc380f73fcba00df214f50adc940910f480c" - integrity sha512-NIVzdzzaHnoG6NxK15A0wpd7TiGPpcK4BBh5mgLq6/hCrytjpeQZrkSM1Yf0p1fD7+rkvKcI+b33w/6RCLt3yw== + version "4.5.1" + resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.5.1.tgz#8dd36f56a4bca47778539a1637d73578794ad1f6" + integrity sha512-nQ+erop7oiUvkYgUplGjDOs5LPBarnNNC4OW1IWqwo1avWFOhzATDlEOXbiE2SSDu5opC5HePX7cKIajBoQu9Q== dependencies: "@babel/runtime-corejs3" "^7.16.8" "@braintree/sanitize-url" "^5.0.2" @@ -23418,7 +24013,7 @@ swagger-ui-react@^4.1.3: serialize-error "^8.1.0" sha.js "^2.4.11" swagger-client "^3.18.4" - url-parse "^1.5.8" + url-parse "^1.5.6" xml "=1.0.1" xml-but-prettier "^1.0.1" zenscroll "^4.0.2" @@ -23435,7 +24030,7 @@ swr@^1.1.2: resolved "https://registry.npmjs.org/swr/-/swr-1.2.2.tgz#6cae09928d30593a7980d80f85823e57468fac5d" integrity sha512-ky0BskS/V47GpW8d6RU7CPsr6J8cr7mQD6+do5eky3bM0IyJaoi3vO8UhvrzJaObuTlGhPl2szodeB2dUd76Xw== -symbol-observable@1.2.0, symbol-observable@^1.0.4, symbol-observable@^1.1.0: +symbol-observable@^1.0.4, symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -23564,11 +24159,11 @@ tdigest@^0.1.1: react-use "^17.2.4" teeny-request@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-7.0.1.tgz#bdd41fdffea5f8fbc0d29392cb47bec4f66b2b4c" - integrity sha512-sasJmQ37klOlplL4Ia/786M5YlOcoLGQyq2TE4WHSRupbAuDaQW0PfVxV4MtdBtRJ4ngzS+1qim8zP6Zp35qCw== + version "7.1.3" + resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.3.tgz#5a3d90c559a6c664a993477b138e331a518765ba" + integrity sha512-Ew3aoFzgQEatLA5OBIjdr1DWJUaC1xardG+qbPPo5k/y/3fMwXLxpjh5UB5dVfElktLaQbbMs80chkz53ByvSg== dependencies: - http-proxy-agent "^4.0.0" + http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" node-fetch "^2.6.1" stream-events "^1.0.5" @@ -23598,9 +24193,9 @@ temp@^0.8.4: rimraf "~2.6.2" term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== + version "2.2.1" + resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== terminal-link@^2.0.0: version "2.1.1" @@ -23611,22 +24206,21 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@*, terser-webpack-plugin@^5.1.3: - version "5.3.0" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz#21641326486ecf91d8054161c816e464435bae9f" - integrity sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ== + version "5.3.1" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" + integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== dependencies: - jest-worker "^27.4.1" + jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.0" source-map "^0.6.1" terser "^5.7.2" terser@^5.10.0, terser@^5.7.2: - version "5.12.0" - resolved "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" - integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== + version "5.10.0" + resolved "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" + integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== dependencies: - acorn "^8.5.0" commander "^2.20.0" source-map "~0.7.2" source-map-support "~0.5.20" @@ -23739,9 +24333,9 @@ tildify@2.0.0: integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + version "2.0.12" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" @@ -23756,9 +24350,9 @@ timsort@^0.3.0, timsort@~0.3.0: integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-invariant@^1.0.6: - version "1.1.0" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + version "1.2.0" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" + integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== tiny-merge-patch@^0.1.2: version "0.1.2" @@ -23783,9 +24377,9 @@ title-case@^3.0.3: tslib "^2.0.3" tmp-promise@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" - integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== + version "3.0.3" + resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== dependencies: tmp "^0.2.0" @@ -23803,7 +24397,7 @@ tmp@^0.2.0, tmp@~0.2.1: dependencies: rimraf "^3.0.0" -tmpl@1.0.x: +tmpl@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== @@ -23949,11 +24543,6 @@ trim-newlines@^3.0.0: resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -trim-off-newlines@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz#8df24847fcb821b0ab27d58ab6efec9f2fe961a1" - integrity sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg== - triple-beam@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" @@ -23982,14 +24571,14 @@ ts-easing@^0.2.0: integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== ts-interface-checker@^0.1.9: - version "0.1.10" - resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.10.tgz#b68a49e37e90a05797e590f08494dd528bf383cf" - integrity sha512-UJYuKET7ez7ry0CnvfY6fPIUIZDw+UI3qvTUQeS2MyI4TgEeWAUBqy185LeaHcdJ9zG2dgFpPJU/AecXU0Afug== + version "0.1.13" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== ts-log@^2.2.3: - version "2.2.3" - resolved "https://registry.npmjs.org/ts-log/-/ts-log-2.2.3.tgz#4da5640fe25a9fb52642cd32391c886721318efb" - integrity sha512-XvB+OdKSJ708Dmf9ore4Uf/q62AYDTzFcAdxc8KNML1mmAWywRFVt/dn1KYJH8Agt5UJNujfM3znU5PxgAzA2w== + version "2.2.4" + resolved "https://registry.npmjs.org/ts-log/-/ts-log-2.2.4.tgz#d672cf904b33735eaba67a7395c93d45fba475b3" + integrity sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ== ts-node@^10.0.0, ts-node@^10.2.1, ts-node@^10.4.0: version "10.7.0" @@ -24117,11 +24706,6 @@ type-detect@4.0.8, type-detect@^4.0.8: resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - type-fest@^0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" @@ -24137,6 +24721,11 @@ type-fest@^0.20.2: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + type-fest@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" @@ -24166,9 +24755,9 @@ type-is@~1.6.18: mime-types "~2.1.24" typed-rest-client@^1.8.4: - version "1.8.4" - resolved "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz#ba3fb788e5b9322547406392533f12d660a5ced6" - integrity sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg== + version "1.8.6" + resolved "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.6.tgz#d8facd6abd98cbd8ad14cccf056ca5cc306919d7" + integrity sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA== dependencies: qs "^6.9.1" tunnel "0.0.6" @@ -24186,6 +24775,19 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript-json-schema@^0.52.0: + version "0.52.0" + resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.52.0.tgz#954560ec90e5486e8f7a5b7706ec59286a708e29" + integrity sha512-3ZdHzx116gZ+D9LmMl5/+d1G3Rpt8baWngKzepYWHnXbAa8Winv64CmFRqLlMKneE1c40yugYDFcWdyX1FjGzQ== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/node" "^16.9.2" + glob "^7.1.7" + safe-stable-stringify "^2.2.0" + ts-node "^10.2.1" + typescript "~4.4.4" + yargs "^17.1.1" + typescript-json-schema@^0.53.0: version "0.53.0" resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.53.0.tgz#ac5b89e4b0af55be422f475a041360e0556f88ea" @@ -24199,15 +24801,20 @@ typescript-json-schema@^0.53.0: typescript "~4.5.0" yargs "^17.1.1" +typescript@~4.4.4: + version "4.4.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== + typescript@~4.5.0, typescript@~4.5.2, typescript@~4.5.4: version "4.5.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== -ua-parser-js@^0.7.18: - version "0.7.28" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" - integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== +ua-parser-js@^0.7.30: + version "0.7.31" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" + integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -24215,9 +24822,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.14.3" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf" - integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g== + version "3.15.1" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz#9403dc6fa5695a6172a91bc983ea39f0f7c9086d" + integrity sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ== uid-number@0.0.6: version "0.0.6" @@ -24231,11 +24838,16 @@ uid-safe@~2.1.5: dependencies: random-bytes "~1.0.0" -uid2@0.0.3, uid2@0.0.x: +uid2@0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I= +uid2@0.0.x: + version "0.0.4" + resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44" + integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA== + umask@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" @@ -24270,37 +24882,37 @@ undefsafe@^2.0.5: integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== underscore@^1.12.1, underscore@^1.9.1: - version "1.13.1" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" - integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== + version "1.13.2" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" + integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== undici@^4.9.3: - version "4.11.0" - resolved "https://registry.npmjs.org/undici/-/undici-4.11.0.tgz#41fb4f944704d77e1c9fb472d40d2dbece64ccf2" - integrity sha512-gofXRqAdm81rzaZgPbMf98qvrNGd3ptJ26+mCcF3EXoC817p//MtL8XcDpTvHUXxdW27rAM2jvTae+KyAchorw== + version "4.14.1" + resolved "https://registry.npmjs.org/undici/-/undici-4.14.1.tgz#7633b143a8a10d6d63335e00511d071e8d52a1d9" + integrity sha512-WJ+g+XqiZcATcBaUeluCajqy4pEDcQfK1vy+Fo+bC4/mqXI9IIQD/XWHLS70fkGUT6P52Drm7IFslO651OdLPQ== -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== unidiff@1.0.2: version "1.0.2" @@ -24310,9 +24922,9 @@ unidiff@1.0.2: diff "^2.2.2" unified@^10.0.0: - version "10.1.0" - resolved "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz#4e65eb38fc2448b1c5ee573a472340f52b9346fe" - integrity sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g== + version "10.1.1" + resolved "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz#345e349e3ab353ab612878338eb9d57b4dea1d46" + integrity sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w== dependencies: "@types/unist" "^2.0.0" bail "^2.0.0" @@ -24332,11 +24944,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -24429,13 +25036,6 @@ universal-github-app-jwt@^1.0.1: "@types/jsonwebtoken" "^8.3.3" jsonwebtoken "^8.5.1" -universal-user-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" - integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== - dependencies: - os-name "^3.1.0" - universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" @@ -24446,11 +25046,6 @@ universalify@^0.1.0, universalify@^0.1.2: resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -24476,6 +25071,11 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -24545,9 +25145,9 @@ upper-case@^2.0.2: tslib "^2.0.3" uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" @@ -24563,18 +25163,18 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.5.8: - version "1.5.10" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== +url-parse@^1.5.6: + version "1.5.9" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.9.tgz#05ff26484a0b5e4040ac64dcee4177223d74675e" + integrity sha512-HpOvhKBvre8wYez+QhHcYiVvVmeF6DVnuSOOPhe3cTum3BnqHhvKaZm8FU5yTiOu/Jut2ZpB2rA/SbBA1JIGlQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" url-value-parser@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.0.3.tgz#cd4b8d6754e458d65e8125260c09718d926e6e21" - integrity sha512-FjIX+Q9lYmDM9uYIGdMYfQW0uLbWVwN2NrL2ayAI7BTOvEwzH+VoDdNquwB9h4dFAx+u6mb0ONLa3sHD5DvyvA== + version "2.1.0" + resolved "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.1.0.tgz#fe1ae776122b2eea4bbf284896bbdcd7fc75e1fa" + integrity sha512-gIYPWXujdUdwd/9TGCHTf5Vvgw6lOxjE5Q/k+7WNByYyS0vW5WX0k+xuVlhvPq6gRNhzXVv/ezC+OfeAet5Kcw== url@0.10.3: version "0.10.3" @@ -24598,9 +25198,9 @@ use-immer@^0.6.0: integrity sha512-dFGRfvWCqPDTOt/S431ETYTg6+uxbpb7A1pptufwXVzGJY3RlXr38+3wyLNpc6SbbmAKjWl6+EP6uW74fkEsXQ== use-memo-one@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.1.tgz#39e6f08fe27e422a7d7b234b5f9056af313bd22c" - integrity sha512-oFfsyun+bP7RX8X2AskHNTxu+R3QdE/RC5IefMbqptmACAA/gfol1KDD5KRzPsGMa62sWxGZw+Ui43u6x4ddoQ== + version "1.1.2" + resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz#0c8203a329f76e040047a35a1197defe342fab20" + integrity sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ== use-resize-observer@^7.0.0: version "7.1.0" @@ -24638,6 +25238,16 @@ util-promisify@^2.1.0: dependencies: object.getownpropertydescriptors "^2.0.3" +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + util@0.10.3: version "0.10.3" resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -24705,14 +25315,14 @@ v8-compile-cache-lib@^3.0.0: integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + version "2.3.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== v8-to-istanbul@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc" - integrity sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA== + version "7.1.2" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -24789,13 +25399,13 @@ vary@^1, vary@~1.1.2: integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vasync@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/vasync/-/vasync-2.2.0.tgz#cfde751860a15822db3b132bc59b116a4adaf01b" - integrity sha1-z951GGChWCLbOxMrxZsRakra8Bs= + version "2.2.1" + resolved "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz#d881379ff3685e4affa8e775cf0fd369262a201b" + integrity sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ== dependencies: verror "1.10.0" -verror@1.10.0, verror@^1.8.1: +verror@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= @@ -24804,18 +25414,27 @@ verror@1.10.0, verror@^1.8.1: core-util-is "1.0.2" extsprintf "^1.2.0" +verror@^1.8.1: + version "1.10.1" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb" + integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vfile-message@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz#db7eaebe7fecb853010f2ef1664427f52baf8f74" - integrity sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww== + version "3.1.0" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.0.tgz#5437035aa43185ff4b9210d32fada6c640e59143" + integrity sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz#18e78016f0f71e98d737d40f0fca921dc264a600" - integrity sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg== + version "5.3.0" + resolved "https://registry.npmjs.org/vfile/-/vfile-5.3.0.tgz#4990c78cb3157005590ee8c930b71cd7fa6a006e" + integrity sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -24859,9 +25478,9 @@ vm2@^3.9.6: acorn-walk "^8.2.0" vscode-languageserver-types@^3.15.1: - version "3.15.1" - resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" - integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== + version "3.16.0" + resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" + integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== w3c-hr-time@^1.0.2: version "1.0.2" @@ -24904,11 +25523,11 @@ walk-up-path@^1.0.0: integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== walker@^1.0.7, walker@~1.0.5: - version "1.0.7" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: - makeerror "1.0.x" + makeerror "1.0.12" watchpack@^2.3.1: version "2.3.1" @@ -25130,17 +25749,16 @@ which-pm@2.0.0: path-exists "^4.0.0" which-typed-array@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" - integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== + version "1.1.7" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" + integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== dependencies: - available-typed-arrays "^1.0.2" - call-bind "^1.0.0" - es-abstract "^1.18.0-next.1" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" foreach "^2.0.5" - function-bind "^1.1.1" - has-symbols "^1.0.1" - is-typed-array "^1.1.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.7" which@^1.2.9, which@^1.3.1: version "1.3.1" @@ -25175,14 +25793,7 @@ window-size@^0.2.0: resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= -windows-release@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" - integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== - dependencies: - execa "^1.0.0" - -winston-transport@^4.4.2: +winston-transport@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== @@ -25192,20 +25803,20 @@ winston-transport@^4.4.2: triple-beam "^1.3.0" winston@^3.2.1: - version "3.5.1" - resolved "https://registry.npmjs.org/winston/-/winston-3.5.1.tgz#b25cc899d015836dbf8c583dec8c4c4483a0da2e" - integrity sha512-tbRtVy+vsSSCLcZq/8nXZaOie/S2tPXPFt4be/Q3vI/WtYwm7rrwidxVw2GRa38FIXcJ1kUM6MOZ9Jmnk3F3UA== + version "3.6.0" + resolved "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz#be32587a099a292b88c49fac6fa529d478d93fb6" + integrity sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w== dependencies: "@dabh/diagnostics" "^2.0.2" async "^3.2.3" is-stream "^2.0.0" - logform "^2.3.2" + logform "^2.4.0" one-time "^1.0.0" readable-stream "^3.4.0" safe-stable-stringify "^2.3.1" stack-trace "0.0.x" triple-beam "^1.3.0" - winston-transport "^4.4.2" + winston-transport "^4.5.0" word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" @@ -25327,9 +25938,9 @@ ws@8.5.0, ws@^8.4.2: integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== "ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1, ws@^7.4.6, ws@^8.3.0: - version "7.5.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + version "7.5.7" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== ws@~7.4.2: version "7.4.6" @@ -25494,7 +26105,7 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2, yaml@^1.9.2: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@20.2.4, yargs-parser@^20.2.2, yargs-parser@^20.2.3: +yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== @@ -25507,6 +26118,11 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + yargs-parser@^21.0.0: version "21.0.0" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" @@ -25537,7 +26153,7 @@ yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.1.1, yargs@^16.2.0: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== From 362d49a5213f3656575fb9a6c81ff6d61213e7f5 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Sun, 20 Feb 2022 22:23:02 +0100 Subject: [PATCH 126/225] publish stories from stack overflow plugin Signed-off-by: Emma Indal --- storybook/.storybook/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/storybook/.storybook/main.js b/storybook/.storybook/main.js index bd58156d2d..2356e4e41b 100644 --- a/storybook/.storybook/main.js +++ b/storybook/.storybook/main.js @@ -9,6 +9,7 @@ const BACKSTAGE_CORE_STORIES = [ 'plugins/org', 'plugins/search', 'plugins/home', + 'plugins/stack-overflow', ]; module.exports = ({ args }) => { From a7825896c32da180e0d06482aa18f630d92ac39c Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Sun, 20 Feb 2022 22:51:23 +0100 Subject: [PATCH 127/225] fixups Signed-off-by: Emma Indal --- plugins/home/package.json | 2 + plugins/stack-overflow/README.md | 4 +- yarn.lock | 6644 ++++++++++++++++++------------ 3 files changed, 3993 insertions(+), 2657 deletions(-) diff --git a/plugins/home/package.json b/plugins/home/package.json index b787acfdfe..fd83c6ff28 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -39,7 +39,9 @@ "@backstage/core-plugin-api": "^1.0.0", "@backstage/plugin-catalog-react": "^1.0.1-next.0", "@backstage/plugin-search": "^0.7.5-next.0", + "@backstage/plugin-stack-overflow": "^0.0.0", "@backstage/theme": "^0.2.15", + "@backstage/config": "^0.1.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", diff --git a/plugins/stack-overflow/README.md b/plugins/stack-overflow/README.md index cea63c41c4..0a4fbea101 100644 --- a/plugins/stack-overflow/README.md +++ b/plugins/stack-overflow/README.md @@ -19,14 +19,14 @@ stackoverflow: This search plugin is primarily responsible for the following: -- Exposing various stack-overflow related components like `` which can be used for composing the searchpage, and `` which can be used for composing the homepage. +- Exposing various stack-overflow related components like `` which can be used for composing the search page, and `` which can be used for composing the homepage. - Provides a `StackOverflowQuestionsCollator`, which can be used in the search backend to index stack overflow questions to your Backstage Search. ### Index Stack Overflow Questions to search Before you are able to start index stack overflow questions to search, you need to go through the [search getting started guide](https://backstage.io/docs/features/search/getting-started). -When you have your `packages/backend/src/plugins/search.ts` file ready to make modifications, add the following code snippet to add the `StackOverflowQuestionsCollator`. Note that you can modify the request params. +When you have your `packages/backend/src/plugins/search.ts` file ready to make modifications, add the following code snippet to add the `StackOverflowQuestionsCollator`. Note that you can modify the `requestParams`. ```ts indexBuilder.addCollator({ diff --git a/yarn.lock b/yarn.lock index d9e4ffb198..7d354d74da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,14 +17,13 @@ "@jridgewell/trace-mapping" "^0.3.0" "@apidevtools/json-schema-ref-parser@^9.0.6": - version "9.0.9" - resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#d720f9256e3609621280584f2b47ae165359268b" - integrity sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w== + version "9.0.6" + resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#5d9000a3ac1fd25404da886da6b266adcd99cf1c" + integrity sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg== dependencies: "@jsdevtools/ono" "^7.1.3" - "@types/json-schema" "^7.0.6" call-me-maybe "^1.0.1" - js-yaml "^4.1.0" + js-yaml "^3.13.1" "@apollo/protobufjs@1.2.2": version "1.2.2" @@ -105,24 +104,24 @@ openapi-sampler "^1.1.0" use-resize-observer "^7.0.0" -"@asyncapi/specs@^2.13.0": - version "2.13.0" - resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.13.0.tgz#c0f46d00e8a67c1c9ea445eb3e8bca90f7dca795" - integrity sha512-X0OrxJtzwRH8iLILO/gUTDqjGVPmagmdlgdyuBggYAoGXzF6ZuAws3XCLxtPNve5eA/0V/1puwpUYEGekI22og== +"@asyncapi/specs@^2.11.0": + version "2.12.0" + resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.12.0.tgz#15534ca9e518b561d33edfdfdbb234f9b274f261" + integrity sha512-X4Xkrl+9WXSk5EJhsueIxNx6ymHI5wpkw4ofetV+VRnPLNob/XO4trPSJClrL5hlknxbGADLvlrkI5d3XJ996g== "@azure/abort-controller@^1.0.0": - version "1.0.4" - resolved "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz#fd3c4d46c8ed67aace42498c8e2270960250eafd" - integrity sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw== + version "1.0.2" + resolved "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.2.tgz#822405c966b2aec16fb62c1b19d37eaccf231995" + integrity sha512-XUyTo+bcyxHEf+jlN2MXA7YU9nxVehaubngHV1MIZZaqYmZqykkoeAz/JMMEeR7t3TcyDwbFa3Zw8BZywmIx4g== dependencies: tslib "^2.0.0" "@azure/core-asynciterator-polyfill@^1.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz#0dd3849fb8d97f062a39db0e5cadc9ffaf861fec" - integrity sha512-3rkP4LnnlWawl0LZptJOdXNrT/fHp2eQMadoasa6afspXdpGrtPZuAQc2PD0cpgyuoXtUWyC3tv7xfntjGS5Dw== + version "1.0.0" + resolved "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz#dcccebb88406e5c76e0e1d52e8cc4c43a68b3ee7" + integrity sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg== -"@azure/core-auth@^1.3.0": +"@azure/core-auth@^1.1.3", "@azure/core-auth@^1.3.0": version "1.3.2" resolved "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.3.2.tgz#6a2c248576c26df365f6c7881ca04b7f6d08e3d0" integrity sha512-7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA== @@ -143,44 +142,43 @@ "@azure/logger" "^1.0.0" tslib "^2.2.0" -"@azure/core-http@^2.0.0": - version "2.2.4" - resolved "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.4.tgz#df5a5b4138dbbc4299879f2fc6f257d0a5f0401e" - integrity sha512-QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A== +"@azure/core-http@^1.2.0": + version "1.2.2" + resolved "https://registry.npmjs.org/@azure/core-http/-/core-http-1.2.2.tgz#a6f7717184fd2657d3acabd1d64dfdc0bd531ce3" + integrity sha512-9eu2OcbR7e44gqBy4U1Uv8NTWgLIMwKXMEGgO2MahsJy5rdTiAhs5fJHQffPq8uX2MFh21iBODwO9R/Xlov88A== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-asynciterator-polyfill" "^1.0.0" - "@azure/core-auth" "^1.3.0" - "@azure/core-tracing" "1.0.0-preview.13" + "@azure/core-auth" "^1.1.3" + "@azure/core-tracing" "1.0.0-preview.9" "@azure/logger" "^1.0.0" + "@opentelemetry/api" "^0.10.2" "@types/node-fetch" "^2.5.0" - "@types/tunnel" "^0.0.3" - form-data "^4.0.0" - node-fetch "^2.6.7" + "@types/tunnel" "^0.0.1" + form-data "^3.0.0" + node-fetch "^2.6.0" process "^0.11.10" tough-cookie "^4.0.0" - tslib "^2.2.0" + tslib "^2.0.0" tunnel "^0.0.6" uuid "^8.3.0" xml2js "^0.4.19" -"@azure/core-lro@^2.2.0": - version "2.2.3" - resolved "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.3.tgz#3e245d37ede00f6410c1ea1fb76679dbdec627eb" - integrity sha512-UMdlR9NsqDCLTba3EUbRjfMF4gDmWvld196JmUjbz9WWhJ2XT00OR5MXeWiR+vmGT+ETiO4hHFCi2/eGO5YVtg== +"@azure/core-lro@^1.0.2": + version "1.0.3" + resolved "https://registry.npmjs.org/@azure/core-lro/-/core-lro-1.0.3.tgz#1ddfb4ecdb81ce87b5f5d972ffe2acbbc46e524e" + integrity sha512-Py2crJ84qx1rXkzIwfKw5Ni4WJuzVU7KAF6i1yP3ce8fbynUeu8eEWS4JGtSQgU7xv02G55iPDROifmSDbxeHA== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-tracing" "1.0.0-preview.13" - "@azure/logger" "^1.0.0" - tslib "^2.2.0" + "@azure/core-http" "^1.2.0" + events "^3.0.0" + tslib "^2.0.0" "@azure/core-paging@^1.1.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.2.1.tgz#1b884f563b6e49971e9a922da3c7a20931867b54" - integrity sha512-UtH5iMlYsvg+nQYIl4UHlvvSrsBjOlRF4fs0j7mxd3rWdAStrKYrh2durOpHs5C9yZbVhsVDaisoyaf/lL1EVA== + version "1.1.3" + resolved "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.1.3.tgz#3587c9898a0530cacb64bab216d7318468aa5efc" + integrity sha512-his7Ah40ThEYORSpIAwuh6B8wkGwO/zG7gqVtmSE4WAJ46e36zUDXTKReUCLBDc6HmjjApQQxxcRFy5FruG79A== dependencies: "@azure/core-asynciterator-polyfill" "^1.0.0" - tslib "^2.2.0" "@azure/core-rest-pipeline@^1.1.0", "@azure/core-rest-pipeline@^1.5.0": version "1.5.0" @@ -197,6 +195,15 @@ tslib "^2.2.0" uuid "^8.3.0" +"@azure/core-tracing@1.0.0-preview.10": + version "1.0.0-preview.10" + resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.10.tgz#e7060272145dddad4486765030d1b037cd52a8ea" + integrity sha512-iIwjtMwQnsxB7cYkugMx+s4W1nfy3+pT/ceo+uW1fv4YDgYe84nh+QP0fEC9IH/3UATLSWbIBemdMHzk2APUrw== + dependencies: + "@opencensus/web-types" "0.0.7" + "@opentelemetry/api" "^0.10.2" + tslib "^2.0.0" + "@azure/core-tracing@1.0.0-preview.13": version "1.0.0-preview.13" resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz#55883d40ae2042f6f1e12b17dd0c0d34c536d644" @@ -205,6 +212,15 @@ "@opentelemetry/api" "^1.0.1" tslib "^2.2.0" +"@azure/core-tracing@1.0.0-preview.9": + version "1.0.0-preview.9" + resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.9.tgz#84f3b85572013f9d9b85e1e5d89787aa180787eb" + integrity sha512-zczolCLJ5QG42AEPQ+Qg9SRYNUyB+yZ5dzof4YEc+dyWczO9G2sBqbAjLB7IqrsdHN2apkiB2oXeDKCsq48jug== + dependencies: + "@opencensus/web-types" "0.0.7" + "@opentelemetry/api" "^0.10.2" + tslib "^2.0.0" + "@azure/core-util@^1.0.0-beta.1": version "1.0.0-beta.1" resolved "https://registry.npmjs.org/@azure/core-util/-/core-util-1.0.0-beta.1.tgz#2efd2c74b4b0a38180369f50fe274a3c4cd36e98" @@ -213,9 +229,9 @@ tslib "^2.0.0" "@azure/identity@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@azure/identity/-/identity-2.0.4.tgz#f5cfde0daf1b9ebaaff3ed6c504f50d7d7c939a5" - integrity sha512-ZgFubAsmo7dji63NLPaot6O7pmDfceAUPY57uphSCr0hmRj+Cakqb4SUz5SohCHFtscrhcmejRU903Fowz6iXg== + version "2.0.3" + resolved "https://registry.npmjs.org/@azure/identity/-/identity-2.0.3.tgz#286e7b145b29bee009ef10f3c2900122dcc1c947" + integrity sha512-MFW2QS5dWm2U8MDTSm0sHo7pcAQtQtJhKVVcN5wA2ownHzmHluXTGFK4WdFiXzUInhZtqYA5CH+OGHTGs6DTBA== dependencies: "@azure/abort-controller" "^1.0.0" "@azure/core-auth" "^1.3.0" @@ -235,18 +251,18 @@ uuid "^8.3.0" "@azure/logger@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96" - integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g== + version "1.0.1" + resolved "https://registry.npmjs.org/@azure/logger/-/logger-1.0.1.tgz#19b333203d1b2931353d8879e814b64a7274837a" + integrity sha512-QYQeaJ+A5x6aMNu8BG5qdsVBnYBop9UMwgUvGihSjf1PdZZXB+c/oMdM2ajKwzobLBh9e9QuMQkN9iL+IxLBLA== dependencies: - tslib "^2.2.0" + tslib "^2.0.0" "@azure/msal-browser@^2.16.0": - version "2.22.0" - resolved "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.22.0.tgz#acb3ef455d8ca7b143c7fde0a638097add11a218" - integrity sha512-ZpnbnzjYGRGHjWDPOLjSp47CQvhK927+W9avtLoNNCMudqs2dBfwj76lnJwObDE7TAKmCUueTiieglBiPb1mgQ== + version "2.20.0" + resolved "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.20.0.tgz#78e34395048c4a8842400d4168b2fb3bdd3c854e" + integrity sha512-Fl8boo38fPNlEm84fRCulbTfHJo+Z/i+1gcdJTG+PqmrkMOUVTdpkwznGh6ZQdAM34uumEgzukmqMr8lVKrytA== dependencies: - "@azure/msal-common" "^6.1.0" + "@azure/msal-common" "^5.2.0" "@azure/msal-common@^4.5.1": version "4.5.1" @@ -255,37 +271,37 @@ dependencies: debug "^4.1.1" -"@azure/msal-common@^6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-6.1.0.tgz#00b0c625d10f4c8e48e7b48a353f7d8d20a5ceca" - integrity sha512-IGjAHttOgKDPQr0Qxx1NjABR635ZNuN7LHjxI0Y7SEA2thcaRGTccy+oaXTFabM/rZLt4F2VrPKUX4BnR9hW9g== +"@azure/msal-common@^5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-5.2.0.tgz#49440e04f4d0961fc5a1a1718fbe5e4eae2db5db" + integrity sha512-oVc4soy5MEZOp9NvCDqBk57mtiUTJXQQ8Z8S/4UiRQP8RG8snuCFQUs9xxdIfvl2FWIvgiBz+SMByyjTaRX42Q== dependencies: debug "^4.1.1" "@azure/msal-node@^1.1.0", "@azure/msal-node@^1.3.0": - version "1.6.0" - resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.6.0.tgz#59d6306979581fd9379d17d22047ada143ed56df" - integrity sha512-RCPXVWsjqYZh7NB1pAJLn4ypHlLBulOjw5nKPLsJiaJJIXnN8kc6SMkK3S9/80DZCEBstvoRMz6zF50QZJUeOQ== + version "1.4.0" + resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.4.0.tgz#660685804fbdc533b10cc699f16323e27ec582c6" + integrity sha512-Ek6hqOFUi5QEAxZ55awM8y1N+9SzS9Qh8ijF4RDLtFuHzqP7xXmMnVC1lae45FlH55DUOo7dg/smuDJnb4kw6g== dependencies: - "@azure/msal-common" "^6.1.0" + "@azure/msal-common" "^5.2.0" axios "^0.21.4" - https-proxy-agent "^5.0.0" jsonwebtoken "^8.5.1" uuid "^8.3.0" "@azure/storage-blob@^12.5.0": - version "12.8.0" - resolved "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.8.0.tgz#97b7ecc6c7b17bcbaf0281c79c16af6f512d6130" - integrity sha512-c8+Wz19xauW0bGkTCoqZH4dYfbtBniPiGiRQOn1ca6G5jsjr4azwaTk9gwjVY8r3vY2Taf95eivLzipfIfiS4A== + version "12.5.0" + resolved "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.5.0.tgz#1ddd8837d9a15ebe355e795375d13b406f2cb496" + integrity sha512-DgoefgODst2IPkkQsNdhtYdyJgSsAZC1pEujO6aD5y7uFy5GnzhYliobSrp204jYRyK5XeJ9iiePmy/SPtTbLA== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-http" "^2.0.0" - "@azure/core-lro" "^2.2.0" + "@azure/core-http" "^1.2.0" + "@azure/core-lro" "^1.0.2" "@azure/core-paging" "^1.1.1" - "@azure/core-tracing" "1.0.0-preview.13" + "@azure/core-tracing" "1.0.0-preview.10" "@azure/logger" "^1.0.0" + "@opentelemetry/api" "^0.10.2" events "^3.0.0" - tslib "^2.2.0" + tslib "^2.0.0" "@babel/code-frame@7.0.0": version "7.0.0" @@ -301,12 +317,33 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" - integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" + integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": + version "7.16.12" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784" + integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.16.7" + "@babel/parser" "^7.16.12" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.10" + "@babel/types" "^7.16.8" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/core@^7.12.3": version "7.17.5" resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== @@ -327,7 +364,16 @@ json5 "^2.1.2" semver "^6.3.0" -"@babel/generator@^7.14.0", "@babel/generator@^7.17.3": +"@babel/generator@^7.14.0", "@babel/generator@^7.16.0", "@babel/generator@^7.16.8": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" + integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== + dependencies: + "@babel/types" "^7.16.8" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.17.3": version "7.17.3" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== @@ -362,9 +408,9 @@ semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": - version "7.17.1" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21" - integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ== + version "7.16.10" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz#8a6959b9cc818a88815ba3c5474619e9c0f2c21c" + integrity sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -375,12 +421,12 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48" + integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" + regexpu-core "^4.7.1" "@babel/helper-define-polyfill-provider@^0.3.1": version "0.3.1" @@ -410,7 +456,7 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.7": +"@babel/helper-function-name@^7.16.0", "@babel/helper-function-name@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== @@ -426,7 +472,7 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-hoist-variables@^7.16.7": +"@babel/helper-hoist-variables@^7.16.0", "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== @@ -507,14 +553,14 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-split-export-declaration@^7.16.7": +"@babel/helper-split-export-declaration@^7.16.0", "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-validator-identifier@^7.16.7": +"@babel/helper-validator-identifier@^7.15.7", "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== @@ -534,6 +580,15 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" +"@babel/helpers@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" + integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/helpers@^7.17.2": version "7.17.2" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" @@ -552,7 +607,17 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8", "@babel/parser@^7.17.3": +"@babel/parser@7.16.4": + version "7.16.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== + +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.3", "@babel/parser@^7.16.7": + version "7.16.12" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" + integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== + +"@babel/parser@^7.17.3": version "7.17.3" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== @@ -648,11 +713,11 @@ "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" + integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== dependencies: - "@babel/compat-data" "^7.17.0" + "@babel/compat-data" "^7.16.4" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" @@ -886,9 +951,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc" - integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg== + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" + integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -1049,15 +1114,15 @@ "@babel/plugin-transform-react-jsx" "^7.16.7" "@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.16.7": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" - integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4" + integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-jsx" "^7.16.7" - "@babel/types" "^7.17.0" + "@babel/types" "^7.16.7" "@babel/plugin-transform-react-pure-annotations@^7.16.7": version "7.16.7" @@ -1263,25 +1328,36 @@ "@babel/plugin-transform-typescript" "^7.16.7" "@babel/register@^7.13.16": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.17.0.tgz#8051e0b7cb71385be4909324f072599723a1f084" - integrity sha512-UNZsMAZ7uKoGHo1HlEXfteEOYssf64n/PNLHGqOKq/bgYcu/4LrQWAHJwSCb3BRZK8Hi5gkJdRcwrGTO2wtRCg== + version "7.16.9" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.16.9.tgz#fcfb23cfdd9ad95c9771e58183de83b513857806" + integrity sha512-jJ72wcghdRIlENfvALcyODhNoGE5j75cYHdC+aQMh6cU/P86tiiXTp9XYZct1UxUMo/4+BgQRyNZEGx0KWGS+g== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" make-dir "^2.1.0" - pirates "^4.0.5" + pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.11.2", "@babel/runtime-corejs3@^7.16.8": - version "7.17.2" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13" - integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg== +"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.11.2", "@babel/runtime-corejs3@^7.16.3": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz#ea533d96eda6fdc76b1812248e9fbd0c11d4a1a7" + integrity sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg== dependencies: core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" +<<<<<<< HEAD "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +======= +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" + integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.7.2": +>>>>>>> 76d216e74b (fixups) version "7.17.2" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== @@ -1304,7 +1380,38 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.4.5": +"@babel/traverse@7.16.3": + version "7.16.3" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" + integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.3" + "@babel/types" "^7.16.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.4.5": + version "7.16.10" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" + integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.8" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.16.10" + "@babel/types" "^7.16.8" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3": version "7.17.3" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== @@ -1320,7 +1427,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" + integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.0.0", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.16.8" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" + integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.12.6", "@babel/types@^7.17.0": version "7.17.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== @@ -1941,16 +2064,16 @@ resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-5.0.2.tgz#b23080fa35520e993a8a37a0f5bca26aa4650a48" integrity sha512-NBEJlHWrhQucLhZGHtSxM2loSaNUMajC7KOYJLyfcdW/6goVoff2HoYI3bz8YCDN0wKGbxtUL0gx2dvHpvnWlw== -"@changesets/apply-release-plan@^5.0.5": - version "5.0.5" - resolved "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.5.tgz#d67b1e022c876d18d887f3c475a3abcad9944b68" - integrity sha512-CxL9dkhzjHiVmXCyHgsLCQj7i/coFTMv/Yy0v6BC5cIWZkQml+lf7zvQqAcFXwY7b54HxRWZPku02XFB53Q0Uw== +"@changesets/apply-release-plan@^5.0.4": + version "5.0.4" + resolved "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.4.tgz#fefffecf73b59dbee7ae905b3c6a2e64c489f0cb" + integrity sha512-czayDIrgC8qBnqwClvh9nxjCMem+XZG7xtfdYwq3dxpzA30qGppcI0i088VYug5RCFR+l1N+HUvkujSZuBK65w== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/config" "^1.7.0" + "@changesets/config" "^1.6.4" "@changesets/get-version-range-type" "^0.3.2" - "@changesets/git" "^1.3.1" - "@changesets/types" "^4.1.0" + "@changesets/git" "^1.3.0" + "@changesets/types" "^4.0.2" "@manypkg/get-packages" "^1.1.3" detect-indent "^6.0.0" fs-extra "^7.0.1" @@ -1960,44 +2083,36 @@ resolve-from "^5.0.0" semver "^5.4.1" -"@changesets/assemble-release-plan@^5.1.0": - version "5.1.0" - resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.1.0.tgz#0fcb18253998e3bc037a554874de43bcc58c4840" - integrity sha512-iYlqffCMhcwZ+6Cv8cimf10OBGYXQKufBI7J6htpRgCV2nT99RKXEjbYOtrXWKQqzu0XxOsk15apSEwjZN0JRw== +"@changesets/assemble-release-plan@^5.0.5": + version "5.0.5" + resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.5.tgz#60e4adc9bf458dd6ec38dee78d8f1bbeddfe3936" + integrity sha512-ejCVSM4I1jgaNi30we3/qltj2NQtS68w7C3H8Gvb6ZOvbIpAW/Tr0uMmPgRj4Vzkez5+fx0If02AvOdssz1btA== dependencies: "@babel/runtime" "^7.10.4" "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.1" - "@changesets/types" "^4.1.0" + "@changesets/get-dependents-graph" "^1.3.0" + "@changesets/types" "^4.0.2" "@manypkg/get-packages" "^1.1.3" semver "^5.4.1" -"@changesets/changelog-git@^0.1.10": - version "0.1.10" - resolved "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.1.10.tgz#df616e92671082a7976381280b4af98ff3a7067d" - integrity sha512-4t7zqPOv3aDZp4Y+AyDhiOG2ypaUXDpOz+MT1wOk3uSZNv78AaDByam0hdk5kfYuH1RlMecWU4/U5lO1ZL5eaA== - dependencies: - "@changesets/types" "^4.1.0" - "@changesets/cli@^2.14.0": - version "2.21.0" - resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.21.0.tgz#b689f91ed908150efc06e0985e6b4cfbd9aea3a3" - integrity sha512-cJXRg28MmF9VbQrlwSjpY4AJA2xZUbXFCpQ3kFmX0IeppO7wknZ2QfocAhIqwM828t8d3R4Zpi5xnvJ/crIcQw== + version "2.20.0" + resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.20.0.tgz#f24dbd38bd4bc47bf083e59b6bb9cbf531465808" + integrity sha512-IUYSgZKtS+wXPD5hxfnCfZ1JWCbBI0CRrhxpkgVKcXDwpxiRU8stCwuSuVj14kiYlThuH2zL0/ZuGvhF4r28Gg== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/apply-release-plan" "^5.0.5" - "@changesets/assemble-release-plan" "^5.1.0" - "@changesets/changelog-git" "^0.1.10" - "@changesets/config" "^1.7.0" + "@changesets/apply-release-plan" "^5.0.4" + "@changesets/assemble-release-plan" "^5.0.5" + "@changesets/config" "^1.6.4" "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.1" - "@changesets/get-release-plan" "^3.0.6" - "@changesets/git" "^1.3.1" + "@changesets/get-dependents-graph" "^1.3.0" + "@changesets/get-release-plan" "^3.0.5" + "@changesets/git" "^1.3.0" "@changesets/logger" "^0.0.5" - "@changesets/pre" "^1.0.10" - "@changesets/read" "^0.5.4" - "@changesets/types" "^4.1.0" - "@changesets/write" "^0.1.7" + "@changesets/pre" "^1.0.9" + "@changesets/read" "^0.5.3" + "@changesets/types" "^4.0.2" + "@changesets/write" "^0.1.6" "@manypkg/get-packages" "^1.1.3" "@types/is-ci" "^3.0.0" "@types/semver" "^6.0.0" @@ -2016,15 +2131,15 @@ term-size "^2.1.0" tty-table "^2.8.10" -"@changesets/config@^1.7.0": - version "1.7.0" - resolved "https://registry.npmjs.org/@changesets/config/-/config-1.7.0.tgz#18353f88ea8153d7f1fb7c321a3fe8667035eddb" - integrity sha512-Ctk6ZO5Ay6oZ95bbKXyA2a1QG0jQUePaGCY6BKkZtUG4PgysesfmiQOPgOY5OsRMt8exJeo6l+DJ75YiKmh0rQ== +"@changesets/config@^1.6.4": + version "1.6.4" + resolved "https://registry.npmjs.org/@changesets/config/-/config-1.6.4.tgz#c904c84f067b49c09b378618b751089dd29ed0b7" + integrity sha512-WWa8eR8GzS/p2atLc/+5UEDn7fsRCZ+/sShLkB/3efVbTkSTB1PwoKwQRXLYXM1DY289T7UnJT4HLZA3Gcreww== dependencies: "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.1" + "@changesets/get-dependents-graph" "^1.3.0" "@changesets/logger" "^0.0.5" - "@changesets/types" "^4.1.0" + "@changesets/types" "^4.0.2" "@manypkg/get-packages" "^1.1.3" fs-extra "^7.0.1" micromatch "^4.0.2" @@ -2036,28 +2151,28 @@ dependencies: extendable-error "^0.1.5" -"@changesets/get-dependents-graph@^1.3.1": - version "1.3.1" - resolved "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.3.1.tgz#f1ebadbd4e17bb2b987c4542a588e0ee9f2e829a" - integrity sha512-HwUs8U0XK/ZqCQon1/80jJEyswS8JVmTiHTZslrTpuavyhhhxrSpO1eVCdKgaVHBRalOw3gRzdS3uzkmqYsQSQ== +"@changesets/get-dependents-graph@^1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.3.0.tgz#892bbb63406911baac1f77a31303620492d466ec" + integrity sha512-4VHQWEluWySPgDdkL94YNxrEjDb9nwNFw515sWDmVrlfpQN5qaP1hdaotrp4mJm4ky85t4cTlrWSP+CTY7IDbw== dependencies: - "@changesets/types" "^4.1.0" + "@changesets/types" "^4.0.2" "@manypkg/get-packages" "^1.1.3" chalk "^2.1.0" fs-extra "^7.0.1" semver "^5.4.1" -"@changesets/get-release-plan@^3.0.6": - version "3.0.6" - resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.6.tgz#15aac108b9d0f139841562c9372d8cfd738503dc" - integrity sha512-HpPyr8y6xkihy3rONLZ6OtfgYq88NotidPAuS3nwMeZjLHiIVLyejR2+/5q717f6HKcrATxAjTwMAcjl7X/uzA== +"@changesets/get-release-plan@^3.0.5": + version "3.0.5" + resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.5.tgz#c05cff031bba737c8dd236afe97e77b007ee44a3" + integrity sha512-67td3LA1RTJpY5Q+wJaTTRtAjZ2suAhDfj3VRjFv0gCgUPXs8rNx17n9UPbegPTQjeTS1r7hVRVifycmT0fQtA== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/assemble-release-plan" "^5.1.0" - "@changesets/config" "^1.7.0" - "@changesets/pre" "^1.0.10" - "@changesets/read" "^0.5.4" - "@changesets/types" "^4.1.0" + "@changesets/assemble-release-plan" "^5.0.5" + "@changesets/config" "^1.6.4" + "@changesets/pre" "^1.0.9" + "@changesets/read" "^0.5.3" + "@changesets/types" "^4.0.2" "@manypkg/get-packages" "^1.1.3" "@changesets/get-version-range-type@^0.3.2": @@ -2065,14 +2180,14 @@ resolved "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz#8131a99035edd11aa7a44c341cbb05e668618c67" integrity sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg== -"@changesets/git@^1.3.1": - version "1.3.1" - resolved "https://registry.npmjs.org/@changesets/git/-/git-1.3.1.tgz#e86b4d2b28acdf9bc8949031027a9ac12420b99e" - integrity sha512-yg60QUi38VA0XGXdBy9SRYJhs8xJHE97Z1CaB/hFyByBlh5k1i+avFNBvvw66MsoT/aiml6y9scIG6sC8R5mfg== +"@changesets/git@^1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@changesets/git/-/git-1.3.0.tgz#7f62e1983552efecb738054db5178eef77f41241" + integrity sha512-Ydj4lWX33d2PCDaTXOMSbyTjgk1go1V6EyXjKTmOV7nB/qvgKdDZLSt+AexKWKp3Ac2FTrtVnl9G5gMNVYNmuQ== dependencies: "@babel/runtime" "^7.10.4" "@changesets/errors" "^0.1.4" - "@changesets/types" "^4.1.0" + "@changesets/types" "^4.0.2" "@manypkg/get-packages" "^1.1.3" is-subdir "^1.1.1" spawndamnit "^2.0.0" @@ -2084,51 +2199,51 @@ dependencies: chalk "^2.1.0" -"@changesets/parse@^0.3.12": - version "0.3.12" - resolved "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.12.tgz#60569bb39ad4ffe47fc01d431613ce5c42e6590f" - integrity sha512-FOBz2L1dT9PcvyQU1Qp2sQ0B4Jw7EgRDAKFVzAQwhzXqCq03TcE7vgKU6VSksCJAioMYDowdVVHNnv/Uak6yZQ== +"@changesets/parse@^0.3.11": + version "0.3.11" + resolved "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.11.tgz#b53485f36152e6e9a097b56fc46cafb6705ce2b5" + integrity sha512-w5/X8KijcCrvv5lHimXIBR9o35c78niiBoesBjBUlWeifwPz0DHc/lzVYJKRkA5w0BGqft6T/9hKI68GaYj5wA== dependencies: - "@changesets/types" "^4.1.0" + "@changesets/types" "^4.0.2" js-yaml "^3.13.1" -"@changesets/pre@^1.0.10": - version "1.0.10" - resolved "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.10.tgz#e677031f271cdab8443b21e0b3cda036a3919c30" - integrity sha512-cZC1C1wTSC17/TcTWivAQ4LAXz5jEYDuy3UeZiBz1wnTTzMHyTHLLwJi60juhl4hawXunDLw0mwZkcpS8Ivitg== +"@changesets/pre@^1.0.9": + version "1.0.9" + resolved "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.9.tgz#f1a0efea42733c25ef4a782377b2ac61023bd1b7" + integrity sha512-F3+qMun89KlynecBD15fEpwGT/KxbYb3WGeut6w1xhZb0u7V/jdcPy9b+kJ2xmBqFZLn1WteWIP96IjxS57H7A== dependencies: "@babel/runtime" "^7.10.4" "@changesets/errors" "^0.1.4" - "@changesets/types" "^4.1.0" + "@changesets/types" "^4.0.2" "@manypkg/get-packages" "^1.1.3" fs-extra "^7.0.1" -"@changesets/read@^0.5.4": - version "0.5.4" - resolved "https://registry.npmjs.org/@changesets/read/-/read-0.5.4.tgz#c6dc6ab00c4f70f2ce6766433d92eebde1b00e7a" - integrity sha512-12dTx+p5ztFs9QgJDGHRHR6HzTIbHct9S4lK2I/i6Qkz1cNfAPVIbdoMCdbPIWeLank9muMUjiiFmCWJD7tQIg== +"@changesets/read@^0.5.3": + version "0.5.3" + resolved "https://registry.npmjs.org/@changesets/read/-/read-0.5.3.tgz#5afb14ee0e806751c255e94fe8742843a9b12487" + integrity sha512-zoj5NjNR4AhiGXz6aHTxsBLojChHgDOSbz6VfAVxMKX7tF7UhyNYptG2VEbSjxeamNKABx6k1pkM2IyVVlOcbQ== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/git" "^1.3.1" + "@changesets/git" "^1.3.0" "@changesets/logger" "^0.0.5" - "@changesets/parse" "^0.3.12" - "@changesets/types" "^4.1.0" + "@changesets/parse" "^0.3.11" + "@changesets/types" "^4.0.2" chalk "^2.1.0" fs-extra "^7.0.1" p-filter "^2.1.0" -"@changesets/types@^4.0.1", "@changesets/types@^4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz#fb8f7ca2324fd54954824e864f9a61a82cb78fe0" - integrity sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== +"@changesets/types@^4.0.1", "@changesets/types@^4.0.2": + version "4.0.2" + resolved "https://registry.npmjs.org/@changesets/types/-/types-4.0.2.tgz#d20e1e45bdc96a97cc509c655e708b53a9292465" + integrity sha512-OeDaB7D+WVy/ErymPzFm58IeGvz4DOl+oedyZETfnkfMezF/Uhrm1Ub6MHrO5LcAaQTW+ptDmr0fmaVyoTxgHw== -"@changesets/write@^0.1.7": - version "0.1.7" - resolved "https://registry.npmjs.org/@changesets/write/-/write-0.1.7.tgz#671def0d871cf5970c5b2f766f0ac4b19ecf1ddb" - integrity sha512-6r+tc6u2l5BBIwEAh7ivRYWFir+XKiw0q/6Hx6NJA4dSN5fNu9uyWRQ+IMHCllD9dBcsh+e79sOepc+xT8l28g== +"@changesets/write@^0.1.6": + version "0.1.6" + resolved "https://registry.npmjs.org/@changesets/write/-/write-0.1.6.tgz#798d882bada93f391902a854a17965f3b80a5201" + integrity sha512-JWE2gJs9eHhorxqembkf43fllKlCz+sp1TJKSheaWfhWILMHPdfa/xQG4+sMZkISo1qZ+IlJyiBLha6iGGjXyA== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/types" "^4.1.0" + "@changesets/types" "^4.0.2" fs-extra "^7.0.1" human-id "^1.0.2" prettier "^1.19.1" @@ -2227,13 +2342,13 @@ "@codemirror/view" "^0.19.23" "@codemirror/highlight@^0.19.0": - version "0.19.7" - resolved "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.7.tgz#91a0c9994c759f5f153861e3aae74ff9e7c7c35b" - integrity sha512-3W32hBCY0pbbv/xidismw+RDMKuIag+fo4kZIbD7WoRj+Ttcaxjf+vP6RttRHXLaaqbWh031lTeON8kMlDhMYw== + version "0.19.6" + resolved "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.6.tgz#7f2e066f83f5649e8e0748a3abe0aaeaf64b8ac2" + integrity sha512-+eibu6on9quY8uN3xJ/n3rH+YIDLlpX7YulVmFvqAIz/ukRQ5tWaBmB7fMixHmnmRIRBRZgB8rNtonuMwZSAHQ== dependencies: "@codemirror/language" "^0.19.0" "@codemirror/rangeset" "^0.19.0" - "@codemirror/state" "^0.19.3" + "@codemirror/state" "^0.19.0" "@codemirror/view" "^0.19.0" "@lezer/common" "^0.15.0" style-mod "^4.0.0" @@ -2257,6 +2372,7 @@ "@lezer/common" "^0.15.5" "@lezer/lr" "^0.15.0" +<<<<<<< HEAD "@codemirror/legacy-modes@^0.19.0": version "0.19.1" resolved "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-0.19.1.tgz#7dc3b5df1842060648f75764ab6919fcfce3ea1a" @@ -2334,6 +2450,19 @@ version "0.19.9" resolved "https://registry.npmjs.org/@codemirror/state/-/state-0.19.9.tgz#b797f9fbc204d6dc7975485e231693c09001b0dd" integrity sha512-psOzDolKTZkx4CgUqhBQ8T8gBc0xN5z4gzed109aF6x7D7umpDRoimacI/O6d9UGuyl4eYuDCZmDFr2Rq7aGOw== +======= +"@codemirror/rangeset@^0.19.0": + version "0.19.2" + resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.2.tgz#d7a999e4273c00fecef4aba8535a426073cdcddf" + integrity sha512-5d+X8LtmeZtfFtKrSx57bIHRUpKv2HD0b74clp4fGA7qJLLfYehF6FGkJJxJb8lKsqAga1gdjjWr0jiypmIxoQ== + dependencies: + "@codemirror/state" "^0.19.0" + +"@codemirror/state@^0.19.0", "@codemirror/state@^0.19.3": + version "0.19.6" + resolved "https://registry.npmjs.org/@codemirror/state/-/state-0.19.6.tgz#d631f041d39ce41b7891b099fca26cb1fdb9763e" + integrity sha512-sqIQZE9VqwQj7D4c2oz9mfLhlT1ElAzGB5lO1lE33BPyrdNy1cJyCIOecT4cn4VeJOFrnjOeu+IftZ3zqdFETw== +>>>>>>> f9b03ab02f (fixups) dependencies: "@codemirror/text" "^0.19.0" @@ -2350,9 +2479,9 @@ "@lezer/lr" "^0.15.0" "@codemirror/stream-parser@^0.19.2": - version "0.19.6" - resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.6.tgz#3cfba836f4e5daf6d0e87213b39027791c1e6329" - integrity sha512-dmPtoz/MR3IphxAsgywEyvSjOJCb2ikAgqp6BGIlwBEJVRiap0wFK4b3f/3DKIHUG4GezWRYQumXNyb3GNQevw== + version "0.19.2" + resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.2.tgz#793428e55aa7b9daa64cb733973e5d5e3d9a2306" + integrity sha512-hBKRQlyu8GUOrY33xZ6/1kAfNZ8ZUm6cX9a7mPx8zAAqnpz/fpksC/qJRrkg1mPMBwxm+JG4fqAwDGJ3gLVniQ== dependencies: "@codemirror/highlight" "^0.19.0" "@codemirror/language" "^0.19.0" @@ -2361,10 +2490,17 @@ "@lezer/common" "^0.15.0" "@lezer/lr" "^0.15.0" +<<<<<<< HEAD "@codemirror/text@^0.19.0", "@codemirror/text@^0.19.2", "@codemirror/text@^0.19.4", "@codemirror/text@^0.19.6": version "0.19.6" resolved "https://registry.npmjs.org/@codemirror/text/-/text-0.19.6.tgz#9adcbd8137f69b75518eacd30ddb16fd67bbac45" integrity sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA== +======= +"@codemirror/text@^0.19.0": + version "0.19.5" + resolved "https://registry.npmjs.org/@codemirror/text/-/text-0.19.5.tgz#75033af2476214e79eae22b81ada618815441c18" + integrity sha512-Syu5Xc7tZzeUAM/y4fETkT0zgGr48rDG+w4U38bPwSIUr+L9S/7w2wDE1WGNzjaZPz12F6gb1gxWiSTg9ocLow== +>>>>>>> f9b03ab02f (fixups) "@codemirror/theme-one-dark@^0.19.1": version "0.19.1" @@ -2384,16 +2520,17 @@ "@codemirror/view" "^0.19.0" "@codemirror/view@^0.19.0": - version "0.19.44" - resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.44.tgz#153301eda413e76d2b98dc3870307f918c05c646" - integrity sha512-vahNUE6hSXdjzs1gcztKPJQhZu+ZIwRpK4ZGZTSD81/CZUVqtlF75W3RCYVgEdjTI1l6ogJmIL6FM2Xj7ltn7Q== + version "0.19.27" + resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.27.tgz#76e5dc19ecb4ce53e9fef1d29245040d7ff64183" + integrity sha512-Uz/LecEf7CyvMWaQBlKtbJCYn0hRnEZ2yYvuZVy9YMhmvGmES6ec7FaKw7lDFFOMLwLbBThc9kfw4DCHreHN1w== dependencies: - "@codemirror/rangeset" "^0.19.5" + "@codemirror/rangeset" "^0.19.0" "@codemirror/state" "^0.19.3" "@codemirror/text" "^0.19.0" style-mod "^4.0.0" w3c-keyname "^2.2.4" +<<<<<<< HEAD "@codemirror/view@^0.19.22", "@codemirror/view@^0.19.23", "@codemirror/view@^0.19.31", "@codemirror/view@^0.19.34", "@codemirror/view@^0.19.44", "@codemirror/view@^0.19.45": version "0.19.47" resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.47.tgz#2163c3016d7680bf50dd695c0e3abdaf80f45363" @@ -2410,6 +2547,8 @@ resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +======= +>>>>>>> f9b03ab02f (fixups) "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" resolved "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" @@ -2455,9 +2594,9 @@ lodash.once "^4.1.1" "@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + version "2.0.2" + resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" + integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== dependencies: colorspace "1.1.x" enabled "2.0.x" @@ -2521,14 +2660,14 @@ ts-node "^9" tslib "^2" -"@eslint/eslintrc@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz#583d12dbec5d4f22f333f9669f7d0b7c7815b4d3" - integrity sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg== +"@eslint/eslintrc@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" + integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.1" + espree "^9.2.0" globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" @@ -2544,16 +2683,16 @@ yaml-ast-parser "0.0.43" "@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + version "1.1.2" + resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" + integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== "@gitbeaker/core@^34.6.0": - version "34.7.0" - resolved "https://registry.npmjs.org/@gitbeaker/core/-/core-34.7.0.tgz#2cd52f6c21127e9d8147ce34f0f4d98ba72acf16" - integrity sha512-D3JSvnD2PTm8pj+UJhYqOnEmszVN5ADP2LJAFe+eDnW46eEIK5Veq6kxrzy7Q6n3lvnUABKoPi8x4dnqJlmxoA== + version "34.6.0" + resolved "https://registry.npmjs.org/@gitbeaker/core/-/core-34.6.0.tgz#f774ea98ac079ba2edf495fdef738ac3f741178b" + integrity sha512-yKF+oxffPyzOnyuHCqLGJrBHhcFHuGHtcmqKhGKtnYPfqcNYA8rt4INAHaE5wMz4ILua9b4sB8p42fki+xn6WA== dependencies: - "@gitbeaker/requester-utils" "^34.7.0" + "@gitbeaker/requester-utils" "^34.6.0" form-data "^4.0.0" li "^1.3.0" mime "^3.0.0" @@ -2583,10 +2722,10 @@ got "11.8.3" xcase "^2.0.1" -"@gitbeaker/requester-utils@^34.7.0": - version "34.7.0" - resolved "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-34.7.0.tgz#85add7010663391e54d1b29f7c8d69da7e71d30d" - integrity sha512-SEvw6l9c+mRq33nsX/nyIIvZpUH/1CzK2tQAFj8io/5PeUWZ8oBRW1DUN7lW7uhbGdu3Sc3dA1S4H9OSvt679g== +"@gitbeaker/requester-utils@^34.6.0": + version "34.6.0" + resolved "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-34.6.0.tgz#4489009b759ca6f9a83f244453f4f610f1ac7349" + integrity sha512-H8utxbSP1kEdX0KcyVYrTDTT0A3UcPwrIV1ahyufX9ZLybYSUsA56B8Wx5kJSbWGFT1ffu2f8H2YDMwNCKKsBg== dependencies: form-data "^4.0.0" qs "^6.10.1" @@ -2601,10 +2740,10 @@ qs "^6.10.1" xcase "^2.0.1" -"@google-cloud/common@^3.8.1": - version "3.9.0" - resolved "https://registry.npmjs.org/@google-cloud/common/-/common-3.9.0.tgz#d93e62d13e66edacfad1cd25b20fdbbc11d9f6dd" - integrity sha512-R9PfmCKbpOizvcLY+fz/TS4HdOQhvmf4EY4xEXvWnotGbGXujuTLJTJ2URy8BGT8TDxlh6gjjfEwjJ8McnNPIg== +"@google-cloud/common@^3.7.0": + version "3.7.0" + resolved "https://registry.npmjs.org/@google-cloud/common/-/common-3.7.0.tgz#ee3fba75aeaa614978aebf8740380670026592aa" + integrity sha512-oFgpKLjH9JTOAyQd3kB36iSuH8wNSpDKb1TywlB6zcsG0xmJFxLutmfPhz03KUxRMNQOZ1K1Gc9BYvJifVnGVA== dependencies: "@google-cloud/projectify" "^2.0.0" "@google-cloud/promisify" "^2.0.0" @@ -2612,16 +2751,23 @@ duplexify "^4.1.1" ent "^2.2.0" extend "^3.0.2" - google-auth-library "^7.9.2" + google-auth-library "^7.0.2" retry-request "^4.2.2" teeny-request "^7.0.0" +<<<<<<< HEAD "@google-cloud/container@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@google-cloud/container/-/container-3.0.0.tgz#b28d086152ac19f22f2574b7e0a39774379fb885" integrity sha512-Jr+QKc6kZ9eehZunvemocB4hDd1nE3OBPo8zb0VX9lv7y+PPxksJl2RPEktFRNs32mQ9/kWLsvjLdGAHYsaOug== +======= +"@google-cloud/container@^2.2.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@google-cloud/container/-/container-2.3.0.tgz#a23f046948dbaf8cced008d419580cb600334efc" + integrity sha512-Tv8fR7JjlZr3oh476hMsf9yqGXbb/+81n0Va1Uc3reWjAdUXCYztH3/o/HMvh6yvd06j8VLLUxyBwAIb5PtW5g== +>>>>>>> 76d216e74b (fixups) dependencies: - google-gax "^2.24.1" + google-gax "^2.12.0" "@google-cloud/firestore@^5.0.2": version "5.0.2" @@ -2633,50 +2779,48 @@ google-gax "^2.24.1" protobufjs "^6.8.6" -"@google-cloud/paginator@^3.0.7": - version "3.0.7" - resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz#fb6f8e24ec841f99defaebf62c75c2e744dd419b" - integrity sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ== +"@google-cloud/paginator@^3.0.0": + version "3.0.5" + resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.5.tgz#9d6b96c421a89bd560c1bc2c197c7611ef21db6c" + integrity sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw== dependencies: arrify "^2.0.0" extend "^3.0.2" "@google-cloud/projectify@^2.0.0": - version "2.1.1" - resolved "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz#ae6af4fee02d78d044ae434699a630f8df0084ef" - integrity sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ== + version "2.0.1" + resolved "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.0.1.tgz#13350ee609346435c795bbfe133a08dfeab78d65" + integrity sha512-ZDG38U/Yy6Zr21LaR3BTiiLtpJl6RkPS/JwoRT453G+6Q1DhlV0waNf8Lfu+YVYGIIxgKnLayJRfYlFJfiI8iQ== "@google-cloud/promisify@^2.0.0": - version "2.0.4" - resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" - integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== + version "2.0.3" + resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.3.tgz#f934b5cdc939e3c7039ff62b9caaf59a9d89e3a8" + integrity sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw== "@google-cloud/storage@^5.6.0", "@google-cloud/storage@^5.8.0": - version "5.18.2" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.18.2.tgz#0ded98a69323d253e6dd986650edc89b5c504bf9" - integrity sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg== + version "5.11.0" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.11.0.tgz#f2414358f093034410bb03410176a5dcabc7bdf8" + integrity sha512-UgdAwBelXpQhubYOHw0U/hDxCXIXFT2TqDc0JWUxtg+BeePZC0ohoFM/b/tJffE28AZW0urTQax5xbRNoDA1Sw== dependencies: - "@google-cloud/common" "^3.8.1" - "@google-cloud/paginator" "^3.0.7" + "@google-cloud/common" "^3.7.0" + "@google-cloud/paginator" "^3.0.0" "@google-cloud/promisify" "^2.0.0" - abort-controller "^3.0.0" arrify "^2.0.0" - async-retry "^1.3.3" + async-retry "^1.3.1" compressible "^2.0.12" - configstore "^5.0.0" - date-and-time "^2.0.0" + date-and-time "^1.0.0" duplexify "^4.0.0" extend "^3.0.2" - gaxios "^4.0.0" + gcs-resumable-upload "^3.3.0" get-stream "^6.0.0" - google-auth-library "^7.0.0" hash-stream-validation "^0.2.2" - mime "^3.0.0" + mime "^2.2.0" mime-types "^2.0.8" + onetime "^5.1.0" p-limit "^3.0.1" pumpify "^2.0.0" snakeize "^0.1.0" - stream-events "^1.0.4" + stream-events "^1.0.1" xdg-basedir "^4.0.0" "@graphiql/toolkit@^0.4.2": @@ -2688,12 +2832,12 @@ meros "^1.1.4" "@graphql-codegen/cli@^2.3.1": - version "2.6.2" - resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.6.2.tgz#a9aa4656141ee0998cae8c7ad7d0bf9ca8e0c9ae" - integrity sha512-UO75msoVgvLEvfjCezM09cQQqp32+mR8Ma1ACsBpr7nroFvHbgcu2ulx1cMovg4sxDBCsvd9Eq/xOOMpARUxtw== + version "2.3.1" + resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.3.1.tgz#66083293b60e3182603d70031210d59e6f1a16e5" + integrity sha512-xMSvYqFtnRXOp/sVJSyqiFTm70X8ouLXiq5o/R/D3yQtA6NNudAC+Q4oxg9/LZKnRDL6pehwdC8CNnQk0Tf7Sw== dependencies: - "@graphql-codegen/core" "2.5.1" - "@graphql-codegen/plugin-helpers" "^2.4.1" + "@graphql-codegen/core" "2.4.0" + "@graphql-codegen/plugin-helpers" "^2.3.2" "@graphql-tools/apollo-engine-loader" "^7.0.5" "@graphql-tools/code-file-loader" "^7.0.6" "@graphql-tools/git-loader" "^7.0.5" @@ -2723,7 +2867,7 @@ listr "^0.14.3" listr-update-renderer "^0.5.0" log-symbols "^4.0.0" - minimatch "^4.0.0" + minimatch "^3.0.4" mkdirp "^1.0.4" string-env-interpolation "^1.0.1" ts-log "^2.2.3" @@ -2733,32 +2877,32 @@ yaml "^1.10.0" yargs "^17.0.0" -"@graphql-codegen/core@2.5.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.5.1.tgz#e3d50d3449b8c58b74ea08e97faf656a1b7fc8a1" - integrity sha512-alctBVl2hMnBXDLwkgmnFPrZVIiBDsWJSmxJcM4GKg1PB23+xuov35GE47YAyAhQItE1B1fbYnbb1PtGiDZ4LA== +"@graphql-codegen/core@2.4.0": + version "2.4.0" + resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.4.0.tgz#d94dcc088b5e117c847ce5b10c4fe1eb7325e180" + integrity sha512-5RiYE1+07jayp/3w/bkyaCXtfKNeKmRabpPP4aRi369WeH2cH37l2K8NbhkIU+zhpnhoqMID61TO56x2fKldZQ== dependencies: - "@graphql-codegen/plugin-helpers" "^2.4.1" + "@graphql-codegen/plugin-helpers" "^2.3.2" "@graphql-tools/schema" "^8.1.2" "@graphql-tools/utils" "^8.1.1" tslib "~2.3.0" "@graphql-codegen/graphql-modules-preset@^2.3.2": - version "2.3.5" - resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.3.5.tgz#07ef9ef6e66d4fbb76767097a7cc3cace34f8d08" - integrity sha512-y1PcTFr483Imzd346YdmNSvW3FlN4iYj4sRWCRys+WXpiFcXq+D7+1dFZvs75/9bIHoOEeQtusHHuRPy9qJVkA== + version "2.3.2" + resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.3.2.tgz#df88431e4cff656799b1ab0324e0795606162389" + integrity sha512-O3PPDQejqf3rF9sHqlrl00M+BSIKJAovFWt2zkDr/D3I/XwntR4QdQDKyY9zTotHfPpgJKyxyMzthpdqPD5XUA== dependencies: - "@graphql-codegen/plugin-helpers" "^2.4.0" - "@graphql-codegen/visitor-plugin-common" "2.7.1" - "@graphql-tools/utils" "8.6.1" + "@graphql-codegen/plugin-helpers" "^2.3.2" + "@graphql-codegen/visitor-plugin-common" "2.5.2" + "@graphql-tools/utils" "8.5.5" change-case-all "1.0.14" parse-filepath "^1.0.2" tslib "~2.3.0" -"@graphql-codegen/plugin-helpers@^2.3.2", "@graphql-codegen/plugin-helpers@^2.4.0", "@graphql-codegen/plugin-helpers@^2.4.1": - version "2.4.1" - resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.4.1.tgz#433845a89b0b4b3a2a0e959e0a2cfe444cf7aeac" - integrity sha512-OPMma7aUnES3Dh+M0BfiNBnJLmYuH60EnbULAhufxFDn/Y2OA0Ht/LQok9beX6VN4ASZEMCOAGItJezGJr5DJw== +"@graphql-codegen/plugin-helpers@^2.3.2": + version "2.3.2" + resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.3.2.tgz#3f9ba625791901d19be733db1dfc9a3dbd0dac44" + integrity sha512-19qFA5XMAWaAY64sBljjDPYfHjE+QMk/+oalCyY13WjSlcLDvYPfmFlCNgFSsydArDELlHR8T1GMbA7C42M8TA== dependencies: "@graphql-tools/utils" "^8.5.2" change-case-all "1.0.14" @@ -2777,34 +2921,34 @@ tslib "~2.3.0" "@graphql-codegen/typescript-resolvers@^2.4.3": - version "2.5.2" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.5.2.tgz#dc19cc4fd8b7750269651adfa331f9f5f6e33032" - integrity sha512-iYgAttxqE/1TFcKmApwC/VzPFiPa22WYXq6XKQH8eDZUQvG2O4yG+2RfBxfPNGM5DnNkiOGBPuGipTSxV7lmaA== + version "2.4.3" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.4.3.tgz#556dbaf23eac0ff9c321d3ce7126d96a839f793f" + integrity sha512-4m3E0zKLSXjGirZcYHHaZ0bxjy/gxvuumShFCKFmYTkHwTfqBaeh/pMhWqLkwC9wimrH6mQoPIYSQHLaF6Eqng== dependencies: - "@graphql-codegen/plugin-helpers" "^2.4.0" - "@graphql-codegen/typescript" "^2.4.5" - "@graphql-codegen/visitor-plugin-common" "2.7.1" + "@graphql-codegen/plugin-helpers" "^2.3.2" + "@graphql-codegen/typescript" "^2.4.2" + "@graphql-codegen/visitor-plugin-common" "2.5.2" "@graphql-tools/utils" "^8.1.1" auto-bind "~4.0.0" tslib "~2.3.0" -"@graphql-codegen/typescript@^2.4.2", "@graphql-codegen/typescript@^2.4.5": - version "2.4.5" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.5.tgz#80ca7a343511a27cd587c0b220b0a0dd99a4dc4b" - integrity sha512-Ytb8phNHKl/v/wxudsMOAV1dmzIbckWHm2J83PLNOvnu9CGEhgsd67vfe3ZoF95VU2BKSG8BXGa6uL9z2xDmuA== +"@graphql-codegen/typescript@^2.4.2": + version "2.4.2" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.2.tgz#a239d5fd8f11140d5d4c81cfae7ff02054b724dc" + integrity sha512-8ajWidiFqF1KNAywtb/692SjwTyjzrDHo1sf2Q7Z+rh9qDEIrh83VHB8naT/1CefOvxj3MS6GbcsvJMizaE/AQ== dependencies: - "@graphql-codegen/plugin-helpers" "^2.4.0" + "@graphql-codegen/plugin-helpers" "^2.3.2" "@graphql-codegen/schema-ast" "^2.4.1" - "@graphql-codegen/visitor-plugin-common" "2.7.1" + "@graphql-codegen/visitor-plugin-common" "2.5.2" auto-bind "~4.0.0" tslib "~2.3.0" -"@graphql-codegen/visitor-plugin-common@2.7.1": - version "2.7.1" - resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.7.1.tgz#bdcded24d1d6f329d32b90704397d6001374b893" - integrity sha512-Ew/+0GwGwL3ZSXS0cYz6lVvE7S5SkbTr7caRpLa4FpAdLGNskCgdA1n6W5tX5c7qsaYstqlxp30hJTfgTsYS6A== +"@graphql-codegen/visitor-plugin-common@2.5.2": + version "2.5.2" + resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.5.2.tgz#90aa4add41e17bca83f1c7c8ad674f2a06065efd" + integrity sha512-qDMraPmumG+vEGAz42/asRkdgIRmQWH5HTc320UX+I6CY6eE/Ey85cgzoqeQGLV8gu4sj3UkNx/3/r79eX4u+Q== dependencies: - "@graphql-codegen/plugin-helpers" "^2.4.0" + "@graphql-codegen/plugin-helpers" "^2.3.2" "@graphql-tools/optimize" "^1.0.1" "@graphql-tools/relay-operation-optimizer" "^6.3.7" "@graphql-tools/utils" "^8.3.0" @@ -2816,12 +2960,12 @@ tslib "~2.3.0" "@graphql-tools/apollo-engine-loader@^7.0.5": - version "7.2.2" - resolved "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.2.2.tgz#1463f5d2d95b5ca2b602b35b4922b38935013860" - integrity sha512-jrtA1IvgbaHzla9nyBngNyvajudTcQAVE3//mgrK+DoN7UpUhtoXfxTOOq2tzZN67o4a6Bv/RJsxB3rSI3NLzg== + version "7.2.1" + resolved "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.2.1.tgz#14e5d0b1032a7d882d22a7533c8969ee3fa797f2" + integrity sha512-Fj/A8+9SXPTXkpKqhcSq7O9WZuMdy5zynGrnMyewbCuw1kSfzgC4pJB76ILSPa5ajOcC5bBmmvXm+yVFVRgVMg== dependencies: "@graphql-tools/utils" "^8.5.1" - cross-undici-fetch "^0.1.19" + cross-undici-fetch "^0.0.20" sync-fetch "0.3.1" tslib "~2.3.0" @@ -2869,16 +3013,15 @@ tslib "~2.2.0" value-or-promise "1.0.6" -"@graphql-tools/delegate@^8.4.1", "@graphql-tools/delegate@^8.5.0": - version "8.5.0" - resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.5.0.tgz#f835b413f9277a07dd6db09d401fbec1ee76af0b" - integrity sha512-P2LLahWpv8eFrqXQi9v/NDLxLBKAugd3rmB8lxeTnCqma19ZM/VaSpvGAgGyjjHKQe097mAeBEkM/7uYbG/NFg== +"@graphql-tools/delegate@^8.4.1", "@graphql-tools/delegate@^8.4.2": + version "8.4.2" + resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.4.2.tgz#a61d45719855720304e3656800342cfa17d82558" + integrity sha512-CjggOhiL4WtyG2I3kux+1/p8lQxSFHBj0gwa0NxnQ6Vsnpw7Ig5VP1ovPnitFuBv2k4QdC37Nj2xv2n7DRn8fw== dependencies: "@graphql-tools/batch-execute" "^8.3.1" "@graphql-tools/schema" "^8.3.1" - "@graphql-tools/utils" "^8.5.4" + "@graphql-tools/utils" "^8.5.3" dataloader "2.0.0" - graphql-executor "0.0.18" tslib "~2.3.0" value-or-promise "1.0.11" @@ -2895,13 +3038,13 @@ unixify "^1.0.0" "@graphql-tools/github-loader@^7.0.5": - version "7.2.3" - resolved "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.2.3.tgz#1195150078e48c1b49b5106973c5ec5c928b24c1" - integrity sha512-enbMT5lWtKaLGw0PB9RL9Xg/oc9y89e6ihuxD/ZnnNXo60J1JVNtTy3+gRgXvGOX9WtJgy3UDVudDefrOHsqaA== + version "7.2.1" + resolved "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.2.1.tgz#53ce2bf215a0eb083ff985b213402a24f1302da2" + integrity sha512-vqwh2H11ZkAATDam/JqiP0CSqQRPUbjgCDxPdUu/xvST2QKyA4+uVXLBcpBRJc5kJCQjELijeRWVHSk9oN1q6g== dependencies: "@graphql-tools/graphql-tag-pluck" "^7.1.3" "@graphql-tools/utils" "^8.5.1" - cross-undici-fetch "^0.1.19" + cross-undici-fetch "^0.0.20" sync-fetch "0.3.1" tslib "~2.3.0" @@ -2926,22 +3069,30 @@ unixify "^1.0.0" "@graphql-tools/graphql-tag-pluck@^7.1.3": - version "7.1.5" - resolved "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.1.5.tgz#229ed40f38430cdea750f112cbfad89fbc29129c" - integrity sha512-NKbFcjlg7cbK+scLXc6eVxXIhX4k8QL6lZ/y5Ju7yrpIN18k2vA78dI6W3Qb5qdftxbDNuC+kDmScZfzzxVPjQ== + version "7.1.4" + resolved "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.1.4.tgz#174b69d40988c3450d310173c5be5af894929c41" + integrity sha512-0V2AY68ip3YmJ9rnIwQGxXsokCeGD9FTQOeSLzpwG74U0VY6bphfaCp5KVGW+W5sGJchTj3HvnmvdmWZnEZWZA== dependencies: - "@babel/parser" "^7.16.8" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" + "@babel/parser" "7.16.4" + "@babel/traverse" "7.16.3" + "@babel/types" "7.16.0" "@graphql-tools/utils" "^8.5.1" tslib "~2.3.0" -"@graphql-tools/import@^6.2.6", "@graphql-tools/import@^6.5.7": - version "6.6.5" - resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.5.tgz#e1ec593960288ceda7d5c56c0073c702b1bdcfa0" - integrity sha512-w0/cYuhrr2apn+iGoTToCqt65x2NN2iHQyqRNk/Zw1NJ+e8/C3eKVw0jmW4pYQvSocuPxL4UCSI56SdKO7m3+Q== +"@graphql-tools/import@^6.2.6": + version "6.3.1" + resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz#731c47ab6c6ac9f7994d75c76b6c2fa127d2d483" + integrity sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw== dependencies: - "@graphql-tools/utils" "8.6.1" + resolve-from "5.0.0" + tslib "~2.2.0" + +"@graphql-tools/import@^6.5.7": + version "6.6.1" + resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.1.tgz#2a7e1ceda10103ffeb8652a48ddc47150b035485" + integrity sha512-i9WA6k+erJMci822o9w9DoX+uncVBK60LGGYW8mdbhX0l7wEubUpA000thJ1aarCusYh0u+ZT9qX0HyVPXu25Q== + dependencies: + "@graphql-tools/utils" "8.5.3" resolve-from "5.0.0" tslib "~2.3.0" @@ -2978,17 +3129,34 @@ unixify "1.0.0" valid-url "1.0.9" +<<<<<<< HEAD "@graphql-tools/load@^7.3.0", "@graphql-tools/load@^7.4.1": version "7.5.5" resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.5.tgz#d61e5bdee59b6c8aa9631f74f0b2a70d512e5b31" integrity sha512-qPasit140nwTbMQbFCfZcgaS7q/0+xMQGdkMGU11rtHt6/jMgJIKDUU8/fJGKltNY3EeHlEdVtZmggZD7Rr6bA== +======= +"@graphql-tools/load@^7.3.0": + version "7.5.1" + resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.1.tgz#8c7f846d2185ddc1d44fdfbf1ed9cb678f69e40b" + integrity sha512-j9XcLYZPZdl/TzzqA83qveJmwcCxgGizt5L1+C1/Z68brTEmQHLdQCOR3Ma3ewESJt6DU05kSTu2raKaunkjRg== +>>>>>>> f9b03ab02f (fixups) dependencies: "@graphql-tools/schema" "8.3.5" "@graphql-tools/utils" "8.6.5" p-limit "3.1.0" tslib "~2.3.0" -"@graphql-tools/merge@6.0.0 - 6.2.14": +"@graphql-tools/load@^7.4.1": + version "7.4.1" + resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.4.1.tgz#aa572fcef11d6028097b6ef39c13fa9d62e5a441" + integrity sha512-UvBodW5hRHpgBUBVz5K5VIhJDOTFIbRRAGD6sQ2l9J5FDKBEs3u/6JjZDzbdL96br94D5cEd2Tk6auaHpTn7mQ== + dependencies: + "@graphql-tools/schema" "8.3.1" + "@graphql-tools/utils" "^8.5.1" + p-limit "3.1.0" + tslib "~2.3.0" + +"@graphql-tools/merge@^6.0.0", "@graphql-tools/merge@^6.2.12": version "6.2.14" resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.14.tgz#694e2a2785ba47558e5665687feddd2935e9d94e" integrity sha512-RWT4Td0ROJai2eR66NHejgf8UwnXJqZxXgDWDI+7hua5vNA2OW8Mf9K1Wav1ZkjWnuRp4ztNtkZGie5ISw55ow== @@ -2997,6 +3165,7 @@ "@graphql-tools/utils" "^7.7.0" tslib "~2.2.0" +<<<<<<< HEAD "@graphql-tools/merge@8.2.6": version "8.2.6" resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz#7fb615fa9c143c3151ff025e501d52bd48186d19" @@ -3014,10 +3183,12 @@ "@graphql-tools/utils" "8.0.2" tslib "~2.3.0" +======= +>>>>>>> f9b03ab02f (fixups) "@graphql-tools/merge@^8.2.1": - version "8.2.2" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.2.tgz#433566c662a33f5a9c3cc5f3ce3753fb0019477a" - integrity sha512-2DyqhIOMUMKbCPqo8p6xSdll2OBcBxGdOrxlJJlFQvinsSaYqp/ct3dhAxNtzaIcvSVgXvttQqfD7O2ziFtE7Q== + version "8.2.1" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.1.tgz#bf83aa06a0cfc6a839e52a58057a84498d0d51ff" + integrity sha512-Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA== dependencies: "@graphql-tools/utils" "^8.5.1" tslib "~2.3.0" @@ -3033,11 +3204,11 @@ tslib "~2.3.0" "@graphql-tools/optimize@^1.0.1": - version "1.2.0" - resolved "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.2.0.tgz#292d0a269f95d04bc6d822c034569bb7e591fb26" - integrity sha512-l0PTqgHeorQdeOizUor6RB49eOAng9+abSxiC5/aHRo6hMmXVaqv5eqndlmxCpx9BkgNb3URQbK+ZZHVktkP/g== + version "1.0.1" + resolved "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.0.1.tgz#9933fffc5a3c63f95102b1cb6076fb16ac7bb22d" + integrity sha512-cRlUNsbErYoBtzzS6zXahXeTBZGPVlPHXCpnEZ0XiK/KY/sQL96cyzak0fM/Gk6qEI9/l32MYEICjasiBQrl5w== dependencies: - tslib "~2.3.0" + tslib "~2.0.1" "@graphql-tools/prisma-loader@^7.0.6": version "7.1.1" @@ -3074,10 +3245,17 @@ relay-compiler "12.0.0" tslib "~2.3.0" +<<<<<<< HEAD "@graphql-tools/schema@8.3.5": version "8.3.5" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz#ebec0c0c7f53e591d34375d6f81d0660852fcaca" integrity sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg== +======= +"@graphql-tools/schema@8.3.1", "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": + version "8.3.1" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74" + integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ== +>>>>>>> f9b03ab02f (fixups) dependencies: "@graphql-tools/merge" "8.2.6" "@graphql-tools/utils" "8.6.5" @@ -3128,10 +3306,10 @@ valid-url "1.0.9" ws "7.4.5" -"@graphql-tools/url-loader@^7.0.11", "@graphql-tools/url-loader@^7.4.2": - version "7.7.1" - resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.1.tgz#2faabdc1d2c47edc8edc9cc938eee2767189869f" - integrity sha512-K/5amdeHtKYI976HVd/AXdSNvLL7vx5QVjMlwN0OHeYyxSgC+UOH+KkS7cshYgL13SekGu0Mxbg9ABfgQ34ECA== +"@graphql-tools/url-loader@^7.0.11": + version "7.7.0" + resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.0.tgz#504f0030c75b61bca4ac07da49e8cd872c316972" + integrity sha512-mBBb+aJqI4E0MVEzyfi76Pi/G6lGxGTVt/tP1YtKJly7UnonNoWOtDusdL3zIVAGhGgLsNrLbGhLDbwSd6TV6A== dependencies: "@graphql-tools/delegate" "^8.4.1" "@graphql-tools/utils" "^8.5.1" @@ -3139,7 +3317,7 @@ "@n1ru4l/graphql-live-query" "^0.9.0" "@types/websocket" "^1.0.4" "@types/ws" "^8.0.0" - cross-undici-fetch "^0.1.19" + cross-undici-fetch "^0.1.4" dset "^3.1.0" extract-files "^11.0.0" graphql-sse "^1.0.1" @@ -3153,17 +3331,49 @@ value-or-promise "^1.0.11" ws "^8.3.0" -"@graphql-tools/utils@8.0.2": - version "8.0.2" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.0.2.tgz#795a8383cdfdc89855707d62491c576f439f3c51" - integrity sha512-gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ== +"@graphql-tools/url-loader@^7.4.2": + version "7.5.3" + resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.5.3.tgz#a594be40e3bc68d22f76746356e7f0b8117b7137" + integrity sha512-VKMRJ4TOeVIdulkCLGSBUr4stRRwOGcVRXDeoUF+86K32Ufo0H2V0lz7QwS/bCl8GXV19FMgHZCDl4BMJyOXEA== + dependencies: + "@graphql-tools/delegate" "^8.4.1" + "@graphql-tools/utils" "^8.5.1" + "@graphql-tools/wrap" "^8.3.1" + "@n1ru4l/graphql-live-query" "0.9.0" + "@types/websocket" "1.0.4" + "@types/ws" "^8.0.0" + cross-undici-fetch "^0.0.26" + dset "^3.1.0" + extract-files "11.0.0" + graphql-sse "^1.0.1" + graphql-ws "^5.4.1" + isomorphic-ws "4.0.1" + meros "1.1.4" + subscriptions-transport-ws "^0.11.0" + sync-fetch "0.3.1" + tslib "~2.3.0" + valid-url "1.0.9" + value-or-promise "1.0.11" + ws "8.3.0" + +"@graphql-tools/utils@8.5.3", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.3": + version "8.5.3" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.3.tgz#404062e62cae9453501197039687749c4885356e" + integrity sha512-HDNGWFVa8QQkoQB0H1lftvaO1X5xUaUDk1zr1qDe0xN1NL0E/CrQdJ5UKLqOvH4hkqVUPxQsyOoAZFkaH6rLHg== dependencies: tslib "~2.3.0" +<<<<<<< HEAD "@graphql-tools/utils@8.6.1", "@graphql-tools/utils@^8.5.4": version "8.6.1" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg== +======= +"@graphql-tools/utils@8.5.5": + version "8.5.5" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.5.tgz#019ddb99719feb19602afdb537c06e463df674a9" + integrity sha512-y7zRXWIUI73X+9/rf/0KzrNFMlpRKFfzLiwdbIeWwgLs+NV9vfUOoVkX8luXX6LwQxhSypHATMiwZGM2ro/wJA== +>>>>>>> f9b03ab02f (fixups) dependencies: tslib "~2.3.0" @@ -3183,6 +3393,20 @@ camel-case "4.1.2" tslib "~2.2.0" +"@graphql-tools/utils@^8.0.0": + version "8.6.1" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" + integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg== + dependencies: + tslib "~2.3.0" + +"@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.6.0": + version "8.6.0" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.0.tgz#f424256a1f3b87d1dcf6f9f675739b2d3627be33" + integrity sha512-rnk+RHaOCeWnfekeQGRh5ycXK1ZAI7Nm0pbeLjA3SiysTdqhWyxNCp5ON4Mvtlid84OY/KB253fQq/2rotznCA== + dependencies: + tslib "~2.3.0" + "@graphql-tools/wrap@^7.0.4": version "7.0.8" resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz#ad41e487135ca3ea1ae0ea04bb3f596177fb4f50" @@ -3195,11 +3419,11 @@ value-or-promise "1.0.6" "@graphql-tools/wrap@^8.3.1": - version "8.4.0" - resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.4.0.tgz#8fb2aa950ab68abe1fb63b6d62fc5b8fc4f8b025" - integrity sha512-fPB3+UnxLIPWDfMvAfBQnGmm8rrejeQjmCy7h9avWHBbkEELcvtrSWnKAvoKowe+WR9PVDM15XQ/PQvcddV0kQ== + version "8.3.2" + resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.3.2.tgz#d3bcecb7529d071e4ecc4dfc75b9566e3da79d4f" + integrity sha512-7DcOBFB+Dd84x9dxSm7qS4iJONMyfLnCJb8A19vGPffpu4SMJ3sFcgwibKFu5l6mMUiigKgXna2RRgWI+02bKQ== dependencies: - "@graphql-tools/delegate" "^8.5.0" + "@graphql-tools/delegate" "^8.4.2" "@graphql-tools/schema" "^8.3.1" "@graphql-tools/utils" "^8.5.3" tslib "~2.3.0" @@ -3210,34 +3434,34 @@ resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== -"@grpc/grpc-js@~1.5.0": - version "1.5.5" - resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz#f850a1bb7de8a1d0bb4821aabd3655d1c928d4c6" - integrity sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ== +"@grpc/grpc-js@~1.4.0": + version "1.4.5" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.5.tgz#0cd840b47180624eeedf066f2cdc422d052401f8" + integrity sha512-A6cOzSu7dqXZ7rzvh/9JZf+Jg/MOpLEMP0IdT8pT8hrWJZ6TB4ydN/MRuqOtAugInJe/VQ9F8BPricUpYZSaZA== dependencies: "@grpc/proto-loader" "^0.6.4" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.6.1", "@grpc/proto-loader@^0.6.4": - version "0.6.9" - resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz#4014eef366da733f8e04a9ddd7376fe8a58547b7" - integrity sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg== + version "0.6.7" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.7.tgz#e62a202f4cf5897bdd0e244dec1dbc80d84bdfa1" + integrity sha512-QzTPIyJxU0u+r2qGe8VMl3j/W2ryhEvBv7hc42OjYfthSj370fUrb7na65rG6w3YLZS/fb8p89iTBobfWGDgdw== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" long "^4.0.0" protobufjs "^6.10.0" - yargs "^16.2.0" + yargs "^16.1.1" "@hapi/hoek@^9.0.0": - version "9.2.1" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17" - integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== + version "9.0.4" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz#e80ad4e8e8d2adc6c77d985f698447e8628b6010" + integrity sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw== "@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + version "5.0.0" + resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" + integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== dependencies: "@hapi/hoek" "^9.0.0" @@ -3262,9 +3486,9 @@ scheduler "^0.20.2" "@humanwhocodes/config-array@^0.9.2": - version "0.9.3" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz#f2564c744b387775b436418491f15fce6601f63e" - integrity sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ== + version "0.9.2" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" + integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -3291,20 +3515,19 @@ integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== "@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + version "1.0.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" + integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== dependencies: camelcase "^5.3.1" find-up "^4.1.0" - get-package-type "^0.1.0" js-yaml "^3.13.1" resolve-from "^5.0.0" "@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + version "0.1.2" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== "@jest/console@^26.6.2": version "26.6.2" @@ -3477,6 +3700,17 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jest/types@^27.2.5": + version "27.2.5" + resolved "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" + integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@jimp/bmp@^0.10.3": version "0.10.3" resolved "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.10.3.tgz#79a23678e8389865c62e77b0dccc3e069dfc27f0" @@ -3838,9 +4072,9 @@ ioredis "^4.28.5" "@kubernetes/client-node@^0.16.0": - version "0.16.3" - resolved "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.16.3.tgz#a26a5abbd6e45603b4f75f0baff00e19853e5be7" - integrity sha512-L7IckuyuPfhd+/Urib8MRas9D6sfKEq8IaITYcaE6LlU+Y8MeD7MTbuW6Yb2WdeRuFN8HPSS47mxPnOUNYBXEg== + version "0.16.1" + resolved "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.16.1.tgz#c78ef667579777c1a532983922807e228dbc9b90" + integrity sha512-/Ah+3gFSjXFeqDMGGTyYBKug44Eu2D2qowKLdiZqxCkHdSNgy+CNk6FU1Vy80WrTvGkF/CZr4az6O5AopAiJEw== dependencies: "@types/js-yaml" "^4.0.1" "@types/node" "^10.12.0" @@ -3857,9 +4091,9 @@ openid-client "^4.1.1" request "^2.88.0" rfc4648 "^1.3.0" - shelljs "^0.8.5" + shelljs "^0.8.4" stream-buffers "^3.0.2" - tar "^6.1.11" + tar "^6.0.2" tmp-promise "^3.0.2" tslib "^1.9.3" underscore "^1.9.1" @@ -4537,14 +4771,14 @@ write-file-atomic "^3.0.3" "@lezer/common@^0.15.0", "@lezer/common@^0.15.5": - version "0.15.11" - resolved "https://registry.npmjs.org/@lezer/common/-/common-0.15.11.tgz#965b5067036305f12e8a3efc344076850be1d3a8" - integrity sha512-vv0nSdIaVCRcJ8rPuDdsrNVfBOYe/4Szr/LhF929XyDmBndLDuWiCCHooGlGlJfzELyO608AyDhVsuX/ZG36NA== + version "0.15.10" + resolved "https://registry.npmjs.org/@lezer/common/-/common-0.15.10.tgz#662da668f46244fb20bfaada67b43b3d0463b344" + integrity sha512-vlr+be73zTDoQBIknBVOh/633tmbQcjxUu9PIeVeYESeBK3V6TuBW96RRFg93Y2cyK9lglz241gOgSn452HFvA== "@lezer/lr@^0.15.0": - version "0.15.8" - resolved "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz#1564a911e62b0a0f75ca63794a6aa8c5dc63db21" - integrity sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg== + version "0.15.5" + resolved "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.5.tgz#4bce44169c441d9dda7be398f5202ea65c5f1138" + integrity sha512-DEcLyhdmBxD1foQe7RegLrSlfS/XaTMGLkO5evkzHWAQKh/JnFWp7j7iNB7s2EpxzRrBCh0U+W7JDCeFhv2mng== dependencies: "@lezer/common" "^0.15.0" @@ -4571,24 +4805,24 @@ read-yaml-file "^1.1.0" "@mapbox/node-pre-gyp@^1.0.0": - version "1.0.8" - resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz#32abc8a5c624bc4e46c43d84dfb8b26d33a96f58" - integrity sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg== + version "1.0.5" + resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz#2a0b32fcb416fb3f2250fd24cb2a81421a4f5950" + integrity sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA== dependencies: detect-libc "^1.0.3" https-proxy-agent "^5.0.0" make-dir "^3.1.0" - node-fetch "^2.6.5" + node-fetch "^2.6.1" nopt "^5.0.0" - npmlog "^5.0.1" + npmlog "^4.1.2" rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" + semver "^7.3.4" + tar "^6.1.0" "@material-table/core@^3.1.0": - version "3.2.5" - resolved "https://registry.npmjs.org/@material-table/core/-/core-3.2.5.tgz#37b3c665bed3ded6c147ad74adb330bf49efb213" - integrity sha512-TmVN/In15faabezW3COb4Ve5+YhqxFEQnf2Q2Cz3FVXXCFqJvtu3pkRLi+7N9UJ5bvistszz6wfHeiZZY1Rf9Q== + version "3.1.0" + resolved "https://registry.npmjs.org/@material-table/core/-/core-3.1.0.tgz#4fc3bd1553359e628413437a4102d8469852c253" + integrity sha512-46vpm1q9v2B5t/VgaEq2JmnftTBYle1yNAX3cfdQsTRZ1iWkpG34qBkNHx/hbOauQPsm5hmeUo1KJJZdwtGL1g== dependencies: "@babel/runtime" "^7.12.5" "@date-io/date-fns" "^1.3.13" @@ -4601,7 +4835,6 @@ prop-types "^15.7.2" react-beautiful-dnd "^13.0.0" react-double-scrollbar "0.0.15" - uuid "^3.4.0" "@material-ui/core@^4.11.0", "@material-ui/core@^4.11.3", "@material-ui/core@^4.12.1", "@material-ui/core@^4.12.2", "@material-ui/core@^4.9.13": version "4.12.3" @@ -4721,9 +4954,9 @@ "@types/gapi.client" "*" "@microsoft/api-documenter@^7.15.0": - version "7.15.3" - resolved "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.15.3.tgz#2aeeb9ef95a59ad2328e7b7a3de66fa715c7eee0" - integrity sha512-tehv1f/aKwGBQp0sheQofz5NQfa61mvTdAe4IHQnVavsyyK71r+P+CVXWewznPYkqFzzVXaTdrCuNGPU5Yd3mg== + version "7.15.0" + resolved "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.15.0.tgz#e6cf24fc0e2f18a71dcf4c5c8100cc083167a81e" + integrity sha512-0KvwFamTIGZk6VE71F5gdDLxszLet0A1PEeb87RTdxr4KC0/yVFQvDyj+ck+HVr5+Exf6RyzIHfou0sgJl9SDA== dependencies: "@microsoft/api-extractor-model" "7.15.3" "@microsoft/tsdoc" "0.13.2" @@ -4766,9 +4999,9 @@ integrity sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA== "@microsoft/microsoft-graph-types@^2.6.0": - version "2.14.0" - resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.14.0.tgz#5c9ba1ad153b4a1ddeb330099e9ac55e379882c4" - integrity sha512-O4vcX6+2ivfUhDiZm/p4SIxGv+SQFe3qROcmvZpPluNAqL/Ho5/6LXysgjexvtUtNOUYXN/ZtfZdY30tlwQy+w== + version "2.13.0" + resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.13.0.tgz#aa584e4897665df5a9c8869a226264cd6ec5882b" + integrity sha512-63FfWBLcyNo8tMP4oPcdqHQvk4ehuWpiUMjVLD7zJXPENIowpdwudP969AALkKzlwsjWImamdivGKd2Zc8Z1Uw== "@microsoft/tsdoc-config@~0.15.2": version "0.15.2" @@ -4785,10 +5018,10 @@ resolved "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.13.2.tgz#3b0efb6d3903bd49edb073696f60e90df08efb26" integrity sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg== -"@mswjs/cookies@^0.1.6", "@mswjs/cookies@^0.1.7": - version "0.1.7" - resolved "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz#d334081b2c51057a61c1dd7b76ca3cac02251651" - integrity sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q== +"@mswjs/cookies@^0.1.6": + version "0.1.6" + resolved "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.6.tgz#176f77034ab6d7373ae5c94bcbac36fee8869249" + integrity sha512-A53XD5TOfwhpqAmwKdPtg1dva5wrng2gH5xMvklzbd9WLTSVU953eCRa8rtrrm6G7Cy60BOGsBRN89YQK0mlKA== dependencies: "@types/set-cookie-parser" "^2.4.0" set-cookie-parser "^2.4.6" @@ -4805,35 +5038,35 @@ outvariant "^1.2.0" strict-event-emitter "^0.2.0" -"@n1ru4l/graphql-live-query@^0.9.0": +"@n1ru4l/graphql-live-query@0.9.0", "@n1ru4l/graphql-live-query@^0.9.0": version "0.9.0" resolved "https://registry.npmjs.org/@n1ru4l/graphql-live-query/-/graphql-live-query-0.9.0.tgz#defaebdd31f625bee49e6745934f36312532b2bc" integrity sha512-BTpWy1e+FxN82RnLz4x1+JcEewVdfmUhV1C6/XYD5AjS7PQp9QFF7K8bCD6gzPTr2l+prvqOyVueQhFJxB1vfg== "@n1ru4l/push-pull-async-iterable-iterator@^3.1.0": - version "3.2.0" - resolved "https://registry.npmjs.org/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.2.0.tgz#c15791112db68dd9315d329d652b7e797f737655" - integrity sha512-3fkKj25kEjsfObL6IlKPAlHYPq/oYwUkkQ03zsTTiDjD7vg/RxjdiLeCydqtxHZP0JgsXL3D/X5oAkMGzuUp/Q== + version "3.1.0" + resolved "https://registry.npmjs.org/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.1.0.tgz#be450c97d1c7cd6af1a992d53232704454345df9" + integrity sha512-K4scWxGhdQM0masHHy4gIQs2iGiLEXCrXttumknyPJqtdl4J179BjpibWSSQ1fxKdCcHgIlCTKXJU6cMM6D6Wg== -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== dependencies: - "@nodelib/fs.stat" "2.0.5" + "@nodelib/fs.stat" "2.0.3" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== "@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + version "1.2.4" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== dependencies: - "@nodelib/fs.scandir" "2.1.5" + "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" "@npmcli/arborist@^4.0.4": @@ -4875,19 +5108,19 @@ walk-up-path "^1.0.0" "@npmcli/ci-detect@^1.0.0": - version "1.4.0" - resolved "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz#18478bbaa900c37bfbd8a2006a6262c62e8b0fe1" - integrity sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q== + version "1.3.0" + resolved "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" + integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== "@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + version "1.0.0" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f" + integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ== dependencies: "@gar/promisify" "^1.0.1" semver "^7.3.5" -"@npmcli/git@^2.1.0": +"@npmcli/git@^2.0.1", "@npmcli/git@^2.1.0": version "2.1.0" resolved "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== @@ -4910,14 +5143,14 @@ npm-normalize-package-bin "^1.0.1" "@npmcli/map-workspaces@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.1.tgz#da8b4d2e1f4cef30efcc81e425bd11a9bf5489f2" - integrity sha512-awwkB/tSWWaCD8F0IbawBdmoPFlbXMaEPN9LyTuJcyJz404/QhB4B/vhQntpk6uxOAkM+bxR7qWMJghYg0tcYQ== + version "2.0.0" + resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.0.tgz#e342efbbdd0dad1bba5d7723b674ca668bf8ac5a" + integrity sha512-QBJfpCY1NOAkkW3lFfru9VTdqvMB2TN0/vrevl5xBCv5Fi0XDVcA6rqqSau4Ysi4Iw3fBzyXV7hzyTBDfadf7g== dependencies: "@npmcli/name-from-folder" "^1.0.1" - glob "^7.2.0" - minimatch "^5.0.0" - read-package-json-fast "^2.0.3" + glob "^7.1.6" + minimatch "^3.0.4" + read-package-json-fast "^2.0.1" "@npmcli/metavuln-calculator@^2.0.0": version "2.0.0" @@ -4929,7 +5162,14 @@ pacote "^12.0.0" semver "^7.3.2" -"@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + +"@npmcli/move-file@^1.1.0": version "1.1.2" resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== @@ -4962,13 +5202,15 @@ infer-owner "^1.0.4" "@npmcli/run-script@^1.8.2": - version "1.8.6" - resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" - integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== + version "1.8.3" + resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.3.tgz#07f440ed492400bb1114369bc37315eeaaae2bb3" + integrity sha512-ELPGWAVU/xyU+A+H3pEPj0QOvYwLTX71RArXcClFzeiyJ/b/McsZ+d0QxpznvfFtZzxGN/gz/1cvlqICR4/suQ== dependencies: "@npmcli/node-gyp" "^1.0.2" "@npmcli/promise-spawn" "^1.3.2" + infer-owner "^1.0.4" node-gyp "^7.1.0" + puka "^1.0.1" read-package-json-fast "^2.0.1" "@npmcli/run-script@^2.0.0": @@ -4994,7 +5236,7 @@ "@octokit/types" "^6.27.1" "@octokit/webhooks" "^9.0.1" -"@octokit/auth-app@^3.3.0", "@octokit/auth-app@^3.4.0": +"@octokit/auth-app@^3.3.0": version "3.6.1" resolved "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-3.6.1.tgz#aa5b02cc211175cbc28ce6c03c73373c1206d632" integrity sha512-6oa6CFphIYI7NxxHrdVOzhG7hkcKyGyYocg7lNDSJVauVOLtylg8hNJzoUyPAYKKK0yUeoZamE/lMs2tG+S+JA== @@ -5010,6 +5252,22 @@ universal-github-app-jwt "^1.0.1" universal-user-agent "^6.0.0" +"@octokit/auth-app@^3.4.0": + version "3.4.0" + resolved "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-3.4.0.tgz#af9f68512e7b8dd071b49e1470a1ddf88ff6a3a3" + integrity sha512-zBVgTnLJb0uoNMGCpcDkkAbPeavHX7oAjJkaDv2nqMmsXSsCw4AbUhjl99EtJQG/JqFY/kLFHM9330Wn0k70+g== + dependencies: + "@octokit/auth-oauth-app" "^4.1.0" + "@octokit/auth-oauth-user" "^1.2.3" + "@octokit/request" "^5.4.11" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^6.0.3" + "@types/lru-cache" "^5.1.0" + deprecation "^2.3.1" + lru-cache "^6.0.0" + universal-github-app-jwt "^1.0.1" + universal-user-agent "^6.0.0" + "@octokit/auth-oauth-app@^4.0.0", "@octokit/auth-oauth-app@^4.3.0": version "4.3.0" resolved "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-4.3.0.tgz#de02f184360ffd7cfccef861053784fc4410e7ea" @@ -5023,17 +5281,42 @@ btoa-lite "^1.0.0" universal-user-agent "^6.0.0" +"@octokit/auth-oauth-app@^4.1.0": + version "4.1.2" + resolved "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-4.1.2.tgz#bf3ff30c260e6e9f10b950386f279befb8fe907d" + integrity sha512-bdNGNRmuDJjKoHla3mUGtkk/xcxKngnQfBEnyk+7VwMqrABKvQB1wQRSrwSWkPPUX7Lcj2ttkPAPG7+iBkMRnw== + dependencies: + "@octokit/auth-oauth-device" "^3.1.1" + "@octokit/auth-oauth-user" "^1.2.1" + "@octokit/request" "^5.3.0" + "@octokit/types" "^6.0.3" + "@types/btoa-lite" "^1.0.0" + btoa-lite "^1.0.0" + universal-user-agent "^6.0.0" + "@octokit/auth-oauth-device@^3.1.1": - version "3.1.2" - resolved "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-3.1.2.tgz#d299f51f491669f37fe7af8738f5ac921e63973c" - integrity sha512-w7Po4Ck6N2aAn2VQyKLuojruiyKROTBv4qs6IwE5rbwF7HhBXXp4A/NKmkpoFIZkiXQtM+N8QtkSck4ApYWdGg== + version "3.1.1" + resolved "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-3.1.1.tgz#380499f9a850425e2c7bdeb62afc070181c536a9" + integrity sha512-ykDZROilszXZJ6pYdl6SZ15UZniCs0zDcKgwOZpMz3U0QDHPUhFGXjHToBCAIHwbncMu+jLt4/Nw4lq3FwAw/w== dependencies: "@octokit/oauth-methods" "^1.1.0" "@octokit/request" "^5.4.14" "@octokit/types" "^6.10.0" universal-user-agent "^6.0.0" -"@octokit/auth-oauth-user@^1.2.1", "@octokit/auth-oauth-user@^1.2.3", "@octokit/auth-oauth-user@^1.3.0": +"@octokit/auth-oauth-user@^1.2.1", "@octokit/auth-oauth-user@^1.2.3": + version "1.2.4" + resolved "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-1.2.4.tgz#3594eb7d40cb462240e7e90849781dfa0045aed5" + integrity sha512-efOajupCZBP1veqx5w59Qey0lIud1rDUgxTRjjkQDU3eOBmkAasY1pXemDsQwW0I85jb1P/gn2dMejedVxf9kw== + dependencies: + "@octokit/auth-oauth-device" "^3.1.1" + "@octokit/oauth-methods" "^1.1.0" + "@octokit/request" "^5.4.14" + "@octokit/types" "^6.12.2" + btoa-lite "^1.0.0" + universal-user-agent "^6.0.0" + +"@octokit/auth-oauth-user@^1.3.0": version "1.3.0" resolved "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-1.3.0.tgz#da4e4529145181a6aa717ae858afb76ebd6e3360" integrity sha512-3QC/TAdk7onnxfyZ24BnJRfZv8TRzQK7SEFUS9vLng4Vv6Hv6I64ujdk/CUkREec8lhrwU764SZ/d+yrjjqhaQ== @@ -5046,11 +5329,11 @@ universal-user-agent "^6.0.0" "@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + version "2.4.4" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.4.tgz#ee31c69b01d0378c12fd3ffe406030f3d94d3b56" + integrity sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^6.0.0" "@octokit/auth-unauthenticated@^2.0.0", "@octokit/auth-unauthenticated@^2.0.4": version "2.1.0" @@ -5060,6 +5343,18 @@ "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.0.3" +"@octokit/core@^3.2.3": + version "3.2.4" + resolved "https://registry.npmjs.org/@octokit/core/-/core-3.2.4.tgz#5791256057a962eca972e31818f02454897fd106" + integrity sha512-d9dTsqdePBqOn7aGkyRFe7pQpCXdibSJ5SFnrTr0axevObZrpz3qkWm7t/NjYv5a66z6vhfteriaq4FRz3e0Qg== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.4.12" + "@octokit/types" "^6.0.3" + before-after-hook "^2.1.0" + universal-user-agent "^6.0.0" + "@octokit/core@^3.3.2", "@octokit/core@^3.4.0", "@octokit/core@^3.5.1": version "3.5.1" resolved "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" @@ -5074,18 +5369,18 @@ universal-user-agent "^6.0.0" "@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + version "6.0.3" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.3.tgz#dd09b599662d7e1b66374a177ab620d8cdf73487" + integrity sha512-Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg== dependencies: - "@octokit/types" "^6.0.3" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" + "@octokit/types" "^5.0.0" + is-plain-object "^3.0.0" + universal-user-agent "^5.0.0" "@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== + version "4.7.0" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.7.0.tgz#cbe12edc2bc61e9eaa5f9e5d092644c92b6fcb74" + integrity sha512-diY0qMPyQjfu4rDu3kDhJ9qIZadIm4IISO3RJSv9ajYUWJUCO0AykbgzLcg1xclxtXgzY583u3gAv66M6zz5SA== dependencies: "@octokit/request" "^5.6.0" "@octokit/types" "^6.0.3" @@ -5106,12 +5401,28 @@ fromentries "^1.3.1" universal-user-agent "^6.0.0" -"@octokit/oauth-authorization-url@^4.2.1", "@octokit/oauth-authorization-url@^4.3.1": +"@octokit/oauth-authorization-url@^4.2.1": version "4.3.3" resolved "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-4.3.3.tgz#6a6ef38f243086fec882b62744f39b517528dfb9" integrity sha512-lhP/t0i8EwTmayHG4dqLXgU+uPVys4WD/qUNvC+HfB1S1dyqULm5Yx9uKc1x79aP66U1Cb4OZeW8QU/RA9A4XA== -"@octokit/oauth-methods@^1.1.0", "@octokit/oauth-methods@^1.2.2": +"@octokit/oauth-authorization-url@^4.3.1": + version "4.3.1" + resolved "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-4.3.1.tgz#008d09bf427a7f61c70b5283040d60a456011a51" + integrity sha512-sI/SOEAvzRhqdzj+kJl+2ifblRve2XU6ZB36Lq25Su8R31zE3GoKToSLh64nWFnKePNi2RrdcMm94UEIQZslOw== + +"@octokit/oauth-methods@^1.1.0": + version "1.2.2" + resolved "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-1.2.2.tgz#3d98c548aa2ace36ad8d0ce6593fd49dcbe103cc" + integrity sha512-CFMUMn9DdPLMcpffhKgkwIIClfv0ZToJM4qcg4O0egCoHMYkVlxl22bBoo9qCnuF1U/xn871KEXuozKIX+bA2w== + dependencies: + "@octokit/oauth-authorization-url" "^4.3.1" + "@octokit/request" "^5.4.14" + "@octokit/request-error" "^2.0.5" + "@octokit/types" "^6.12.2" + btoa-lite "^1.0.0" + +"@octokit/oauth-methods@^1.2.2": version "1.2.6" resolved "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-1.2.6.tgz#b9ac65e374b2cc55ee9dd8dcdd16558550438ea7" integrity sha512-nImHQoOtKnSNn05uk2o76om1tJWiAo4lOu2xMAHYsNr0fwopP+Dv+2MlGvaMMlFjoqVd3fF3X5ZDTKCsqgmUaQ== @@ -5127,6 +5438,11 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^7.3.2": + version "7.3.2" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.3.2.tgz#065ce49b338043ec7f741316ce06afd4d459d944" + integrity sha512-oJhK/yhl9Gt430OrZOzAl2wJqR0No9445vmZ9Ey8GjUZUpwuu/vmEFP0TDhDXdpGDoxD6/EIFHJEcY8nHXpDTA== + "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" @@ -5139,11 +5455,31 @@ dependencies: "@octokit/types" "^6.34.0" +"@octokit/plugin-paginate-rest@^2.6.2": + version "2.7.0" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.7.0.tgz#6bb7b043c246e0654119a6ec4e72a172c9e2c7f3" + integrity sha512-+zARyncLjt9b0FjqPAbJo4ss7HOlBi1nprq+cPlw5vu2+qjy7WvlXhtXFdRHQbSL1Pt+bfAKaLADEkkvg8sP8w== + dependencies: + "@octokit/types" "^6.0.1" + +"@octokit/plugin-request-log@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44" + integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg== + "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== +"@octokit/plugin-rest-endpoint-methods@5.3.1": + version "5.3.1" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.3.1.tgz#deddce769b4ec3179170709ab42e4e9e6195aaa9" + integrity sha512-3B2iguGmkh6bQQaVOtCsS0gixrz8Lg0v4JuXPqBcFqLKuJtxAUf3K88RxMEf/naDOI73spD+goJ/o7Ie7Cvdjg== + dependencies: + "@octokit/types" "^6.16.2" + deprecation "^2.3.1" + "@octokit/plugin-rest-endpoint-methods@^5.12.0": version "5.13.0" resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" @@ -5168,7 +5504,7 @@ "@octokit/types" "^6.0.1" bottleneck "^2.15.3" -"@octokit/request-error@^2.0.2", "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": +"@octokit/request-error@^2.0.0", "@octokit/request-error@^2.0.2", "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": version "2.1.0" resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== @@ -5177,19 +5513,29 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.3.0", "@octokit/request@^5.4.12", "@octokit/request@^5.4.14", "@octokit/request@^5.6.0": - version "5.6.3" - resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== +"@octokit/request@^5.3.0", "@octokit/request@^5.4.11", "@octokit/request@^5.4.12", "@octokit/request@^5.4.14", "@octokit/request@^5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.0.tgz#6084861b6e4fa21dc40c8e2a739ec5eff597e672" + integrity sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA== dependencies: "@octokit/endpoint" "^6.0.1" "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.16.1" is-plain-object "^5.0.0" - node-fetch "^2.6.7" + node-fetch "^2.6.1" universal-user-agent "^6.0.0" -"@octokit/rest@^18.1.0", "@octokit/rest@^18.12.0", "@octokit/rest@^18.5.3": +"@octokit/rest@^18.1.0", "@octokit/rest@^18.5.3": + version "18.5.6" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.6.tgz#8c9a7c9329c7bbf478af20df78ddeab0d21f6d89" + integrity sha512-8HdG6ZjQdZytU6tCt8BQ2XLC7EJ5m4RrbyU/EARSkAM1/HP3ceOzMG/9atEfe17EDMer3IVdHWLedz2wDi73YQ== + dependencies: + "@octokit/core" "^3.2.3" + "@octokit/plugin-paginate-rest" "^2.6.2" + "@octokit/plugin-request-log" "^1.0.2" + "@octokit/plugin-rest-endpoint-methods" "5.3.1" + +"@octokit/rest@^18.12.0": version "18.12.0" resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== @@ -5199,14 +5545,21 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/types@^5.0.1": +"@octokit/types@^5.0.0", "@octokit/types@^5.0.1": version "5.5.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b" integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== dependencies: "@types/node" ">= 8" -"@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.26.0", "@octokit/types@^6.27.1", "@octokit/types@^6.34.0", "@octokit/types@^6.8.2": +"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.16.2", "@octokit/types@^6.8.2": + version "6.16.4" + resolved "https://registry.npmjs.org/@octokit/types/-/types-6.16.4.tgz#d24f5e1bacd2fe96d61854b5bda0e88cf8288dfe" + integrity sha512-UxhWCdSzloULfUyamfOg4dJxV9B+XjgrIZscI0VCbp4eNrjmorGEw+4qdwcpTsu6DIrm9tQsFQS2pK5QkqQ04A== + dependencies: + "@octokit/openapi-types" "^7.3.2" + +"@octokit/types@^6.26.0", "@octokit/types@^6.27.1", "@octokit/types@^6.34.0": version "6.34.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== @@ -5239,17 +5592,35 @@ integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== "@openapi-contrib/openapi-schema-to-json-schema@^3.0.0": - version "3.1.1" - resolved "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.1.1.tgz#e43b09680e652bf1b9e135db3f8648e979b76c07" - integrity sha512-FMvdhv9Jr9tULjJAQaQzhCmNYYj2vQFVnl7CGlLAImZvJal71oedXMGszpPaZTLftAk5TCHqjnirig+P6LZxug== + version "3.0.3" + resolved "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.0.3.tgz#c626eab186938f2751ee54ec68b345133bc0065c" + integrity sha512-/WX/Jos8n7CxvtWPmhlKl9qCAAW0I+VR+V4yXfQxCmB8wmjiz6lPLTGjNk5zD15qi2MGv58++hQLLdow89KdkA== dependencies: fast-deep-equal "^3.1.3" + lodash.clonedeep "^4.5.0" + +"@opencensus/web-types@0.0.7": + version "0.0.7" + resolved "https://registry.npmjs.org/@opencensus/web-types/-/web-types-0.0.7.tgz#4426de1fe5aa8f624db395d2152b902874f0570a" + integrity sha512-xB+w7ZDAu3YBzqH44rCmG9/RlrOmFuDPt/bpf17eJr8eZSrLt7nc7LnWdxM9Mmoj/YKMHpxRg28txu3TcpiL+g== + +"@opentelemetry/api@^0.10.2": + version "0.10.2" + resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.2.tgz#9647b881f3e1654089ff7ea59d587b2d35060654" + integrity sha512-GtpMGd6vkzDMYcpu2t9LlhEgMy/SzBwRnz48EejlRArYqZzqSzAsKmegUK7zHgl+EOIaK9mKHhnRaQu3qw20cA== + dependencies: + "@opentelemetry/context-base" "^0.10.2" "@opentelemetry/api@^1.0.1": version "1.0.4" resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== +"@opentelemetry/context-base@^0.10.2": + version "0.10.2" + resolved "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.10.2.tgz#55bea904b2b91aa8a8675df9eaba5961bddb1def" + integrity sha512-hZNKjKOYsckoOEgBziGMnBcX0M7EtstnCmwz5jZUOUYwlZ+/xxX6z3jPu1XVO2Jivk0eLfuP9GP+vFD49CMetw== + "@panva/asn1.js@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" @@ -5483,9 +5854,9 @@ picomatch "^2.2.2" "@rollup/pluginutils@^4.1.1": - version "4.1.2" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.2.tgz#ed5821c15e5e05e32816f5fb9ec607cdf5a75751" - integrity sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ== + version "4.1.1" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz#1d4da86dd4eded15656a57d933fda2b9a08d47ec" + integrity sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ== dependencies: estree-walker "^2.0.1" picomatch "^2.2.2" @@ -5524,16 +5895,16 @@ string-argv "~0.3.1" "@samverschueren/stream-to-observable@^0.3.0": - version "0.3.1" - resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" - integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + version "0.3.0" + resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== dependencies: any-observable "^0.3.0" -"@sideway/address@^4.1.3": - version "4.1.3" - resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz#d93cce5d45c5daec92ad76db492cc2ee3c64ab27" - integrity sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ== +"@sideway/address@^4.1.0": + version "4.1.1" + resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz#9e321e74310963fdf8eebfbee09c7bd69972de4d" + integrity sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ== dependencies: "@hapi/hoek" "^9.0.0" @@ -5553,23 +5924,23 @@ integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sindresorhus/is@^4.0.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.4.0.tgz#e277e5bdbdf7cb1e20d320f02f5e2ed113cd3185" - integrity sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ== + version "4.0.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== -"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.8.3": version "1.8.3" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@>=5": - version "9.1.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.0.tgz#8c92c56f195e0bed4c893ba59c8e3d55831ca0df" - integrity sha512-M8vapsv9qQupMdzrVzkn5rb9jG7aUTEPAZdMtME2PuBaefksFZVE2C1g4LBRTkF/k3nRDNbDc5tp5NFC1PEYxA== +"@sinonjs/commons@^1.7.0": + version "1.7.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" + integrity sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ== dependencies: - "@sinonjs/commons" "^1.7.0" + type-detect "4.0.8" "@sinonjs/fake-timers@^6.0.1": version "6.0.1" @@ -5578,7 +5949,7 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/fake-timers@^7.1.2": +"@sinonjs/fake-timers@^7.0.4", "@sinonjs/fake-timers@^7.1.0": version "7.1.2" resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== @@ -5586,9 +5957,9 @@ "@sinonjs/commons" "^1.7.0" "@sinonjs/samsam@^6.0.2": - version "6.1.1" - resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz#627f7f4cbdb56e6419fa2c1a3e4751ce4f6a00b1" - integrity sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA== + version "6.0.2" + resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz#a0117d823260f282c04bff5f8704bdc2ac6910bb" + integrity sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ== dependencies: "@sinonjs/commons" "^1.6.0" lodash.get "^4.4.2" @@ -5776,7 +6147,7 @@ dependencies: "@babel/types" "^7.12.6" -"@svgr/hast-util-to-babel-ast@^6.2.1": +"@svgr/hast-util-to-babel-ast@^6.0.0", "@svgr/hast-util-to-babel-ast@^6.2.1": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.2.1.tgz#ae065567b74cbe745afae617053adf9a764bea25" integrity sha512-pt7MMkQFDlWJVy9ULJ1h+hZBDGFfSCwlBNW1HkLnVi7jUhyEXUaGYWi1x6bM2IXuAR9l265khBT4Av4lPmaNLQ== @@ -5784,14 +6155,14 @@ "@babel/types" "^7.15.6" entities "^3.0.1" -"@svgr/plugin-jsx@6.2.x", "@svgr/plugin-jsx@^6.2.1": - version "6.2.1" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.1.tgz#5668f1d2aa18c2f1bb7a1fc9f682d3f9aed263bd" - integrity sha512-u+MpjTsLaKo6r3pHeeSVsh9hmGRag2L7VzApWIaS8imNguqoUwDq/u6U/NDmYs/KAsrmtBjOEaAAPbwNGXXp1g== +"@svgr/plugin-jsx@6.2.x": + version "6.2.0" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.0.tgz#5e41a75b12b34cb66509e63e535606161770ff42" + integrity sha512-QJDEe7K5Hkd4Eewu4pcjiOKTCtjB47Ol6lDLXVhf+jEewi+EKJAaAmM+bNixfW6LSNEg8RwOYQN3GZcprqKfHw== dependencies: "@babel/core" "^7.15.5" "@svgr/babel-preset" "^6.2.0" - "@svgr/hast-util-to-babel-ast" "^6.2.1" + "@svgr/hast-util-to-babel-ast" "^6.0.0" svg-parser "^2.0.2" "@svgr/plugin-jsx@^5.5.0": @@ -5804,6 +6175,16 @@ "@svgr/hast-util-to-babel-ast" "^5.5.0" svg-parser "^2.0.2" +"@svgr/plugin-jsx@^6.2.1": + version "6.2.1" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.1.tgz#5668f1d2aa18c2f1bb7a1fc9f682d3f9aed263bd" + integrity sha512-u+MpjTsLaKo6r3pHeeSVsh9hmGRag2L7VzApWIaS8imNguqoUwDq/u6U/NDmYs/KAsrmtBjOEaAAPbwNGXXp1g== + dependencies: + "@babel/core" "^7.15.5" + "@svgr/babel-preset" "^6.2.0" + "@svgr/hast-util-to-babel-ast" "^6.2.1" + svg-parser "^2.0.2" + "@svgr/plugin-svgo@6.2.x", "@svgr/plugin-svgo@^6.2.0": version "6.2.0" resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.2.0.tgz#4cbe6a33ccccdcae4e3b63ded64cc1cbe1faf48c" @@ -5887,9 +6268,9 @@ defer-to-connect "^1.0.1" "@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + version "4.0.5" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== dependencies: defer-to-connect "^2.0.0" @@ -5901,6 +6282,7 @@ "@babel/runtime" "^7.14.6" "@testing-library/dom" "^8.1.0" +<<<<<<< HEAD "@testing-library/dom@^7.28.1": version "7.31.2" resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" @@ -5915,10 +6297,33 @@ lz-string "^1.4.4" pretty-format "^26.6.2" +======= +<<<<<<< HEAD +>>>>>>> f9b03ab02f (fixups) "@testing-library/dom@^8.0.0", "@testing-library/dom@^8.1.0": version "8.11.3" resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz#38fd63cbfe14557021e88982d931e33fb7c1a808" integrity sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA== +======= +"@testing-library/dom@^7.28.1": + version "7.29.6" + resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.6.tgz#eb37844fb431186db7960a7ff6749ea65a19617c" + integrity sha512-vzTsAXa439ptdvav/4lsKRcGpAQX7b6wBIqia7+iNzqGJ5zjswApxA6jDAsexrc6ue9krWcbh8o+LYkBXW+GCQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.4" + lz-string "^1.4.4" + pretty-format "^26.6.2" + +"@testing-library/dom@^8.1.0": + version "8.11.1" + resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.1.tgz#03fa2684aa09ade589b460db46b4c7be9fc69753" + integrity sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg== +>>>>>>> 76d216e74b (fixups) dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -5930,13 +6335,13 @@ pretty-format "^27.0.2" "@testing-library/jest-dom@^5.10.1": - version "5.16.2" - resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz#f329b36b44aa6149cd6ced9adf567f8b6aa1c959" - integrity sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug== + version "5.14.1" + resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.14.1.tgz#8501e16f1e55a55d675fe73eecee32cdaddb9766" + integrity sha512-dfB7HVIgTNCxH22M1+KU6viG5of2ldoA5ly8Ar8xkezKHKXjRvznCdbMbqjYGgO2xjRbwnR+rR8MLUIqF3kKbQ== dependencies: "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" - aria-query "^5.0.0" + aria-query "^4.2.2" chalk "^3.0.0" css "^3.0.0" css.escape "^1.5.1" @@ -5956,9 +6361,9 @@ react-error-boundary "^3.1.0" "@testing-library/react@^11.2.5": - version "11.2.7" - resolved "https://registry.npmjs.org/@testing-library/react/-/react-11.2.7.tgz#b29e2e95c6765c815786c0bc1d5aed9cb2bf7818" - integrity sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA== + version "11.2.6" + resolved "https://registry.npmjs.org/@testing-library/react/-/react-11.2.6.tgz#586a23adc63615985d85be0c903f374dab19200b" + integrity sha512-TXMCg0jT8xmuU8BkKMtp8l7Z50Ykew5WNX8UoIKTaLFwKkP2+1YDhOLA2Ga3wY4x29jyntk7EWfum0kjlYiSjQ== dependencies: "@babel/runtime" "^7.12.5" "@testing-library/dom" "^7.28.1" @@ -5973,9 +6378,9 @@ "@types/react-dom" "*" "@testing-library/user-event@^13.1.8": - version "13.5.0" - resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295" - integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== + version "13.1.8" + resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.1.8.tgz#9cbf342b88d837ee188f9f9f4df6d1beaaf179c2" + integrity sha512-M04HgOlJvxILf5xyrkJaEQfFOtcvhy3usLldQIEg9zgFIYQofSmFGVfFlS7BWowqlBGLrItwGMlPXCoBgoHSiw== dependencies: "@babel/runtime" "^7.12.5" @@ -6056,9 +6461,9 @@ integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== "@types/aria-query@^4.2.0": - version "4.2.2" - resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" - integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== + version "4.2.0" + resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" + integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== "@types/aws-lambda@^8.10.83": version "8.10.92" @@ -6073,9 +6478,9 @@ "@types/node" "*" "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.18" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" - integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== + version "7.1.9" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" + integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -6084,24 +6489,24 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + version "7.6.1" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" + integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.0.2" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + version "7.0.15" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03" + integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A== dependencies: "@babel/types" "^7.3.0" @@ -6126,9 +6531,9 @@ integrity sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg== "@types/cacheable-request@^6.0.1": - version "6.0.2" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + version "6.0.1" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== dependencies: "@types/http-cache-semantics" "*" "@types/keyv" "*" @@ -6161,15 +6566,15 @@ dependencies: "@types/color-name" "*" -"@types/color-name@*": +"@types/color-name@*", "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== "@types/color@^3.0.1": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz#e6d8d72b7aaef4bb9fe80847c26c7c786191016d" - integrity sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA== + version "3.0.2" + resolved "https://registry.npmjs.org/@types/color/-/color-3.0.2.tgz#3779043e782f562aa9157b5fc6bd07e14fd8e7f3" + integrity sha512-INiJl6sfNn8iyC5paxVzqiVUEj2boIlFki02uRTAkKwAj++7aAF+ZfEv/XrIeBa0XI/fTZuDHW8rEEcEVnON+Q== dependencies: "@types/color-convert" "*" @@ -6208,9 +6613,9 @@ "@types/node" "*" "@types/connect@*": - version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.33" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" + integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== dependencies: "@types/node" "*" @@ -6227,9 +6632,9 @@ integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== "@types/cookiejar@*": - version "2.1.2" - resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz#66ad9331f63fe8a3d3d9d8c6e3906dd10f6446e8" - integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== + version "2.1.1" + resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.1.tgz#90b68446364baf9efd8e8349bb36bd3852b75b80" + integrity sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw== "@types/core-js@^2.5.4": version "2.5.5" @@ -6260,9 +6665,9 @@ integrity sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w== "@types/d3-force@^2.1.1": - version "2.1.4" - resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.4.tgz#98919b87db8a0ca5011d189c598d69251d20344d" - integrity sha512-1XVRc2QbeUSL1FRVE53Irdz7jY+drTwESHIMVirCwkAAMB/yVC8ezAfx/1Alq0t0uOnphoyhRle1ht5CuPgSJQ== + version "2.1.1" + resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.1.tgz#a18b6f029d056eb0f8f84a09471e6228e4469b14" + integrity sha512-3r+CQv2K/uDTAVg0DGxsbBjV02vgOxb8RhPIv3gd6cp3pdPAZ7wEXpDjUZSoqycAQLSDOxG/AZ54Vx6YXZSbmQ== "@types/d3-interpolate@*": version "3.0.1" @@ -6306,9 +6711,9 @@ integrity sha512-d29EDd0iUBrRoKhPndhDY6U/PYxOWqgIZwKTooy2UkBfU7TNZNpRho0yLWPxlatQrFWk2mnTu71IZQ4+LRgKlQ== "@types/d3-shape@^1": - version "1.3.8" - resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.8.tgz#c3c15ec7436b4ce24e38de517586850f1fea8e89" - integrity sha512-gqfnMz6Fd5H6GOLYixOZP/xlrMtJms9BaS+6oWxTKHNqPGZ93BkWWupQSCYm6YHqx6h9wjRupuJb90bun6ZaYg== + version "1.3.5" + resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.5.tgz#c0164c1be1429473016f855871d487f806c4e968" + integrity sha512-aPEax03owTAKynoK8ZkmkZEDZvvT4Y5pWgii4Jp4oQt0gH45j6siDl9gNDVC5kl64XHN2goN9jbYoHK88tFAcA== dependencies: "@types/d3-path" "^1" @@ -6388,9 +6793,9 @@ "@types/estree" "*" "@types/eslint@*": - version "8.4.1" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" - integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== + version "6.1.8" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-6.1.8.tgz#7e868f89bc1e520323d405940e49cb912ede5bba" + integrity sha512-CJBhm9pYdUS8cFVbXACWlLxZWFBTQMiM0eI6RYxng3u9oQ9gHdQ5PN89DHPrK4RISRzX62nRsteUlbBgEIdSug== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -6418,7 +6823,7 @@ resolved "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@4.17.28", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.5": +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.5": version "4.17.28" resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== @@ -6427,6 +6832,15 @@ "@types/qs" "*" "@types/range-parser" "*" +"@types/express-serve-static-core@4.17.27": + version "4.17.27" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz#7a776191e47295d2a05962ecbb3a4ce97e38b401" + integrity sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/express-session@^1.17.2": version "1.17.4" resolved "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.4.tgz#97a30a35e853a61bdd26e727453b8ed314d6166b" @@ -6442,7 +6856,7 @@ "@types/express" "*" "@types/xml2js" "*" -"@types/express@*", "@types/express@4.17.13", "@types/express@^4.17.13", "@types/express@^4.17.6": +"@types/express@*", "@types/express@4.17.13", "@types/express@^4.17.6": version "4.17.13" resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== @@ -6452,7 +6866,14 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/fs-extra@^9.0.1", "@types/fs-extra@^9.0.3", "@types/fs-extra@^9.0.5", "@types/fs-extra@^9.0.6": +"@types/fs-extra@^9.0.1", "@types/fs-extra@^9.0.3", "@types/fs-extra@^9.0.5": + version "9.0.8" + resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.8.tgz#32c3c07ddf8caa5020f84b5f65a48470519f78ba" + integrity sha512-bnlTVTwq03Na7DpWxFJ1dvnORob+Otb8xHyUqUWhqvz/Ksg8+JXPlR52oeMSZ37YEOa5PyccbgUNutiQdi13TA== + dependencies: + "@types/node" "*" + +"@types/fs-extra@^9.0.6": version "9.0.13" resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== @@ -6484,14 +6905,14 @@ integrity sha512-tmHO66z/f91JZCDqinj/nNvQEszsz/hBT4+MvCSKT5sDzl5Ld/oXZ8WaecCBjRLw2uWKUInUHM9MhEXWkOiNjw== "@types/git-url-parse@^9.0.0": - version "9.0.1" - resolved "https://registry.npmjs.org/@types/git-url-parse/-/git-url-parse-9.0.1.tgz#1c7cc89527ca8b5afcf260ead3b0e4e373c43938" - integrity sha512-Zf9mY4Mz7N3Nyi341nUkOtgVUQn4j6NS4ndqEha/lOgEbTkHzpD7wZuRagYKzrXNtvawWfsrojoC1nhsQexvNA== + version "9.0.0" + resolved "https://registry.npmjs.org/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" + integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== "@types/glob@*": - version "7.2.0" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + version "7.1.3" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: "@types/minimatch" "*" "@types/node" "*" @@ -6502,9 +6923,9 @@ integrity sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw== "@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + version "4.1.3" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" + integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== dependencies: "@types/node" "*" @@ -6536,9 +6957,9 @@ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + version "4.0.0" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== "@types/http-errors@^1.6.3": version "1.8.2" @@ -6561,7 +6982,17 @@ dependencies: "@types/node" "*" -"@types/humanize-duration@^3.18.1", "@types/humanize-duration@^3.25.1", "@types/humanize-duration@^3.27.1": +"@types/humanize-duration@^3.18.1": + version "3.18.1" + resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.18.1.tgz#10090d596053703e7de0ac43a37b96cd9fc78309" + integrity sha512-MUgbY3CF7hg/a/jogixmAufLjJBQT7WEf8Q+kYJkOc47ytngg1IuZobCngdTjAgY83JWEogippge5O5fplaQlw== + +"@types/humanize-duration@^3.25.1": + version "3.25.1" + resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.25.1.tgz#b6140d5fc00ff3917b3f521784abef4bc0387ccc" + integrity sha512-WZU/4bb+lvzyDmZzjJtp++9mfKy6B3lH6gGISgkcz6SU8hMILKRM0vi08TxIsb0dQB4Gzo68MWLmctu6xqUi9g== + +"@types/humanize-duration@^3.27.1": version "3.27.1" resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.27.1.tgz#f14740d1f585a0a8e3f46359b62fda8b0eaa31e7" integrity sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w== @@ -6575,9 +7006,9 @@ rxjs "^6.4.0" "@types/inquirer@^8.1.3": - version "8.2.0" - resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.0.tgz#b9566d048f5ff65159f2ed97aff45fe0f00b35ec" - integrity sha512-BNoMetRf3gmkpAlV5we+kxyZTle7YibdOntIZbU5pyIfMdcwy784KfeZDAcuyMznkh5OLa17RVXZOGA5LTlkgQ== + version "8.1.3" + resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz#dfda4c97cdbe304e4dceb378a80f79448ea5c8fe" + integrity sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ== dependencies: "@types/through" "*" rxjs "^7.2.0" @@ -6590,9 +7021,9 @@ ci-info "^3.1.0" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + version "2.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== "@types/istanbul-lib-report@*": version "3.0.0" @@ -6602,9 +7033,9 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== dependencies: "@types/istanbul-lib-report" "*" @@ -6616,24 +7047,16 @@ "@types/node" "*" "@types/jest-when@^2.7.2": - version "2.7.4" - resolved "https://registry.npmjs.org/@types/jest-when/-/jest-when-2.7.4.tgz#1bedac232f4a54c1a1c01cc641c03ecfd0dad0ec" - integrity sha512-2OC69oyaD33tmSaOjtxvy7ZpBO85OWIw1AbpWVziL4bek5mr795H59qK5EKDpp4dLhtH1QIs54tXpoHEb2mE/A== + version "2.7.2" + resolved "https://registry.npmjs.org/@types/jest-when/-/jest-when-2.7.2.tgz#619fbc5f623bcd0b29efde0e4993c7f0d50d026d" + integrity sha512-vOtj0cev6vO1VX7Jbfg/qvy+sfLI64STsHbKVkggK+1kd11rcMGzFpZKBxUvQfsm4JRULCBISu+qrfs7fYZFGg== dependencies: "@types/jest" "*" -"@types/jest@*": - version "27.4.0" - resolved "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz#037ab8b872067cae842a320841693080f9cb84ed" - integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== - dependencies: - jest-diff "^27.0.0" - pretty-format "^27.0.0" - -"@types/jest@^26.0.7": - version "26.0.24" - resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" - integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== +"@types/jest@*", "@types/jest@^26.0.7": + version "26.0.22" + resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.22.tgz#8308a1debdf1b807aa47be2838acdcd91e88fbe6" + integrity sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw== dependencies: jest-diff "^26.0.0" pretty-format "^26.0.0" @@ -6646,14 +7069,14 @@ "@types/sizzle" "*" "@types/js-cookie@^2.2.6": - version "2.2.7" - resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3" - integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA== + version "2.2.6" + resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f" + integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw== "@types/js-levenshtein@^1.1.0": - version "1.1.1" - resolved "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz#ba05426a43f9e4e30b631941e0aa17bf0c890ed5" - integrity sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g== + version "1.1.0" + resolved "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.0.tgz#9541eec4ad6e3ec5633270a3a2b55d981edc44a9" + integrity sha512-14t0v1ICYRtRVcHASzes0v/O+TIeASb8aD55cWF1PidtInhFWSXcmhzhHqGjUWf9SUq1w70cvd1cWKUULubAfQ== "@types/js-yaml@^4.0.0", "@types/js-yaml@^4.0.1": version "4.0.5" @@ -6686,9 +7109,9 @@ integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/json-stable-stringify@^1.0.32": - version "1.0.33" - resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz#099b0712d824d15e2660c20e1c16e6a8381f308c" - integrity sha512-qEWiQff6q2tA5gcJGWwzplQcXdJtm+0oy6IHGHzlOf3eFAkGE/FIPXZK9ofWgNSHVp8AFFI33PJJshS0ei3Gvw== + version "1.0.32" + resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz#121f6917c4389db3923640b2e68de5fa64dda88e" + integrity sha512-q9Q6+eUEGwQkv4Sbst3J4PNgDOvpuVuKj79Hl/qnmBMEIPzB5QoFRUtjcgcg2xNUZyYUGXBk5wYIBKHt0A+Mxw== "@types/json5@^0.0.29": version "0.0.29" @@ -6696,9 +7119,9 @@ integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/jsonwebtoken@^8.3.3", "@types/jsonwebtoken@^8.5.0": - version "8.5.8" - resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz#01b39711eb844777b7af1d1f2b4cf22fda1c0c44" - integrity sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A== + version "8.5.0" + resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.0.tgz#2531d5e300803aa63279b232c014acf780c981c5" + integrity sha512-9bVao7LvyorRGZCw0VmH/dr7Og+NdjYSsKAxB43OQoComFbBgsEpoR9JW6+qSq/ogwVBg8GI2MfAlk4SYI4OLg== dependencies: "@types/node" "*" @@ -6710,9 +7133,9 @@ jwt-decode "*" "@types/keyv@*": - version "3.1.3" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz#1c9aae32872ec1f20dcdaee89a9f3ba88f465e41" - integrity sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg== + version "3.1.1" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== dependencies: "@types/node" "*" @@ -6734,24 +7157,41 @@ integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== "@types/lru-cache@^5.1.0": - version "5.1.1" - resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" - integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== + version "5.1.0" + resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03" + integrity sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w== "@types/lunr@^2.3.3": - version "2.3.4" - resolved "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.4.tgz#728f445855818fb17776d10ef4678f278072eb03" - integrity sha512-j4x4XJwZvorEUbA519VdQ5b9AOU9TSvfi8tvxMAfP8XzNLtFex7A8vFQwqOx3WACbV0KMXbACV3cZl4/gynQ7g== + version "2.3.3" + resolved "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.3.tgz#ec985618fd2712c010f8edab4f1ae7784ad7c583" + integrity sha512-09sXZZVsB3Ib41U0fC+O1O+4UOZT1bl/e+/QubPxpqDWHNEchvx/DEb1KJMOwq6K3MTNzZFoNSzVdR++o1DVnw== +<<<<<<< HEAD "@types/luxon@^2.0.4", "@types/luxon@^2.0.5", "@types/luxon@^2.0.9": version "2.3.0" resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.3.0.tgz#0f4d912c385e47890374cb694da9bc93bacbe2b0" integrity sha512-mWXdRlg+5dWvxU+uaijB2RY5NrJtMEXR6j+D6W66hPuezSVXrQqQvWa/JNHntgEYgjzeoVRrQVmMWAbKjUJiFQ== +======= +"@types/luxon@^2.0.4": + version "2.0.4" + resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.4.tgz#f7b5a86ccd843c0ccaddfaedd9ee1081bc1cde3b" + integrity sha512-l3xuhmyF2kBldy15SeY6d6HbK2BacEcSK1qTF1ISPtPHr29JH0C1fndz9ExXLKpGl0J6pZi+dGp1i5xesMt60Q== -"@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== +"@types/luxon@^2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.5.tgz#29d3b095d55ee50df8f4cf109b16009334d9828e" + integrity sha512-GKrG5v16BOs9XGpouu33hOkAFaiSDi3ZaDXG9F2yAoyzHRBtksZnI60VWY5aM/yAENCccBejrxw8jDY+9OVlxw== + +"@types/luxon@^2.0.9": + version "2.0.9" + resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.9.tgz#782a0edfa6d699191292c13168bd496cd66b87c6" + integrity sha512-ZuzIc7aN+i2ZDMWIiSmMdubR9EMMSTdEzF6R+FckP4p6xdnOYKqknTo/k+xXQvciSXlNGIwA4OPU5X7JIFzYdA== +>>>>>>> 76d216e74b (fixups) + +"@types/mdast@^3.0.0", "@types/mdast@^3.0.3": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" + integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== dependencies: "@types/unist" "*" @@ -6770,7 +7210,12 @@ resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/minimatch@*", "@types/minimatch@^3.0.3", "@types/minimatch@^3.0.5": +"@types/minimatch@*", "@types/minimatch@^3.0.3": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/minimatch@^3.0.5": version "3.0.5" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== @@ -6781,9 +7226,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/minipass@*": - version "3.1.2" - resolved "https://registry.npmjs.org/@types/minipass/-/minipass-3.1.2.tgz#e2d7f9df0698aff421dcf145b4fc05b8183b9030" - integrity sha512-foLGjgrJkUjLG/o2t2ymlZGEoBNBa/TfoUZ7oCTkOjP1T43UGBJspovJou/l3ZuHvye2ewR5cZNtp2zyWgILMA== + version "2.2.0" + resolved "https://registry.npmjs.org/@types/minipass/-/minipass-2.2.0.tgz#51ad404e8eb1fa961f75ec61205796807b6f9651" + integrity sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg== dependencies: "@types/node" "*" @@ -6807,52 +7252,42 @@ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node-fetch@^2.5.0", "@types/node-fetch@^2.5.12", "@types/node-fetch@^2.5.7": - version "2.6.1" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975" - integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== + version "2.5.12" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" + integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== dependencies: "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "17.0.18" - resolved "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz#3b4fed5cfb58010e3a2be4b6e74615e4847f1074" - integrity sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA== +"@types/node@*", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^16.9.2": + version "16.11.6" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== -"@types/node@12.20.24": +"@types/node@12.20.24", "@types/node@^12.7.1": version "12.20.24" resolved "https://registry.npmjs.org/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== "@types/node@^10.1.0", "@types/node@^10.12.0": - version "10.17.60" - resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/node@^12.7.1": - version "12.20.46" - resolved "https://registry.npmjs.org/@types/node/-/node-12.20.46.tgz#7e49dee4c54fd19584e6a9e0da5f3dc2e9136bc7" - integrity sha512-cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A== + version "10.17.13" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.13.tgz#ccebcdb990bd6139cd16e84c39dc2fb1023ca90c" + integrity sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg== "@types/node@^14.14.31", "@types/node@^14.14.32": - version "14.18.12" - resolved "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" - integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== + version "14.17.8" + resolved "https://registry.npmjs.org/@types/node/-/node-14.17.8.tgz#813b73ab7d82ac06ddfd2458b13c88459a3b319f" + integrity sha512-0CHLt50GbUmH/6MrlBIKNdWCglvlyQKkorRf08/0DIi0ryuTPP+ijWLSI19SbDTHSKaagGDELiImY4BSikt61w== "@types/node@^15.6.1": version "15.14.9" resolved "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== -"@types/node@^16.9.2": - version "16.11.25" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.25.tgz#bb812b58bacbd060ce85921250d8b4ca553cd4a2" - integrity sha512-NrTwfD7L1RTc2qrHQD4RTTy4p0CO2LatKBEKEds3CaVuhoM/+DJzmWZl5f+ikR8cm8F5mfJxK+9rQq07gRiSjQ== - "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.0" + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== "@types/npm-packlist@^3.0.0": version "3.0.0" @@ -6907,9 +7342,9 @@ "@types/passport-oauth2" "*" "@types/passport-oauth2@*": - version "1.4.11" - resolved "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.11.tgz#fbca527ecb44258774d17bcb251630c321515fa9" - integrity sha512-KUNwmGhe/3xPbjkzkPwwcPmyFwfyiSgtV1qOrPBLaU4i4q9GSCdAOyCbkFG0gUxAyEmYwqo9OAF/rjPjJ6ImdA== + version "1.4.9" + resolved "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.9.tgz#134007c4b505a82548c9cb19094c5baeb2205c92" + integrity sha512-QP0q+NVQOaIu2r0e10QWkiUA0Ya5mOBHRJN0UrI+LolMLOP1/VN4EVIpJ3xVwFo+xqNFRoFvFwJhBvKnk7kpUA== dependencies: "@types/express" "*" "@types/oauth" "*" @@ -6944,9 +7379,9 @@ integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA== "@types/prettier@^2.0.0": - version "2.4.4" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" - integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== + version "2.0.0" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.0.tgz#dc85454b953178cc6043df5208b9e949b54a3bc4" + integrity sha512-/rM+sWiuOZ5dvuVzV37sUuklsbg+JPOP8d+nNFlo2ZtfpzPiPvh1/gc8liWOLBqe+sR+ZM7guPaIcTt6UZTo7Q== "@types/prop-types@*", "@types/prop-types@^15.7.3": version "15.7.4" @@ -6966,19 +7401,19 @@ integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== "@types/qs@*": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.6" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" + integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + version "1.2.3" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== "@types/react-dom@*", "@types/react-dom@>=16.9.0": - version "17.0.11" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz#e1eadc3c5e86bdb5f7684e00274ae228e7bcc466" - integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q== + version "17.0.9" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" + integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== dependencies: "@types/react" "*" @@ -6989,10 +7424,10 @@ dependencies: "@types/react" "*" -"@types/react-redux@^7.1.20": - version "7.1.22" - resolved "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.22.tgz#0eab76a37ef477cc4b53665aeaf29cb60631b72a" - integrity sha512-GxIA1kM7ClU73I6wg9IRTVwSO9GS+SAKZKe0Enj+82HMU6aoESFU2HNAdNi3+J53IaOHPiUfT3kSG4L828joDQ== +"@types/react-redux@^7.1.16": + version "7.1.19" + resolved "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.19.tgz#477bd0a9b01bae6d6bf809418cdfa7d3c16d4c62" + integrity sha512-L37dSCT0aoJnCgpR8Iuginlbxoh7qhWOXiaDqEsxVMrER1CmVhFD+63NxgJeT4pkmEM28oX0NH4S4f+sXHTZjA== dependencies: "@types/hoist-non-react-statics" "^3.3.0" "@types/react" "*" @@ -7000,9 +7435,9 @@ redux "^4.0.0" "@types/react-sparklines@^1.7.0": - version "1.7.2" - resolved "https://registry.npmjs.org/@types/react-sparklines/-/react-sparklines-1.7.2.tgz#c14e80623abd3669a10f18d13f6fb9fbdc322f70" - integrity sha512-N1GwO7Ri5C5fE8+CxhiDntuSw1qYdGytBuedKrCxWpaojXm4WnfygbdBdc5sXGX7feMxDXBy9MNhxoUTwrMl4A== + version "1.7.0" + resolved "https://registry.npmjs.org/@types/react-sparklines/-/react-sparklines-1.7.0.tgz#f956d0f7b0e746ad445ce1cd250fe81f8a384684" + integrity sha512-Vd+cME7+Yy3kFNhnid9EBIKiyCQ/at8nqDczIs0UYfIB8AtaRJPqekigv02biOsIbQCvxyvIAIjiTKOC+hHNbA== dependencies: "@types/react" "*" @@ -7014,9 +7449,9 @@ "@types/react" "*" "@types/react-test-renderer@>=16.9.0": - version "17.0.1" - resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz#3120f7d1c157fba9df0118dae20cb0297ee0e06b" - integrity sha512-3Fi2O6Zzq/f3QR9dRnlnHso9bMl7weKCviFmfF6B4LS1Uat6Hkm15k0ZAQuDz+UBq6B3+g+NM6IT2nr5QgPzCw== + version "16.9.2" + resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.2.tgz#e1c408831e8183e5ad748fdece02214a7c2ab6c5" + integrity sha512-4eJr1JFLIAlWhzDkBCkhrOIWOvOxcCAfQh+jiKg7l/nNZcCIL2MHl2dZhogIFKyHzedVWHaVP1Yydq/Ruu4agw== dependencies: "@types/react" "*" @@ -7028,9 +7463,9 @@ "@types/react" "*" "@types/react-transition-group@^4.2.0": - version "4.4.4" - resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e" - integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug== + version "4.2.4" + resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.4.tgz#c7416225987ccdb719262766c1483da8f826838d" + integrity sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA== dependencies: "@types/react" "*" @@ -7078,9 +7513,9 @@ integrity sha512-i7KOGl6xdkfpq5+p2ooC+/XFIRUMkYymZ29SD8p+Ko9lesKGUsh6860ey3YM7Y+ZG7kEDGcjzyLO3sOhozqEeA== "@types/request@^2.47.1": - version "2.48.8" - resolved "https://registry.npmjs.org/@types/request/-/request-2.48.8.tgz#0b90fde3b655ab50976cb8c5ac00faca22f5a82c" - integrity sha512-whjk1EDJPcAR2kYHRbFl/lKeeKYTi05A15K9bnLInCVroNDCtXce57xKdI0/rQaA3K+6q0eFyUBPmqfSndUZdQ== + version "2.48.5" + resolved "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz#019b8536b402069f6d11bee1b2c03e7f232937a0" + integrity sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ== dependencies: "@types/caseless" "*" "@types/node" "*" @@ -7107,9 +7542,9 @@ "@types/node" "*" "@types/retry@^0.12.0": - version "0.12.1" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" - integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== + version "0.12.0" + resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/rollup-plugin-peer-deps-external@^2.2.0": version "2.2.1" @@ -7134,14 +7569,14 @@ htmlparser2 "^6.0.0" "@types/scheduler@*": - version "0.16.2" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + version "0.16.1" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" + integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== "@types/semver@^6.0.0": - version "6.2.3" - resolved "https://registry.npmjs.org/@types/semver/-/semver-6.2.3.tgz#5798ecf1bec94eaa64db39ee52808ec0693315aa" - integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== + version "6.2.1" + resolved "https://registry.npmjs.org/@types/semver/-/semver-6.2.1.tgz#a236185670a7860f1597cf73bea2e16d001461ba" + integrity sha512-+beqKQOh9PYxuHvijhVl+tIHvT6tuwOrE9m14zd+MT2A38KoKZhh7pYJ0SNleLtwDsiIxHDsIk9bv01oOxvSvA== "@types/semver@^7.3.8": version "7.3.9" @@ -7163,17 +7598,17 @@ "@types/express" "*" "@types/serve-static@*": - version "1.13.10" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + version "1.13.9" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" + integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/set-cookie-parser@^2.4.0": - version "2.4.2" - resolved "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz#b6a955219b54151bfebd4521170723df5e13caad" - integrity sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w== + version "2.4.0" + resolved "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.0.tgz#10cc0446bad372827671a5195fbd14ebce4a9baf" + integrity sha512-w7BFUq81sy7H/0jN0K5cax8MwRN6NOSURpY4YuO4+mOgoicxCZ33BUYz+gyF/sUf7uDl2We2yGJfppxzEXoAXQ== dependencies: "@types/node" "*" @@ -7183,9 +7618,9 @@ integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@*", "@types/sizzle@^2.3.2": - version "2.3.3" - resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" - integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== + version "2.3.2" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" + integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== "@types/sockjs@^0.3.33": version "0.3.33" @@ -7195,24 +7630,32 @@ "@types/node" "*" "@types/ssh2-streams@*": - version "0.1.9" - resolved "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.9.tgz#8ca51b26f08750a780f82ee75ff18d7160c07a87" - integrity sha512-I2J9jKqfmvXLR5GomDiCoHrEJ58hAOmFrekfFqmCFd+A6gaEStvWnPykoWUwld1PNg4G5ag1LwdA+Lz1doRJqg== + version "0.1.8" + resolved "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.8.tgz#142af404dae059931aea7fcd1511b5478964feb6" + integrity sha512-I7gixRPUvVIyJuCEvnmhr3KvA2dC0639kKswqD4H5b4/FOcnPtNU+qWLiXdKIqqX9twUvi5j0U1mwKE5CUsrfA== dependencies: "@types/node" "*" -"@types/ssh2@*", "@types/ssh2@^0.5.48": - version "0.5.51" - resolved "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.51.tgz#8fd9f9d7d3e8973b5227878f8f1e2b4eda1716b3" - integrity sha512-aIq7ownezauW/+VWYaeXwd5J1Evnn4EXyeKi7bT3H6ZLBLoqsmhdvkHYPLpnZPM6unKKKsxTHIyQAVOZnPiJBw== +"@types/ssh2@*": + version "0.5.47" + resolved "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.47.tgz#67a8b35a0527b2bb668f6dea4c84be6ff1abdc19" + integrity sha512-ZhqJg8BRV7OsCi0KVqPr27lUMMmLEeHYw1VXUNGGDlQEDq9HTsKx+wYvi8E6oNC6gRZ7PV99ZMZmMr5vztcYYA== + dependencies: + "@types/node" "*" + "@types/ssh2-streams" "*" + +"@types/ssh2@^0.5.48": + version "0.5.48" + resolved "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.48.tgz#0d9e8654a76eaaf4cfeaeb88d74c4489cfcf7aea" + integrity sha512-cmQu0gp/6RtDXe1r2xXGgi0V0TeCdueDSRMEvBX8cTRT/sSREkUpgCYZLyh+iI8Ql+VNV8Az9toQoYa/IdgHbQ== dependencies: "@types/node" "*" "@types/ssh2-streams" "*" "@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + version "2.0.0" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== "@types/stoppable@^1.1.0": version "1.1.1" @@ -7222,23 +7665,23 @@ "@types/node" "*" "@types/stream-buffers@^3.0.3": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz#bf128182da7bc62722ca0ddf5458a9c65f76e648" - integrity sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w== + version "3.0.3" + resolved "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.3.tgz#34e565bf64e3e4bdeee23fd4aa58d4636014a02b" + integrity sha512-NeFeX7YfFZDYsCfbuaOmFQ0OjSmHreKBpp7MQ4alWQBHeh2USLsj7qyMyn9t82kjqIX516CR/5SRHnARduRtbQ== dependencies: "@types/node" "*" "@types/styled-jsx@^2.2.8": - version "2.2.9" - resolved "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.9.tgz#e50b3f868c055bcbf9bc353eca6c10fdad32a53f" - integrity sha512-W/iTlIkGEyTBGTEvZCey8EgQlQ5l0DwMqi3iOXlLs2kyBwYTXHKEiU6IZ5EwoRwngL8/dGYuzezSup89ttVHLw== + version "2.2.8" + resolved "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.8.tgz#b50d13d8a3c34036282d65194554cf186bab7234" + integrity sha512-Yjye9VwMdYeXfS71ihueWRSxrruuXTwKCbzue4+5b2rjnQ//AtyM7myZ1BEhNhBQ/nL/RE7bdToUoLln2miKvg== dependencies: "@types/react" "*" "@types/superagent@*": - version "4.1.15" - resolved "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.15.tgz#63297de457eba5e2bc502a7609426c4cceab434a" - integrity sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ== + version "4.1.7" + resolved "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.7.tgz#a7d92d98c490ee0f802a127fdf149b9a114f77a5" + integrity sha512-JSwNPgRYjIC4pIeOqLwWwfGj6iP1n5NE6kNBEbGx2V8H78xCPwx7QpNp9plaI30+W3cFEzJO7BIIsXE+dbtaGg== dependencies: "@types/cookiejar" "*" "@types/node" "*" @@ -7281,9 +7724,9 @@ "@types/node" "*" "@types/tern@*": - version "0.23.4" - resolved "https://registry.npmjs.org/@types/tern/-/tern-0.23.4.tgz#03926eb13dbeaf3ae0d390caf706b2643a0127fb" - integrity sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg== + version "0.23.3" + resolved "https://registry.npmjs.org/@types/tern/-/tern-0.23.3.tgz#4b54538f04a88c9ff79de1f6f94f575a7f339460" + integrity sha512-imDtS4TAoTcXk0g7u4kkWqedB3E4qpjXzCpD2LU5M5NAXHzCDsypyvXSaG7mM8DKYkCRa7tFp4tS/lp/Wo7Q3w== dependencies: "@types/estree" "*" @@ -7309,26 +7752,26 @@ "@types/node" "*" "@types/tough-cookie@*": - version "4.0.1" - resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz#8f80dd965ad81f3e1bc26d6f5c727e132721ff40" - integrity sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg== + version "4.0.0" + resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz#fef1904e4668b6e5ecee60c52cc6a078ffa6697d" + integrity sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A== "@types/trusted-types@*": version "2.0.2" resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== -"@types/tunnel@^0.0.3": - version "0.0.3" - resolved "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz#f109e730b072b3136347561fc558c9358bb8c6e9" - integrity sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA== +"@types/tunnel@^0.0.1": + version "0.0.1" + resolved "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.1.tgz#0d72774768b73df26f25df9184273a42da72b19c" + integrity sha512-AOqu6bQu5MSWwYvehMXLukFHnupHrpZ8nvgae5Ggie9UwzDR1CCwoXgSSWNZJuyOlCdfdsWMA5F2LlmvyoTv8A== dependencies: "@types/node" "*" "@types/underscore@^1.8.9": - version "1.11.4" - resolved "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.4.tgz#62e393f8bc4bd8a06154d110c7d042a93751def3" - integrity sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg== + version "1.10.23" + resolved "https://registry.npmjs.org/@types/underscore/-/underscore-1.10.23.tgz#cc672e8864000d288e1e39c609fd9cab84391ff3" + integrity sha512-vX1NPekXhrLquFWskH2thcvFAha187F/lM6xYOoEMZWwJ/6alSk0/ttmGP/YRqcqtCv0TMbZjYAdZyHAEcuU4g== "@types/unist@*", "@types/unist@^2.0.0": version "2.0.6" @@ -7343,9 +7786,9 @@ "@types/node" "*" "@types/uuid@^8.0.0": - version "8.3.4" - resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== + version "8.3.0" + resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" + integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== "@types/vinyl@^2.0.4": version "2.0.6" @@ -7376,10 +7819,10 @@ dependencies: "@types/node" "*" -"@types/websocket@^1.0.4": - version "1.0.5" - resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz#3fb80ed8e07f88e51961211cd3682a3a4a81569c" - integrity sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ== +"@types/websocket@1.0.4", "@types/websocket@^1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8" + integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA== dependencies: "@types/node" "*" @@ -7391,28 +7834,35 @@ "@types/node" "*" "@types/ws@^8.0.0", "@types/ws@^8.2.2": - version "8.2.3" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.2.3.tgz#0bca6b03ba2f41e0fab782d4a573fe284aa907ae" - integrity sha512-ahRJZquUYCdOZf/rCsWg88S0/+cb9wazUBHv6HZEe3XdYaBe2zr/slM8J28X07Hn88Pnm4ezo7N8/ofnOgrPVQ== + version "8.2.2" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21" + integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg== dependencies: "@types/node" "*" "@types/xml2js@*", "@types/xml2js@^0.4.7": - version "0.4.9" - resolved "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.9.tgz#a38267d8c2fe121c96922b12ee3bd89a58a6e20e" - integrity sha512-CHiCKIihl1pychwR2RNX5mAYmJDACgFVCMT5OArMaO3erzwXVcBqPcusr+Vl8yeeXukxZqtF8mZioqX+mpjjdw== + version "0.4.8" + resolved "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.8.tgz#84c120c864a5976d0b5cf2f930a75d850fc2b03a" + integrity sha512-EyvT83ezOdec7BhDaEcsklWy7RSIdi6CNe95tmOAK0yx/Lm30C9K75snT3fYayK59ApC2oyW+rcHErdG05FHJA== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + version "15.0.0" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + version "15.0.4" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" + integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== dependencies: "@types/yargs-parser" "*" @@ -7439,13 +7889,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.0.tgz#bb46dd7ce7015c0928b98af1e602118e97df6c70" - integrity sha512-fwCMkDimwHVeIOKeBHiZhRUfJXU8n6xW1FL9diDxAyGAFvKcH4csy0v7twivOQdQdA0KC8TDr7GGRd3L4Lv0rQ== + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.0.tgz#382182d5cb062f52aac54434cfc47c28898c8006" + integrity sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ== dependencies: - "@typescript-eslint/scope-manager" "5.12.0" - "@typescript-eslint/type-utils" "5.12.0" - "@typescript-eslint/utils" "5.12.0" + "@typescript-eslint/experimental-utils" "5.9.0" + "@typescript-eslint/scope-manager" "5.9.0" + "@typescript-eslint/type-utils" "5.9.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -7453,31 +7903,45 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@^5.0.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.12.0.tgz#b97c599a281f14a68015c25ee24966cb54ba9fc5" - integrity sha512-iFVADWH2CmiDF+E9kFK2r474BO2JILDKw1NVD5ytqHrM3ezsfdu5uo6B+77DH0suM7iUC/yOayHNziuiI9BPbQ== +"@typescript-eslint/experimental-utils@5.9.0", "@typescript-eslint/experimental-utils@^5.0.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz#652762d37d6565ef07af285021b8347b6c79a827" + integrity sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g== dependencies: - "@typescript-eslint/utils" "5.12.0" + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.9.0" + "@typescript-eslint/types" "5.9.0" + "@typescript-eslint/typescript-estree" "5.9.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.0.tgz#0ca669861813df99ce54916f66f524c625ed2434" - integrity sha512-MfSwg9JMBojMUoGjUmX+D2stoQj1CBYTCP0qnnVtu9A+YQXVKNtLjasYh+jozOcrb/wau8TCfWOkQTiOAruBog== + version "5.9.1" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.1.tgz#b114011010a87e17b3265ca715e16c76a9834cef" + integrity sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g== dependencies: - "@typescript-eslint/scope-manager" "5.12.0" - "@typescript-eslint/types" "5.12.0" - "@typescript-eslint/typescript-estree" "5.12.0" + "@typescript-eslint/scope-manager" "5.9.1" + "@typescript-eslint/types" "5.9.1" + "@typescript-eslint/typescript-estree" "5.9.1" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz#59619e6e5e2b1ce6cb3948b56014d3a24da83f5e" - integrity sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ== +"@typescript-eslint/scope-manager@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz#02dfef920290c1dcd7b1999455a3eaae7a1a3117" + integrity sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg== dependencies: - "@typescript-eslint/types" "5.12.0" - "@typescript-eslint/visitor-keys" "5.12.0" + "@typescript-eslint/types" "5.9.0" + "@typescript-eslint/visitor-keys" "5.9.0" +"@typescript-eslint/scope-manager@5.9.1": + version "5.9.1" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.1.tgz#6c27be89f1a9409f284d95dfa08ee3400166fe69" + integrity sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ== + dependencies: + "@typescript-eslint/types" "5.9.1" + "@typescript-eslint/visitor-keys" "5.9.1" + +<<<<<<< HEAD "@typescript-eslint/scope-manager@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz#7e7909d64bd0c4d8aef629cdc764b9d3e1d3a69a" @@ -7490,16 +7954,41 @@ version "5.12.0" resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.0.tgz#aaf45765de71c6d9707c66ccff76ec2b9aa31bb6" integrity sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q== +======= +"@typescript-eslint/type-utils@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.9.0.tgz#fd5963ead04bc9b7af9c3a8e534d8d39f1ce5f93" + integrity sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ== +>>>>>>> f9b03ab02f (fixups) dependencies: - "@typescript-eslint/utils" "5.12.0" + "@typescript-eslint/experimental-utils" "5.9.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz#5b4030a28222ee01e851836562c07769eecda0b8" - integrity sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ== +"@typescript-eslint/types@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" + integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== +"@typescript-eslint/types@5.9.1": + version "5.9.1" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.1.tgz#1bef8f238a2fb32ebc6ff6d75020d9f47a1593c6" + integrity sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ== + +"@typescript-eslint/typescript-estree@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz#0e5c6f03f982931abbfbc3c1b9df5fbf92a3490f" + integrity sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw== + dependencies: + "@typescript-eslint/types" "5.9.0" + "@typescript-eslint/visitor-keys" "5.9.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +<<<<<<< HEAD "@typescript-eslint/types@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" @@ -7509,15 +7998,22 @@ version "5.12.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz#cabf545fd592722f0e2b4104711e63bf89525cd2" integrity sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ== +======= +"@typescript-eslint/typescript-estree@5.9.1": + version "5.9.1" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.1.tgz#d5b996f49476495070d2b8dd354861cf33c005d6" + integrity sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A== +>>>>>>> f9b03ab02f (fixups) dependencies: - "@typescript-eslint/types" "5.12.0" - "@typescript-eslint/visitor-keys" "5.12.0" + "@typescript-eslint/types" "5.9.1" + "@typescript-eslint/visitor-keys" "5.9.1" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" +<<<<<<< HEAD "@typescript-eslint/typescript-estree@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" @@ -7535,14 +8031,17 @@ version "5.12.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz#92fd3193191621ab863add2f553a7b38b65646af" integrity sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw== +======= +"@typescript-eslint/visitor-keys@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" + integrity sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw== +>>>>>>> f9b03ab02f (fixups) dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.12.0" - "@typescript-eslint/types" "5.12.0" - "@typescript-eslint/typescript-estree" "5.12.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" + "@typescript-eslint/types" "5.9.0" + eslint-visitor-keys "^3.0.0" +<<<<<<< HEAD "@typescript-eslint/utils@^5.10.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz#42218b459d6d66418a4eb199a382bdc261650679" @@ -7559,8 +8058,14 @@ version "5.12.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz#1ac9352ed140b07ba144ebf371b743fdf537ec16" integrity sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg== +======= +"@typescript-eslint/visitor-keys@5.9.1": + version "5.9.1" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.1.tgz#f52206f38128dd4f675cf28070a41596eee985b7" + integrity sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg== +>>>>>>> f9b03ab02f (fixups) dependencies: - "@typescript-eslint/types" "5.12.0" + "@typescript-eslint/types" "5.9.1" eslint-visitor-keys "^3.0.0" "@typescript-eslint/visitor-keys@5.16.0": @@ -7741,7 +8246,12 @@ a-sync-waterfall@^1.0.0: resolved "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7" integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== -abab@^2.0.3, abab@^2.0.5: +abab@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + +abab@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== @@ -7759,9 +8269,9 @@ abort-controller@3.0.0, abort-controller@^3.0.0: event-target-shim "^5.0.0" abstract-logging@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" - integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== + version "2.0.0" + resolved "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.0.tgz#08a85814946c98ef06f4256ad470aba1886d4490" + integrity sha512-/oA9z7JszpIioo6J6dB79LVUgJ3eD3cxkAmdCkvWWS+Y9tPtALs1rLqOekLUXUbYqM2fB9TTK0ibAyZJJOP/CA== accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" @@ -7780,19 +8290,19 @@ acorn-globals@^6.0.0: acorn-walk "^7.1.1" acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + version "1.7.6" + resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" + integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + version "5.3.1" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + version "7.1.1" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" + integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== acorn-walk@^8.1.1, acorn-walk@^8.2.0: version "8.2.0" @@ -7824,7 +8334,14 @@ after@0.8.2: resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= -agent-base@6, agent-base@^6.0.2: +agent-base@6: + version "6.0.1" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" + integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== + dependencies: + debug "4" + +agent-base@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -7867,7 +8384,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.7.0, ajv@~6.12.6: +ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv@^6.7.0, ajv@~6.12.6: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -7878,25 +8395,37 @@ ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, aj uri-js "^4.2.2" ajv@^7.0.3: - version "7.2.4" - resolved "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz#8e239d4d56cf884bccca8cca362f508446dc160f" - integrity sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A== + version "7.0.3" + resolved "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" + integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" +<<<<<<< HEAD ajv@^8.0.0, ajv@^8.10.0, ajv@^8.8.0: version "8.10.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== +======= +ajv@^8.0.0, ajv@^8.8.0: + version "8.9.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz#738019146638824dea25edcf299dcba1b0e7eb18" + integrity sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ== +>>>>>>> f9b03ab02f (fixups) dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" +alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + already@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/already/-/already-3.3.0.tgz#a5e5becd167cf537b45f8f1c23d331488ed77003" @@ -7910,11 +8439,11 @@ anafanafo@2.0.0: char-width-table-consumer "^1.0.0" ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== dependencies: - string-width "^4.1.0" + string-width "^3.0.0" ansi-colors@^4.1.1: version "4.1.1" @@ -7927,11 +8456,11 @@ ansi-escapes@^3.0.0: integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + version "4.3.1" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== dependencies: - type-fest "^0.21.3" + type-fest "^0.11.0" ansi-html-community@^0.0.8: version "0.0.8" @@ -7976,10 +8505,11 @@ ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + version "4.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== dependencies: + "@types/color-name" "^1.1.1" color-convert "^2.0.1" ansi-styles@^5.0.0: @@ -8023,13 +8553,13 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apollo-datasource@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.1.tgz#a1168dd68371930de3ed4245ad12fa8600efe2cc" - integrity sha512-Z3a8rEUXVPIZ1p8xrFL8bcNhWmhOmovgDArvwIwmJOBnh093ZpRfO+ESJEDAN4KswmyzCLDAwjsW4zQOONdRUw== +apollo-datasource@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.0.tgz#ee84a802c45818e6a21a5f2d427f94851a4f9ebe" + integrity sha512-It8POTZTOCAnedRj2izEVeySN06LIfojigZjWaOY7voLe0DIgtvhql91xr27fuIWsR/Ew9twO3dLBjjvy34J4Q== dependencies: apollo-server-caching "^3.3.0" - apollo-server-env "^4.2.1" + apollo-server-env "^4.2.0" apollo-reporting-protobuf@^3.3.1: version "3.3.1" @@ -8045,16 +8575,25 @@ apollo-server-caching@^3.3.0: dependencies: lru-cache "^6.0.0" +<<<<<<< HEAD apollo-server-core@^3.6.4, apollo-server-core@^3.6.5: version "3.6.5" resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.5.tgz#f8a30bab49d7ccbd9500b85968accae0d8631927" integrity sha512-9lOTHnJnPV4TiVwt4DMl3HDWGebHxoJIU2tonOuIkRxOUjwCjsDsHfkIrPA3vutmXIb7R3OPxh/mofdDpm7DjQ== +======= +apollo-server-core@^3.6.1: + version "3.6.1" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.1.tgz#e835198a2eda5bcb61d2a1174d44ecb0ac414d15" + integrity sha512-V2Us5x7d+w8dVdyFLxEygMgaQ3KZ6Z59HpaQBNHQ7C5wVZhjUXIsgbehBtfzQbMpyMx0z5/8Z8eIrC4zNoGJDw== +>>>>>>> f9b03ab02f (fixups) dependencies: "@apollographql/apollo-tools" "^0.5.1" "@apollographql/graphql-playground-html" "1.6.29" "@graphql-tools/mock" "^8.1.2" "@graphql-tools/schema" "^8.0.0" + "@graphql-tools/utils" "^8.0.0" "@josephg/resolvable" "^1.0.0" +<<<<<<< HEAD apollo-datasource "^3.3.1" apollo-reporting-protobuf "^3.3.1" apollo-server-caching "^3.3.0" @@ -8062,6 +8601,15 @@ apollo-server-core@^3.6.4, apollo-server-core@^3.6.5: apollo-server-errors "^3.3.1" apollo-server-plugin-base "^3.5.2" apollo-server-types "^3.5.2" +======= + apollo-datasource "^3.3.0" + apollo-reporting-protobuf "^3.3.0" + apollo-server-caching "^3.3.0" + apollo-server-env "^4.2.0" + apollo-server-errors "^3.3.0" + apollo-server-plugin-base "^3.5.0" + apollo-server-types "^3.5.0" +>>>>>>> f9b03ab02f (fixups) async-retry "^1.2.1" fast-json-stable-stringify "^2.1.0" graphql-tag "^2.11.0" @@ -8071,35 +8619,48 @@ apollo-server-core@^3.6.4, apollo-server-core@^3.6.5: sha.js "^2.4.11" uuid "^8.0.0" -apollo-server-env@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" - integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== +apollo-server-env@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.0.tgz#d7cb08a81cee3025cd47b08be80b359d61d85913" + integrity sha512-4xJ+PCoWsFLj4rU6iXrIhqD7nI42goi4Iqrhsof9680ljSzkzd+PCwZsja3mHOFXKUQQUvJ7StVSgwaiRu45+A== dependencies: - node-fetch "^2.6.7" + node-fetch "^2.6.1" -apollo-server-errors@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" - integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== +apollo-server-errors@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.0.tgz#ac8ceb1400064312f983d8d70195693fbcf2be3c" + integrity sha512-9/MNlPZBbEjcCdJcUSbKbVEBT9xZS8GSpX7T/TyzcxHSbsXJszSDSipQNGC+PRKTKAUnv61IONScVyLKEZ5XEQ== +<<<<<<< HEAD apollo-server-express@^3.0.0, apollo-server-express@^3.6.4: version "3.6.5" resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.5.tgz#e623ee6f2e2d4cc2b4075baf7624a899a21ec1a6" integrity sha512-mV1Dif//BUq1WFlCWfaSlhsuxhcJ/gGD8HdQ6/s3JEspStS7SgmeSUIwJYl3vw8IA/8j7GNg/EINkc57x2UbdA== +======= +apollo-server-express@^3.0.0, apollo-server-express@^3.6.1: + version "3.6.1" + resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.1.tgz#b8bda303e05c551ac76c9c0b26bc651ca1466912" + integrity sha512-29imWvRPn5GsQq02Akt0+jejpWzpOIZfUmgoiFm4YB7somvhDNw15Pu7fv4sISK8ehNIDF68IpLd2cpY8sCkYQ== +>>>>>>> f9b03ab02f (fixups) dependencies: "@types/accepts" "^1.3.5" "@types/body-parser" "1.19.2" "@types/cors" "2.8.12" "@types/express" "4.17.13" - "@types/express-serve-static-core" "4.17.28" + "@types/express-serve-static-core" "4.17.27" accepts "^1.3.5" +<<<<<<< HEAD apollo-server-core "^3.6.5" apollo-server-types "^3.5.2" +======= + apollo-server-core "^3.6.1" + apollo-server-types "^3.5.0" +>>>>>>> f9b03ab02f (fixups) body-parser "^1.19.0" cors "^2.8.5" parseurl "^1.3.3" +<<<<<<< HEAD apollo-server-plugin-base@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.2.tgz#18a08353f5ea207a07f2c1e66dd7ef2335ce8c84" @@ -8111,18 +8672,40 @@ apollo-server-types@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.2.tgz#903d499a70b9010764cbab4d704ddb8c086aa06f" integrity sha512-vhcbIWsBkoNibABOym4AAPBoNDjokhjUQokKYdwZMeqrb850PMQdNJFrGyXT5onP408Ghv4O8PfgBuPQmeJhVQ== +======= +apollo-server-plugin-base@^3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.0.tgz#f3cb4f677152b60113f06f8d23b6234ecff847b4" + integrity sha512-dpi+W6wexT4H3cjIhxC9SJABkR8TCfxycoHK+U4jxQXUdg50da+KnMgoWlQbF1tuXtUs4gnJtij1RjuGtKwBhw== + dependencies: + apollo-server-types "^3.5.0" + +apollo-server-types@^3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.0.tgz#82f912d7765152fe1fde86cea8a076e9a0831a9d" + integrity sha512-4JaZNu1kjrzIbppgc78hhIe2DFe+XONf8grprcjTOe0v8dIsuV0tFUnl+awTvTpHU1sdjRCKwnj382BebiL+qw== +>>>>>>> f9b03ab02f (fixups) dependencies: apollo-reporting-protobuf "^3.3.1" apollo-server-caching "^3.3.0" - apollo-server-env "^4.2.1" + apollo-server-env "^4.2.0" apollo-server@^3.0.0: +<<<<<<< HEAD version "3.6.4" resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.6.4.tgz#e1bc966eb7d03944274056af4b17b380f0ac8696" integrity sha512-PIEDWtfiiiKt0uEMJ7/qiyULPat/ichDN/h9GrrroOFiz/tfU/yJXuHpoq8R/uzVyn4GpEc4OoibC2zOr59zig== dependencies: apollo-server-core "^3.6.4" apollo-server-express "^3.6.4" +======= + version "3.6.1" + resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.6.1.tgz#29420b1c0cddbf2e18147a3ca7299485f17137a2" + integrity sha512-Y2MY2/WvaTiofVoIR5ZIYt6c6wX8klZRaXI9x+7JBiFV9HMcOuLLpU3+P4r2EVXuN1LLe82m1PgiAYr+a1OmQg== + dependencies: + apollo-server-core "^3.6.1" + apollo-server-express "^3.6.1" +>>>>>>> f9b03ab02f (fixups) express "^4.17.1" aproba@^1.0.3: @@ -8186,9 +8769,9 @@ are-we-there-yet@^3.0.0: readable-stream "^3.6.0" are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + version "1.1.5" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -8253,6 +8836,11 @@ array-differ@^3.0.0: resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -8268,7 +8856,7 @@ array-ify@^1.0.0: resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.1.3, array-includes@^3.1.4: +array-includes@^3.1.2, array-includes@^3.1.3, array-includes@^3.1.4: version "3.1.4" resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== @@ -8339,20 +8927,19 @@ asap@^2.0.0, asap@^2.0.3, asap@~2.0.3: resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" asn1@^0.2.4, asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + version "0.2.4" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" @@ -8392,16 +8979,16 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-lock@^1.1.0: - version "1.3.1" - resolved "https://registry.npmjs.org/async-lock/-/async-lock-1.3.1.tgz#f2301c200600cde97acc386453b7126fa8aced3c" - integrity sha512-zK7xap9UnttfbE23JmcrNIyueAn6jWshihJqA33U/hEnKprF/lVGBDsBv/bqLm2YMMl1DnpHhUY044eA0t1TUw== + version "1.2.4" + resolved "https://registry.npmjs.org/async-lock/-/async-lock-1.2.4.tgz#80d0d612383045dd0c30eb5aad08510c1397cb91" + integrity sha512-UBQJC2pbeyGutIfYmErGc9RaJYnpZ1FHaxuKwb0ahvGiiCkPUf3p67Io+YLPmmv3RHY+mF6JEtNW8FlHsraAaA== -async-retry@^1.2.1, async-retry@^1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== +async-retry@^1.2.1, async-retry@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55" + integrity sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA== dependencies: - retry "0.13.1" + retry "0.12.0" async@0.9.x: version "0.9.2" @@ -8446,30 +9033,32 @@ auto-bind@~4.0.0: integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== autolinker@^3.11.0: - version "3.14.3" - resolved "https://registry.npmjs.org/autolinker/-/autolinker-3.14.3.tgz#c61c424bc6077bcf2fc62803803ec2f58e15a7ec" - integrity sha512-t81i2bCpS+s+5FIhatoww9DmpjhbdiimuU9ATEuLxtZMQ7jLv9fyFn7SWNG8IkEfD4AmYyirL1ss9k1aqVWRvg== + version "3.14.1" + resolved "https://registry.npmjs.org/autolinker/-/autolinker-3.14.1.tgz#6ae4b812b6eaf42d4d68138b9e67757cbf2bc1e4" + integrity sha512-yvsRHIaY51EYDml6MGlbqyJGfl4n7zezGYf+R7gvM8c5LNpRGc4SISkvgAswSS8SWxk/OrGCylKV9mJyVstz7w== dependencies: tslib "^1.9.3" -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" + integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== + dependencies: + array-filter "^1.0.0" aws-sdk-mock@^5.2.1: - version "5.6.2" - resolved "https://registry.npmjs.org/aws-sdk-mock/-/aws-sdk-mock-5.6.2.tgz#664771462953ca8d3806d5a50a63b4a6dbd5290f" - integrity sha512-GRJg8kjRJFLm2aLiPkYSqe/RreHqlqncAeFtWdAbtSxzBdct9EaV6rqSqjyWXKNJG45Rzn2Ojo3F6qVIgkQnSg== + version "5.2.1" + resolved "https://registry.npmjs.org/aws-sdk-mock/-/aws-sdk-mock-5.2.1.tgz#126d4d5362c96b7d1d0bd87708a99d626c19ffd4" + integrity sha512-dY7zA1p/lX335V4/aOJ2L8ggXC3a5zokTJFZlZVW3uU+Zej7u+V7WrEcN5TVaJAnk4auT263T6EK/OHW4WjKhw== dependencies: aws-sdk "^2.928.0" sinon "^11.1.1" traverse "^0.6.6" aws-sdk@^2.840.0, aws-sdk@^2.928.0, aws-sdk@^2.948.0: - version "2.1077.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1077.0.tgz#d4a391d38ede867fe9a88f31555f09a338dfdf4e" - integrity sha512-orJvJROs8hJaQRfHsX7Zl5PxEgrD/uTXyqXz9Yu9Io5VVxzvnOty9oHmvEMSlgTIf1qd01gnev/vpvP1HgzKtw== + version "2.1065.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1065.0.tgz#82b6e4e2a6fbccb1767339e309edd4f0daa958e6" + integrity sha512-OFvpXoL104dTFKpU14ILcLDPAlDbkJNIKXnnG2pK+2x++CvzIRJeNyERtUuEo7QMUOwq5U4nIQJKSPt5fBC/HA== dependencies: buffer "4.9.2" events "1.1.1" @@ -8492,9 +9081,9 @@ aws4@^1.11.0, aws4@^1.8.0: integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== axe-core@^4.3.5: - version "4.4.1" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" - integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== + version "4.3.5" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5" + integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA== axios-cached-dns-resolve@0.5.2: version "0.5.2" @@ -8555,14 +9144,14 @@ babel-plugin-dynamic-import-node@^2.3.3: object.assign "^4.1.0" babel-plugin-istanbul@^6.0.0: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + version "6.0.0" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" + istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" babel-plugin-jest-hoist@^26.6.2: @@ -8585,12 +9174,12 @@ babel-plugin-polyfill-corejs2@^0.3.0: semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== + version "0.5.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz#d66183bf10976ea677f4149a7fcc4d8df43d4060" + integrity sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" + core-js-compat "^3.20.0" babel-plugin-polyfill-regenerator@^0.3.0: version "0.3.1" @@ -8614,9 +9203,9 @@ babel-polyfill@^6.26.0: regenerator-runtime "^0.10.5" babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + version "1.0.0" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz#cf5feef29551253471cfa82fc8e0f5063df07a77" + integrity sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -8701,9 +9290,9 @@ badge-maker@^3.3.0: css-color-converter "^2.0.0" bail@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" - integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + version "2.0.1" + resolved "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz#d676736373a374058a935aec81b94c12ba815771" + integrity sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA== balanced-match@^0.4.2: version "0.4.2" @@ -8772,6 +9361,11 @@ bdd-lazy-var@^2.6.0: resolved "https://registry.npmjs.org/bdd-lazy-var/-/bdd-lazy-var-2.6.1.tgz#ca03fb36d68c5a507c0ba9a4d53160b899e6b7cb" integrity sha512-X3ADwcFji/IHIrYJhTTpaiWhoOx4pl4whdAx1dmvdeUPsMUb7fVYFvf/Q33VEAEAVkEwi5rgNSZ0Y9oOVeQV+A== +before-after-hook@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + before-after-hook@^2.2.0: version "2.2.2" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" @@ -8802,10 +9396,17 @@ bfj@^7.0.2: hoopy "^0.1.4" tryer "^1.0.1" +<<<<<<< HEAD big-integer@^1.6.16, big-integer@^1.6.17: version "1.6.51" resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== +======= +big-integer@^1.6.17: + version "1.6.48" + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" + integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== +>>>>>>> 76d216e74b (fixups) big.js@^5.2.2: version "5.2.2" @@ -8813,9 +9414,9 @@ big.js@^5.2.2: integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== bignumber.js@^9.0.0: - version "9.0.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + version "9.0.1" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" + integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== bin-links@^3.0.0: version "3.0.0" @@ -8830,9 +9431,9 @@ bin-links@^3.0.0: write-file-atomic "^4.0.0" binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.0.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== binary-search@^1.3.5: version "1.3.6" @@ -8898,16 +9499,11 @@ bmp-js@^0.1.0: resolved "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - body-parser@1.19.2, body-parser@^1.19.0: version "1.19.2" resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" @@ -9060,28 +9656,26 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: - bn.js "^5.0.0" + bn.js "^4.1.0" randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + version "4.0.4" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" browserify-zlib@^0.2.0: version "0.2.0" @@ -9090,15 +9684,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.19.1: - version "4.19.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" - integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.19.1: + version "4.19.1" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== dependencies: - caniuse-lite "^1.0.30001312" - electron-to-chromium "^1.4.71" + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" escalade "^3.1.1" - node-releases "^2.0.2" + node-releases "^2.0.1" picocolors "^1.0.0" bser@2.1.1: @@ -9134,9 +9728,9 @@ buffer-equal@0.0.1: integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-indexof-polyfill@~1.0.0: version "1.0.2" @@ -9189,9 +9783,9 @@ buffers@~0.1.1: integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= builtin-modules@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + version "3.1.0" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" + integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== builtin-status-codes@^3.0.0: version "3.0.0" @@ -9209,15 +9803,20 @@ byline@^5.0.0: integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= byte-size@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" - integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== + version "7.0.0" + resolved "https://registry.npmjs.org/byte-size/-/byte-size-7.0.0.tgz#36528cd1ca87d39bd9abd51f5715dc93b6ceb032" + integrity sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ== bytes@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= +bytes@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" + integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== + bytes@3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -9263,9 +9862,9 @@ cache-base@^1.0.1: unset-value "^1.0.0" cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + version "5.0.3" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" + integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== cacheable-request@^6.0.0: version "6.1.0" @@ -9334,11 +9933,11 @@ camelcase-keys@^6.2.2: quick-lru "^4.0.1" camelcase-keys@^7.0.1: - version "7.0.2" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" - integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== + version "7.0.1" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.1.tgz#5a57e6dfb3f6c7929dad15599ee4476a7e9a3b2d" + integrity sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA== dependencies: - camelcase "^6.3.0" + camelcase "^6.2.0" map-obj "^4.1.0" quick-lru "^5.1.1" type-fest "^1.2.1" @@ -9358,10 +9957,10 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +camelcase@^6.0.0, camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== caniuse-api@^3.0.0: version "3.0.0" @@ -9373,10 +9972,15 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001312: - version "1.0.30001312" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" - integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== +caniuse-lite@^1.0.0: + version "1.0.30001282" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" + integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== + +caniuse-lite@^1.0.30001286: + version "1.0.30001296" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001296.tgz#d99f0f3bee66544800b93d261c4be55a35f1cec8" + integrity sha512-WfrtPEoNSoeATDlf4y3QvkwiELl9GyPLISV5GejTbbQRtQx4LhsXmc9IQ6XCL2d7UxCyEzToEZNMeqR79OUw8Q== canvas@^2.6.1: version "2.9.0" @@ -9409,9 +10013,9 @@ caseless@~0.12.0: integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= ccount@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" - integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + version "2.0.0" + resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz#3d6fb55803832766a24c6f339abc507297eb5d25" + integrity sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA== chainsaw@~0.1.0: version "0.1.0" @@ -9515,21 +10119,31 @@ character-entities-legacy@^1.0.0: resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== +character-entities-legacy@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz#57f4d00974c696e8f74e9f493e7fcb75b44d7ee7" + integrity sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA== + character-entities@^1.0.0: version "1.2.4" resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + version "2.0.0" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz#508355fcc8c73893e0909efc1a44d28da2b6fdf3" + integrity sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA== character-reference-invalid@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +character-reference-invalid@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz#a0bdeb89c051fe7ed5d3158b2f06af06984f2813" + integrity sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -9571,9 +10185,11 @@ chownr@^2.0.0: integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + version "1.0.2" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" ci-info@^2.0.0: version "2.0.0" @@ -9621,9 +10237,9 @@ classnames@*, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1: integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== clean-css@^5.2.2: - version "5.2.4" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz#982b058f8581adb2ae062520808fb2429bd487a4" - integrity sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg== + version "5.2.2" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.2.2.tgz#d3a7c6ee2511011e051719838bdcf8314dc4548d" + integrity sha512-/eR8ru5zyxKzpBLv9YZvMXgTSSQn7AdkMItMYynsFgGwTveCRVam9IUPFloE85B4vAIj05IuKmmEoV7/AQjT0w== dependencies: source-map "~0.6.0" @@ -9657,9 +10273,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-spinners@^2.5.0: - version "2.6.1" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + version "2.5.0" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== cli-table3@~0.6.1: version "0.6.1" @@ -9671,9 +10287,9 @@ cli-table3@~0.6.1: colors "1.4.0" cli-table@^0.3.1: - version "0.3.11" - resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz#ac69cdecbe81dccdba4889b9a18b7da312a9d3ee" - integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== + version "0.3.6" + resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz#e9d6aa859c7fe636981fd3787378c2a20bce92fc" + integrity sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ== dependencies: colors "1.0.3" @@ -9819,18 +10435,18 @@ code-point-at@^1.0.0: resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codemirror-graphql@^1.2.12: - version "1.2.12" - resolved "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.2.12.tgz#59cf88ae254d5dabd4e596028977a7ec305cddb7" - integrity sha512-irP+E8HOWtgIdU3PNTU77bNmpEXQYADRRDmKqkjh3w1m0welbxl6HtZgp+c+Mkkz+FXY1+3+gF6nEEj+eJ1xdg== +codemirror-graphql@^1.2.11: + version "1.2.11" + resolved "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.2.11.tgz#337b9348ec649e08627fcb158c6c497a2c1a3d57" + integrity sha512-pB3LVgrwj+qfO1vaVvnzTYBKhkms1hU/t0fiOM7tiov/Kq+l1BXCgYJyh5/muGDxpz7hqzg/fWJwIYNi40kLiA== dependencies: "@codemirror/stream-parser" "^0.19.2" - graphql-language-service "^4.1.5" + graphql-language-service "^4.1.4" codemirror@^5.58.2: - version "5.65.1" - resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.65.1.tgz#5988a812c974c467f964bcc1a00c944e373de502" - integrity sha512-s6aac+DD+4O2u1aBmdxhB7yz2XU7tG3snOyQ05Kxifahz7hoxnfxIRHxiCSEv3TUC38dIVH8G+lZH9UWSfGQxA== + version "5.63.3" + resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.63.3.tgz#97042a242027fe0c87c09b36bc01931d37b76527" + integrity sha512-1C+LELr+5grgJYqwZKqxrcbPsHFHapVaVAloBsFBASbpLnQqLw1U8yXJ3gT5D+rhxIiSpo+kTqN+hQ+9ialIXw== codeowners-utils@^1.0.2: version "1.0.2" @@ -9843,9 +10459,9 @@ codeowners-utils@^1.0.2: locate-path "^5.0.0" collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + version "1.0.0" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz#150ee634ac3650b71d9c985eb7f608942334feb1" + integrity sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ== collection-visit@^1.0.0: version "1.0.0" @@ -9860,7 +10476,7 @@ color-convert@^0.5.2: resolved "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" integrity sha1-vbbGnOZg+t/+CwAHzER+G59ygr0= -color-convert@^1.9.0, color-convert@^1.9.3: +color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -9884,10 +10500,10 @@ color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0, color-string@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" - integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== +color-string@^1.5.2, color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -9897,26 +10513,26 @@ color-support@^1.1.2: resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@^3.1.3: - version "3.2.1" - resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== +color@3.0.x: + version "3.0.0" + resolved "https://registry.npmjs.org/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" + color-convert "^1.9.1" + color-string "^1.5.2" color@^4.0.1: - version "4.2.1" - resolved "https://registry.npmjs.org/color/-/color-4.2.1.tgz#498aee5fce7fc982606c8875cab080ac0547c884" - integrity sha512-MFJr0uY4RvTQUKvPq7dh9grVOTYSFeXja2mBXioCGjnjJoXrAp9jJ1NQTDR73c9nwBSAQiNKloKl5zq9WB9UPw== + version "4.0.1" + resolved "https://registry.npmjs.org/color/-/color-4.0.1.tgz#21df44cd10245a91b1ccf5ba031609b0e10e7d67" + integrity sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA== dependencies: color-convert "^2.0.1" - color-string "^1.9.0" + color-string "^1.6.0" colord@^2.9.1: - version "2.9.2" - resolved "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" - integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== + version "2.9.1" + resolved "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" + integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== colorette@2.0.16, colorette@^2.0.10, colorette@^2.0.16: version "2.0.16" @@ -9928,7 +10544,7 @@ colors@1.0.3: resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= -colors@1.4.0: +colors@1.4.0, colors@^1.1.2: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -9939,19 +10555,19 @@ colors@~1.2.1: integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + version "1.1.2" + resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" + integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== dependencies: - color "^3.1.3" + color "3.0.x" text-hex "1.0.x" columnify@^1.5.4: - version "1.6.0" - resolved "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" - integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + version "1.5.4" + resolved "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= dependencies: - strip-ansi "^6.0.1" + strip-ansi "^3.0.0" wcwidth "^1.0.0" combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: @@ -9976,10 +10592,10 @@ command-exists@^1.2.9: resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== -commander@*: - version "9.0.0" - resolved "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz#86d58f24ee98126568936bd1d3574e0308a99a40" - integrity sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw== +commander@*, commander@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== commander@7.1.0: version "7.1.0" @@ -10011,21 +10627,21 @@ commander@^7.2.0: resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== -common-tags@1.8.2, common-tags@^1.8.0: +common-tags@1.8.2: version "1.8.2" resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -10060,12 +10676,12 @@ component-inherit@0.0.3: integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= compress-commons@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" - integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + version "4.1.0" + resolved "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.0.tgz#25ec7a4528852ccd1d441a7d4353cd0ece11371b" + integrity sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA== dependencies: buffer-crc32 "^0.2.13" - crc32-stream "^4.0.2" + crc32-stream "^4.0.1" normalize-path "^3.0.0" readable-stream "^3.6.0" @@ -10113,6 +10729,16 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + concat-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" @@ -10145,9 +10771,9 @@ concurrently@^7.0.0: yargs "^16.2.0" config-chain@^1.1.12: - version "1.1.13" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + version "1.1.12" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -10211,9 +10837,9 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== conventional-changelog-angular@^5.0.12: - version "5.0.13" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== + version "5.0.12" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" + integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== dependencies: compare-func "^2.0.0" q "^1.5.1" @@ -10267,9 +10893,9 @@ conventional-commits-filter@^2.0.7: modify-values "^1.0.0" conventional-commits-parser@^3.2.0: - version "3.2.4" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" - integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== + version "3.2.1" + resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz#ba44f0b3b6588da2ee9fd8da508ebff50d116ce2" + integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.1" @@ -10277,6 +10903,7 @@ conventional-commits-parser@^3.2.0: meow "^8.0.0" split2 "^3.0.0" through2 "^4.0.0" + trim-off-newlines "^1.0.0" conventional-recommended-bump@^6.1.0: version "6.1.0" @@ -10293,18 +10920,18 @@ conventional-recommended-bump@^6.1.0: q "^1.5.1" convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + version "1.7.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" cookie-parser@^1.4.5: - version "1.4.6" - resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" - integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== + version "1.4.5" + resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49" + integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw== dependencies: - cookie "0.4.1" + cookie "0.4.0" cookie-signature "1.0.6" cookie-signature@1.0.6: @@ -10312,6 +10939,11 @@ cookie-signature@1.0.6: resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + cookie@0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" @@ -10339,39 +10971,44 @@ copy-to-clipboard@^3, copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.21.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" - integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== +core-js-compat@^3.20.0, core-js-compat@^3.20.2: + version "3.20.3" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz#d71f85f94eb5e4bea3407412e549daa083d23bd6" + integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw== dependencies: browserslist "^4.19.1" semver "7.0.0" -core-js-pure@^3.20.2, core-js-pure@^3.6.5: - version "3.21.1" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51" - integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ== +core-js-pure@^3.20.2: + version "3.20.2" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz#5d263565f0e34ceeeccdc4422fae3e84ca6b8c0f" + integrity sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg== + +core-js-pure@^3.6.5: + version "3.16.2" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.2.tgz#0ef4b79cabafb251ea86eb7d139b42bd98c533e8" + integrity sha512-oxKe64UH049mJqrKkynWp6Vu0Rlm/BTXO/bJZuN2mmR3RtOFNepLlSWDd1eo16PzHpQAoNG97rLU1V/YxesJjw== core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.10: version "2.6.12" resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.4.1, core-js@^3.6.5: +core-js@^3.4.1: version "3.21.1" resolved "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== -core-util-is@1.0.2: +core-js@^3.6.5: + version "3.20.3" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz#c710d0a676e684522f3db4ee84e5e18a9d11d69a" + integrity sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag== + +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - cors@^2.8.5: version "2.8.5" resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -10428,30 +11065,30 @@ cpu-features@0.0.2: nan "^2.14.1" crc-32@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz#436d2bcaad27bcb6bd073a2587139d3024a16460" - integrity sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w== + version "1.2.0" + resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== dependencies: exit-on-epipe "~1.0.1" - printj "~1.3.1" + printj "~1.1.0" -crc32-stream@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" - integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== +crc32-stream@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.1.tgz#0f047d74041737f8a55e86837a1b826bd8ab0067" + integrity sha512-FN5V+weeO/8JaXsamelVYO1PHyeCsuL3HcG4cqsj0ceARcocxalaShCsohZMSAF+db7UYFwBy1rARK/0oFItUw== dependencies: crc-32 "^1.2.0" readable-stream "^3.4.0" create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + version "4.0.3" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== dependencies: bn.js "^4.1.0" - elliptic "^6.5.3" + elliptic "^6.0.0" -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: +create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -10462,7 +11099,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.7" resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -10510,7 +11147,7 @@ cross-fetch@3.1.4: dependencies: node-fetch "2.6.1" -cross-fetch@3.1.5, cross-fetch@^3.0.6, cross-fetch@^3.1.3, cross-fetch@^3.1.5: +cross-fetch@3.1.5, cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.3, cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -10546,17 +11183,36 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cross-undici-fetch@^0.1.19: - version "0.1.24" - resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.24.tgz#2ad23d096ba07cfa1260b1aeb9a78d2132ea3385" - integrity sha512-83KDV6+8pYCn51zSM2cFAwqQ5UQtDaPm89RkUwHxEMDq/cdqYgqo1q+2eM/Xhmd8HeAsGTtecsC4crrQkCn0zg== +cross-undici-fetch@^0.0.20: + version "0.0.20" + resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.0.20.tgz#6b7c5ac82a3601edd439f37275ac0319d77a120a" + integrity sha512-5d3WBC4VRHpFndECK9bx4TngXrw0OUXdhX561Ty1ZoqMASz9uf55BblhTC1CO6GhMWnvk9SOqYEXQliq6D2P4A== + dependencies: + abort-controller "^3.0.0" + form-data "^4.0.0" + node-fetch "^2.6.5" + undici "^4.9.3" + +cross-undici-fetch@^0.0.26: + version "0.0.26" + resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.0.26.tgz#29d93d56609f4d2334f9d5333d23ef7a242842a7" + integrity sha512-aMDRrLbWr0TGXfY92stlV+XOGpskeqFmWmrKSWsnc8w6gK5LPE83NBh7O7N6gCb2xjwHcm1Yn2nBXMEVH2RBcA== + dependencies: + abort-controller "^3.0.0" + form-data "^4.0.0" + node-fetch "^2.6.5" + undici "^4.9.3" + +cross-undici-fetch@^0.1.4: + version "0.1.13" + resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.13.tgz#807d17ce5c524c21bc0a6486e97ecccb901c6529" + integrity sha512-nF+g932BrKPoK0RZQKRA9S2IKXeveGPJlaUWXyUEGjjSpAdxBhEHDrMDbiksP2iSNe8O5vn1bN3tTvrd6+yFSg== dependencies: abort-controller "^3.0.0" form-data-encoder "^1.7.1" formdata-node "^4.3.1" - node-fetch "^2.6.7" + node-fetch "^2.6.5" undici "^4.9.3" - web-streams-polyfill "^3.2.0" crypto-browserify@^3.11.0: version "3.12.0" @@ -10597,9 +11253,9 @@ css-color-converter@^2.0.0: css-unit-converter "^1.1.2" css-declaration-sorter@^6.0.3: - version "6.1.4" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz#b9bfb4ed9a41f8dcca9bf7184d849ea94a8294b4" - integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw== + version "6.1.3" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" + integrity sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA== dependencies: timsort "^0.3.0" @@ -10641,15 +11297,15 @@ css-select@^2.0.0: nth-check "^1.0.2" css-select@^4.1.3: - version "4.2.1" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" - integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + version "4.1.3" + resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== dependencies: boolbase "^1.0.0" - css-what "^5.1.0" - domhandler "^4.3.0" - domutils "^2.8.0" - nth-check "^2.0.1" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" @@ -10659,7 +11315,15 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@^1.1.2, css-tree@^1.1.3: +css-tree@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" + integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-tree@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -10685,7 +11349,7 @@ css-what@^3.2.1: resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== -css-what@^5.1.0: +css-what@^5.0.0: version "5.1.0" resolved "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== @@ -10714,52 +11378,53 @@ cssfilter@0.0.10: resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= -cssnano-preset-default@^5.1.12: - version "5.1.12" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz#64e2ad8e27a279e1413d2d2383ef89a41c909be9" - integrity sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w== +cssnano-preset-default@^5.1.7: + version "5.1.7" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.7.tgz#68c3ad1ec6a810482ec7d06b2d70fc34b6b0d70c" + integrity sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA== dependencies: css-declaration-sorter "^6.0.3" - cssnano-utils "^3.0.2" - postcss-calc "^8.2.0" - postcss-colormin "^5.2.5" - postcss-convert-values "^5.0.4" - postcss-discard-comments "^5.0.3" - postcss-discard-duplicates "^5.0.3" - postcss-discard-empty "^5.0.3" - postcss-discard-overridden "^5.0.4" - postcss-merge-longhand "^5.0.6" - postcss-merge-rules "^5.0.6" - postcss-minify-font-values "^5.0.4" - postcss-minify-gradients "^5.0.6" - postcss-minify-params "^5.0.5" - postcss-minify-selectors "^5.1.3" - postcss-normalize-charset "^5.0.3" - postcss-normalize-display-values "^5.0.3" - postcss-normalize-positions "^5.0.4" - postcss-normalize-repeat-style "^5.0.4" - postcss-normalize-string "^5.0.4" - postcss-normalize-timing-functions "^5.0.3" - postcss-normalize-unicode "^5.0.4" - postcss-normalize-url "^5.0.5" - postcss-normalize-whitespace "^5.0.4" - postcss-ordered-values "^5.0.5" - postcss-reduce-initial "^5.0.3" - postcss-reduce-transforms "^5.0.4" - postcss-svgo "^5.0.4" - postcss-unique-selectors "^5.0.4" + cssnano-utils "^2.0.1" + postcss-calc "^8.0.0" + postcss-colormin "^5.2.1" + postcss-convert-values "^5.0.2" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.4" + postcss-merge-rules "^5.0.3" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.3" + postcss-minify-params "^5.0.2" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.3" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.2" + postcss-reduce-initial "^5.0.1" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.3" + postcss-unique-selectors "^5.0.2" -cssnano-utils@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz#d82b4991a27ba6fec644b39bab35fe027137f516" - integrity sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ== +cssnano-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" + integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.1: - version "5.0.17" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz#ff45713c05cfc780a1aeb3e663b6f224d091cabf" - integrity sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw== + version "5.0.11" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-5.0.11.tgz#743397a05e04cb87e9df44b7659850adfafc3646" + integrity sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg== dependencies: - cssnano-preset-default "^5.1.12" + cssnano-preset-default "^5.1.7" + is-resolvable "^1.1.0" lilconfig "^2.0.3" yaml "^1.10.2" @@ -10780,47 +11445,47 @@ cssom@~0.3.6: resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssstyle@^2.3.0: +cssstyle@^2.2.0, cssstyle@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== dependencies: cssom "~0.3.6" -csstype@^2.5.2: - version "2.6.19" - resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz#feeb5aae89020bb389e1f63669a5ed490e391caa" - integrity sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ== +csstype@^2.5.2, csstype@^2.6.7: + version "2.6.17" + resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" + integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== csstype@^3.0.2, csstype@^3.0.6: - version "3.0.10" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" - integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== + version "3.0.7" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" + integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== -csv-generate@^3.4.3: - version "3.4.3" - resolved "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.3.tgz#bc42d943b45aea52afa896874291da4b9108ffff" - integrity sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw== +csv-generate@^3.2.4: + version "3.2.4" + resolved "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.4.tgz#440dab9177339ee0676c9e5c16f50e2b3463c019" + integrity sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA== -csv-parse@^4.16.3: - version "4.16.3" - resolved "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz#7ca624d517212ebc520a36873c3478fa66efbaf7" - integrity sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg== +csv-parse@^4.8.8: + version "4.12.0" + resolved "https://registry.npmjs.org/csv-parse/-/csv-parse-4.12.0.tgz#fd42d6291bbaadd51d3009f6cadbb3e53b4ce026" + integrity sha512-wPQl3H79vWLPI8cgKFcQXl0NBgYYEqVnT1i6/So7OjMpsI540oD7p93r3w6fDSyPvwkTepG05F69/7AViX2lXg== -csv-stringify@^5.6.5: - version "5.6.5" - resolved "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00" - integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== +csv-stringify@^5.3.6: + version "5.5.1" + resolved "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.5.1.tgz#f42cdd379b0f7f142933a11f674b1a91ebd0fcd0" + integrity sha512-HM0/86Ks8OwFbaYLd495tqTs1NhscZL52dC4ieKYumy8+nawQYC0xZ63w1NqLf0M148T2YLYqowoImc1giPn0g== csv@^5.3.1: - version "5.5.3" - resolved "https://registry.npmjs.org/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d" - integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== + version "5.3.2" + resolved "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz#50b344e25dfbb8c62684a1bcec18c22468b2161e" + integrity sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ== dependencies: - csv-generate "^3.4.3" - csv-parse "^4.16.3" - csv-stringify "^5.6.5" - stream-transform "^2.1.3" + csv-generate "^3.2.4" + csv-parse "^4.8.8" + csv-stringify "^5.3.6" + stream-transform "^2.0.1" cypress-plugin-snapshots@^1.4.4: version "1.4.4" @@ -11113,6 +11778,14 @@ d3-zoom@^3.0.0: d3-selection "2 - 3" d3-transition "2 - 3" +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + dagre@^0.8.5: version "0.8.5" resolved "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" @@ -11122,9 +11795,9 @@ dagre@^0.8.5: lodash "^4.17.15" damerau-levenshtein@^1.0.7: - version "1.0.8" - resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + version "1.0.7" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" + integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== dargs@^7.0.0: version "7.0.0" @@ -11152,10 +11825,10 @@ dataloader@2.0.0, dataloader@^2.0.0: resolved "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz#41eaf123db115987e21ca93c005cd7753c55fe6f" integrity sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ== -date-and-time@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/date-and-time/-/date-and-time-2.1.2.tgz#5b0e71296bbdd66ff1ce0e456c77d40f1479db5a" - integrity sha512-YlQUtuqYGPR58I7jzx4TIjknN9wCKjwewiylIp+P4xMuO23mlZje3Qe9gYCKp/6ncbeNpU8ZnPdhQNZnVphveQ== +date-and-time@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/date-and-time/-/date-and-time-1.0.0.tgz#0062394bdf6f44e961f0db00511cb19cdf3cc0a5" + integrity sha512-477D7ypIiqlXBkxhU7YtG9wWZJEQ+RUpujt2quTfgf4+E8g5fNUkB0QIL0bVyP5/TKBg8y55Hfa1R/c4bt3dEw== date-fns@^1.27.2: version "1.30.1" @@ -11163,9 +11836,9 @@ date-fns@^1.27.2: integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== date-fns@^2.16.1, date-fns@^2.18.0: - version "2.28.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" - integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== + version "2.19.0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.19.0.tgz#65193348635a28d5d916c43ec7ce6fbd145059e1" + integrity sha512-X3bf2iTPgCAQp9wvjOQytnf5vO5rESYRXlPIVcgSbtT5OTScPcsf9eZU+B/YIkKAtYr5WeCii58BgATrNitlWg== dateformat@^3.0.0, dateformat@^3.0.3: version "3.0.3" @@ -11173,19 +11846,19 @@ dateformat@^3.0.0, dateformat@^3.0.3: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dateformat@^4.5.0: - version "4.6.3" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + version "4.5.1" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz#c20e7a9ca77d147906b6dc2261a8be0a5bd2173c" + integrity sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q== dayjs@^1.10.4: - version "1.10.7" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" - integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== + version "1.10.4" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" + integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== debounce@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" - integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + version "1.2.0" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" + integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" @@ -11248,9 +11921,14 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decimal.js-light@^2.4.1: - version "2.5.1" - resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" - integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== + version "2.5.0" + resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.0.tgz#ca7faf504c799326df94b0ab920424fdfc125348" + integrity sha512-b3VJCbd2hwUpeRGG3Toob+CRo8W22xplipNhP3tN7TSVB/cyMX71P1vM2Xjc9H74uV6dS2hDDmo/rHq8L87Upg== + +decimal.js@^10.2.0: + version "10.2.0" + resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" + integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== decimal.js@^10.2.1: version "10.3.1" @@ -11307,17 +11985,17 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@0.6.0, deep-extend@^0.6.0: +deep-extend@0.6.0, deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + version "0.1.3" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@^4.2.2, deepmerge@~4.2.2: +deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== @@ -11342,9 +12020,9 @@ defer-to-connect@^1.0.1: integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + version "2.0.0" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== define-lazy-prop@^2.0.0: version "2.0.0" @@ -11463,9 +12141,9 @@ detect-indent@^5.0.0: integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + version "6.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== detect-libc@^1.0.3: version "1.0.3" @@ -11482,10 +12160,17 @@ detect-newline@^3.0.0: resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== +<<<<<<< HEAD detect-node@^2.0.4, detect-node@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== +======= +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== +>>>>>>> 76d216e74b (fixups) detect-port-alt@^1.1.6: version "1.1.6" @@ -11513,11 +12198,6 @@ diff-sequences@^26.6.2: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - diff2html@^2.7.0: version "2.12.2" resolved "https://registry.npmjs.org/diff2html/-/diff2html-2.12.2.tgz#356d35f9c87c42ebd11558bedf1c99c5b00886e8" @@ -11592,9 +12272,9 @@ dns-txt@^2.0.2: buffer-indexof "^1.0.0" docker-compose@^0.23.13: - version "0.23.17" - resolved "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.17.tgz#8816bef82562d9417dc8c790aa4871350f93a2ba" - integrity sha512-YJV18YoYIcxOdJKeFcCFihE6F4M2NExWM/d4S1ITcS9samHKnNUihz9kjggr0dNtsrbpFNc7/Yzd19DWs+m1xg== + version "0.23.13" + resolved "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.13.tgz#77d37bd05b6a966345f631e6d05e961c79514f06" + integrity sha512-/9fYC4g3AO+qsqxIZhmbVnFvJJPcYEV2yJbAPPXH+6AytU3urIY8lUAXOlvY8sl4u25pdKu1JrOfAmWC7lJDJg== dependencies: yaml "^1.10.2" @@ -11630,10 +12310,15 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: - version "0.5.11" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz#79d5846c4f90eba3e617d9031e921de9324f84ed" - integrity sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw== +dom-accessibility-api@^0.5.4, dom-accessibility-api@^0.5.6: + version "0.5.6" + resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9" + integrity sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw== + +dom-accessibility-api@^0.5.9: + version "0.5.10" + resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz#caa6d08f60388d0bb4539dd75fe458a9a1d0014c" + integrity sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g== dom-converter@^0.2.0: version "0.2.0" @@ -11650,12 +12335,12 @@ dom-helpers@^3.4.0: "@babel/runtime" "^7.1.2" dom-helpers@^5.0.1: - version "5.2.1" - resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" - integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + version "5.1.4" + resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz#4609680ab5c79a45f2531441f1949b79d6587f4b" + integrity sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A== dependencies: "@babel/runtime" "^7.8.7" - csstype "^3.0.2" + csstype "^2.6.7" dom-serializer@0: version "0.2.2" @@ -11666,18 +12351,18 @@ dom-serializer@0: entities "^2.0.0" dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + version "1.2.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" + integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== dependencies: domelementtype "^2.0.1" - domhandler "^4.2.0" + domhandler "^4.0.0" entities "^2.0.0" dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + version "0.1.1" + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= domain-browser@^1.1.1: version "1.2.0" @@ -11689,7 +12374,12 @@ domelementtype@1: resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1, domelementtype@^2.2.0: +domelementtype@^2.0.1, domelementtype@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + +domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== @@ -11701,10 +12391,17 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" - integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== +domhandler@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" + integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== + dependencies: + domelementtype "^2.1.0" + +domhandler@^4.2.0: + version "4.2.2" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" + integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== dependencies: domelementtype "^2.2.0" @@ -11726,7 +12423,7 @@ domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.5.2, domutils@^2.8.0: +domutils@^2.5.2, domutils@^2.6.0: version "2.8.0" resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -11763,9 +12460,9 @@ dotenv@^10.0.0: integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== dset@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/dset/-/dset-3.1.1.tgz#07de5af7a8d03eab337ad1a8ba77fe17bba61a8c" - integrity sha512-hYf+jZNNqJBD2GiMYb+5mqOIX4R4RRHXU3qWMWYN+rqcR2/YpRL2bUHr8C8fU+5DNvqYjJ8YvMGSLuVPWU1cNg== + version "3.1.0" + resolved "https://registry.npmjs.org/dset/-/dset-3.1.0.tgz#23feb6df93816ea452566308b1374d6e869b0d7b" + integrity sha512-7xTQ5DzyE59Nn+7ZgXDXjKAGSGmXZHqttMVVz1r4QNfmGpyj+cm2YtI3II0c/+4zS4a9yq2mBhgdeq2QnpcYlw== duplexer2@~0.1.4: version "0.1.4" @@ -11779,15 +12476,20 @@ duplexer3@^0.1.4: resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -duplexer@^0.1.1, duplexer@^0.1.2, duplexer@~0.1.1: +duplexer@^0.1.1, duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexer@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== duplexify@^4.0.0, duplexify@^4.1.1: - version "4.1.2" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== + version "4.1.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" + integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== dependencies: end-of-stream "^1.4.1" inherits "^2.0.3" @@ -11841,17 +12543,17 @@ elastic-builder@^2.16.0: lodash.isstring "^4.0.1" lodash.omit "^4.5.0" -electron-to-chromium@^1.4.71: - version "1.4.71" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6" - integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw== +electron-to-chromium@^1.4.17: + version "1.4.35" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.35.tgz#69aabb73d7030733e71c1e970ec16f5ceefbaea4" + integrity sha512-wzTOMh6HGFWeALMI3bif0mzgRrVGyP1BdFRx7IvWukFrSC5QVQELENuy+Fm2dCrAdQH9T3nuqr07n94nPDFBWA== elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -elliptic@^6.5.3: +elliptic@^6.0.0: version "6.5.4" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -11865,9 +12567,14 @@ elliptic@^6.5.3: minimalistic-crypto-utils "^1.0.1" emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + version "0.7.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" + integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" @@ -11948,15 +12655,22 @@ engine.io@~3.5.0: engine.io-parser "~2.2.0" ws "~7.4.2" +<<<<<<< HEAD enhanced-resolve@^5.9.2: version "5.9.2" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9" integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== +======= +enhanced-resolve@^5.8.3: + version "5.8.3" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" + integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== +>>>>>>> f9b03ab02f (fixups) dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.0, enquirer@^2.3.6: +enquirer@^2.3.0: version "2.3.6" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -11968,30 +12682,25 @@ ent@^2.2.0: resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +entities@^2.0.0, entities@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== entities@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== - env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + version "2.2.0" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== envinfo@^7.7.4: - version "7.8.1" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + version "7.7.4" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" + integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== eol@^0.9.1: version "0.9.1" @@ -12011,9 +12720,9 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" error-stack-parser@^2.0.6: - version "2.0.7" - resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57" - integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA== + version "2.0.6" + resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== dependencies: stackframe "^1.1.1" @@ -12022,7 +12731,29 @@ error@^10.4.0: resolved "https://registry.npmjs.org/error/-/error-10.4.0.tgz#6fcf0fd64bceb1e750f8ed9a3dd880f00e46a487" integrity sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw== -es-abstract@^1.17.2, es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1: +es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" + +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -12048,7 +12779,7 @@ es-abstract@^1.17.2, es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19 string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-module-lexer@^0.9.0, es-module-lexer@^0.9.3: +es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== @@ -12062,70 +12793,106 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.23.tgz#c89b3c50b4f47668dcbeb0b34ee4615258818e71" - integrity sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw== +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.53" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" -esbuild-darwin-64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.23.tgz#1c131e8cb133ed935ca32f824349a117c896a15b" - integrity sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug== +es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" -esbuild-darwin-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.23.tgz#3c6245a50109dd84953f53d7833bd3b4f0e8c6fa" - integrity sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw== +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" -esbuild-freebsd-64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.23.tgz#0cdc54e72d3dd9cd992f9c2960055e68a7f8650c" - integrity sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA== +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" -esbuild-freebsd-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.23.tgz#1d11faed3a0c429e99b7dddef84103eb509788b2" - integrity sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg== +esbuild-android-arm64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz#fb051169a63307d958aec85ad596cfc7d7770303" + integrity sha512-k1Uu4uC4UOFgrnTj2zuj75EswFSEBK+H6lT70/DdS4mTAOfs2ECv2I9ZYvr3w0WL0T4YItzJdK7fPNxcPw6YmQ== -esbuild-linux-32@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.23.tgz#fd9f033fc27dcab61100cb1eb1c936893a68c841" - integrity sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ== +esbuild-darwin-64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.22.tgz#615ea0a9de67b57a293a7128d7ac83ee307a856d" + integrity sha512-d8Ceuo6Vw6HM3fW218FB6jTY6O3r2WNcTAU0SGsBkXZ3k8SDoRLd3Nrc//EqzdgYnzDNMNtrWegK2Qsss4THhw== -esbuild-linux-64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.23.tgz#c04c438514f1359ecb1529205d0c836d4165f198" - integrity sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ== +esbuild-darwin-arm64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.22.tgz#82054dcfcecb15ccfd237093b8008e7745a99ad9" + integrity sha512-YAt9Tj3SkIUkswuzHxkaNlT9+sg0xvzDvE75LlBo4DI++ogSgSmKNR6B4eUhU5EUUepVXcXdRIdqMq9ppeRqfw== -esbuild-linux-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.23.tgz#d1b3ab2988ab0734886eb9e811726f7db099ab96" - integrity sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g== +esbuild-freebsd-64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.22.tgz#778a818c5b078d5cdd6bb6c0e0797217d196999b" + integrity sha512-ek1HUv7fkXMy87Qm2G4IRohN+Qux4IcnrDBPZGXNN33KAL0pEJJzdTv0hB/42+DCYWylSrSKxk3KUXfqXOoH4A== -esbuild-linux-arm@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.23.tgz#df7558b6a5076f5eb9fd387c8704f768b61d97fb" - integrity sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw== +esbuild-freebsd-arm64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.22.tgz#18da93b9f3db2e036f72383bfe73b28b73bb332c" + integrity sha512-zPh9SzjRvr9FwsouNYTqgqFlsMIW07O8mNXulGeQx6O5ApgGUBZBgtzSlBQXkHi18WjrosYfsvp5nzOKiWzkjQ== -esbuild-linux-mips64le@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.23.tgz#bb4c47fccc9493d460ffeb1f88e8a97a98a14f8b" - integrity sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw== +esbuild-linux-32@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.22.tgz#d0d5d9f5bb3536e17ac097e9512019c65b7c0234" + integrity sha512-SnpveoE4nzjb9t2hqCIzzTWBM0RzcCINDMBB67H6OXIuDa4KqFqaIgmTchNA9pJKOVLVIKd5FYxNiJStli21qg== -esbuild-linux-ppc64le@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.23.tgz#a332dbc8a1b4e30cfe1261bfaa5cef57c9c8c02a" - integrity sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag== +esbuild-linux-64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz#2773d540971999ea7f38107ef92fca753f6a8c30" + integrity sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg== -esbuild-linux-riscv64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.23.tgz#85675f3f931f5cd7cfb238fd82f77a62ffcb6d86" - integrity sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg== +esbuild-linux-arm64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.22.tgz#5d4480ce6d6bffab1dd76a23158f5a5ab33e7ba4" + integrity sha512-8q/FRBJtV5IHnQChO3LHh/Jf7KLrxJ/RCTGdBvlVZhBde+dk3/qS9fFsUy+rs3dEi49aAsyVitTwlKw1SUFm+A== -esbuild-linux-s390x@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.23.tgz#a526282a696e6d846f4c628f5315475518c0c0f0" - integrity sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA== +esbuild-linux-arm@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.22.tgz#c6391b3f7c8fa6d3b99a7e893ce0f45f3a921eef" + integrity sha512-soPDdbpt/C0XvOOK45p4EFt8HbH5g+0uHs5nUKjHVExfgR7du734kEkXR/mE5zmjrlymk5AA79I0VIvj90WZ4g== + +esbuild-linux-mips64le@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.22.tgz#2c8dabac355c502e86c38f9f292b3517d8e181f3" + integrity sha512-SiNDfuRXhGh1JQLLA9JPprBgPVFOsGuQ0yDfSPTNxztmVJd8W2mX++c4FfLpAwxuJe183mLuKf7qKCHQs5ZnBQ== + +esbuild-linux-ppc64le@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.22.tgz#69d71b2820d5c94306072dac6094bae38e77d1c0" + integrity sha512-6t/GI9I+3o1EFm2AyN9+TsjdgWCpg2nwniEhjm2qJWtJyJ5VzTXGUU3alCO3evopu8G0hN2Bu1Jhz2YmZD0kng== + +esbuild-linux-riscv64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.22.tgz#c0ec0fc3a23624deebf657781550d2329cec4213" + integrity sha512-AyJHipZKe88sc+tp5layovquw5cvz45QXw5SaDgAq2M911wLHiCvDtf/07oDx8eweCyzYzG5Y39Ih568amMTCQ== + +esbuild-linux-s390x@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.22.tgz#ec2af4572d63336cfb27f5a5c851fb1b6617dd91" + integrity sha512-Sz1NjZewTIXSblQDZWEFZYjOK6p8tV6hrshYdXZ0NHTjWE+lwxpOpWeElUGtEmiPcMT71FiuA9ODplqzzSxkzw== esbuild-loader@^2.18.0: version "2.18.0" @@ -12139,60 +12906,60 @@ esbuild-loader@^2.18.0: tapable "^2.2.0" webpack-sources "^2.2.0" -esbuild-netbsd-64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.23.tgz#8e456605694719aa1be4be266d6cd569c06dfaf5" - integrity sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g== +esbuild-netbsd-64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.22.tgz#0e283278e9fdbaa7f0930f93ee113d7759cd865e" + integrity sha512-TBbCtx+k32xydImsHxvFgsOCuFqCTGIxhzRNbgSL1Z2CKhzxwT92kQMhxort9N/fZM2CkRCPPs5wzQSamtzEHA== -esbuild-openbsd-64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.23.tgz#f2fc51714b4ddabc86e4eb30ca101dd325db2f7d" - integrity sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA== +esbuild-openbsd-64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.22.tgz#2a73bba04e16d8ef278fbe2be85248e12a2f2cc2" + integrity sha512-vK912As725haT313ANZZZN+0EysEEQXWC/+YE4rQvOQzLuxAQc2tjbzlAFREx3C8+uMuZj/q7E5gyVB7TzpcTA== -esbuild-sunos-64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.23.tgz#a408f33ea20e215909e20173a0fd78b1aaad1f8e" - integrity sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g== +esbuild-sunos-64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.22.tgz#8fe03513b8b2e682a6d79d5e3ca5849651a3c1d8" + integrity sha512-/mbJdXTW7MTcsPhtfDsDyPEOju9EOABvCjeUU2OJ7fWpX/Em/H3WYDa86tzLUbcVg++BScQDzqV/7RYw5XNY0g== -esbuild-windows-32@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.23.tgz#b9005bbff54dac3975ff355d5de2b5e37165d128" - integrity sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA== +esbuild-windows-32@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.22.tgz#a75df61e3e49df292a1842be8e877a3153ee644f" + integrity sha512-1vRIkuvPTjeSVK3diVrnMLSbkuE36jxA+8zGLUOrT4bb7E/JZvDRhvtbWXWaveUc/7LbhaNFhHNvfPuSw2QOQg== -esbuild-windows-64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.23.tgz#2b5a99befeaca6aefdad32d738b945730a60a060" - integrity sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g== +esbuild-windows-64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.22.tgz#d06cf8bbe4945b8bf95a730d871e54a22f635941" + integrity sha512-AxjIDcOmx17vr31C5hp20HIwz1MymtMjKqX4qL6whPj0dT9lwxPexmLj6G1CpR3vFhui6m75EnBEe4QL82SYqw== -esbuild-windows-arm64@0.14.23: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.23.tgz#edc560bbadb097eb45fc235aeacb942cb94a38c0" - integrity sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw== +esbuild-windows-arm64@0.14.22: + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.22.tgz#f8b1b05c548073be8413a5ecb12d7c2f6e717227" + integrity sha512-5wvQ+39tHmRhNpu2Fx04l7QfeK3mQ9tKzDqqGR8n/4WUxsFxnVLfDRBGirIfk4AfWlxk60kqirlODPoT5LqMUg== esbuild@^0.14.1, esbuild@^0.14.10, esbuild@^0.14.6: - version "0.14.23" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz#95e842cb22bc0c7d82c140adc16788aac91469fe" - integrity sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig== + version "0.14.22" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz#2b55fde89d7aa5aaaad791816d58ff9dfc5ed085" + integrity sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA== optionalDependencies: - esbuild-android-arm64 "0.14.23" - esbuild-darwin-64 "0.14.23" - esbuild-darwin-arm64 "0.14.23" - esbuild-freebsd-64 "0.14.23" - esbuild-freebsd-arm64 "0.14.23" - esbuild-linux-32 "0.14.23" - esbuild-linux-64 "0.14.23" - esbuild-linux-arm "0.14.23" - esbuild-linux-arm64 "0.14.23" - esbuild-linux-mips64le "0.14.23" - esbuild-linux-ppc64le "0.14.23" - esbuild-linux-riscv64 "0.14.23" - esbuild-linux-s390x "0.14.23" - esbuild-netbsd-64 "0.14.23" - esbuild-openbsd-64 "0.14.23" - esbuild-sunos-64 "0.14.23" - esbuild-windows-32 "0.14.23" - esbuild-windows-64 "0.14.23" - esbuild-windows-arm64 "0.14.23" + esbuild-android-arm64 "0.14.22" + esbuild-darwin-64 "0.14.22" + esbuild-darwin-arm64 "0.14.22" + esbuild-freebsd-64 "0.14.22" + esbuild-freebsd-arm64 "0.14.22" + esbuild-linux-32 "0.14.22" + esbuild-linux-64 "0.14.22" + esbuild-linux-arm "0.14.22" + esbuild-linux-arm64 "0.14.22" + esbuild-linux-mips64le "0.14.22" + esbuild-linux-ppc64le "0.14.22" + esbuild-linux-riscv64 "0.14.22" + esbuild-linux-s390x "0.14.22" + esbuild-netbsd-64 "0.14.22" + esbuild-openbsd-64 "0.14.22" + esbuild-sunos-64 "0.14.22" + esbuild-windows-32 "0.14.22" + esbuild-windows-64 "0.14.22" + esbuild-windows-arm64 "0.14.22" escalade@^3.1.1: version "3.1.1" @@ -12229,6 +12996,18 @@ escape-string-regexp@^5.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== +escodegen@^1.14.1: + version "1.14.3" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -12242,9 +13021,9 @@ escodegen@^2.0.0: source-map "~0.6.1" eslint-config-prettier@^8.3.0: - version "8.4.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.4.0.tgz#8e6d17c7436649e98c4c2189868562921ef563de" - integrity sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw== + version "8.3.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" + integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== eslint-formatter-friendly@^7.0.0: version "7.0.0" @@ -12265,10 +13044,19 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.1.1, eslint-module-utils@^2.7.2: - version "2.7.3" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== +eslint-module-utils@^2.1.1: + version "2.7.1" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" + integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ== + dependencies: + debug "^3.2.7" + find-up "^2.1.0" + pkg-dir "^2.0.0" + +eslint-module-utils@^2.7.2: + version "2.7.2" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129" + integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg== dependencies: debug "^3.2.7" find-up "^2.1.0" @@ -12319,9 +13107,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.12.0" eslint-plugin-jest@^25.3.4: - version "25.7.0" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" - integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== + version "25.3.4" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.3.4.tgz#2031dfe495be1463330f8b80096ddc91f8e6387f" + integrity sha512-CCnwG71wvabmwq/qkz0HWIqBHQxw6pXB1uqt24dxqJ9WB34pVg49bL1sjXphlJHgTMWGhBjN1PicdyxDxrfP5A== dependencies: "@typescript-eslint/experimental-utils" "^5.0.0" @@ -12405,10 +13193,10 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" + integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -12421,14 +13209,14 @@ eslint-utils@^3.0.0: eslint-visitor-keys "^2.0.0" eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + version "2.0.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" + integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== eslint-webpack-plugin@^2.6.0: version "2.6.0" @@ -12454,11 +13242,11 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^3.1.1" eslint@^8.6.0: - version "8.9.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz#a2a8227a99599adc4342fd9b854cb8d8d6412fdb" - integrity sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q== + version "8.7.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz#22e036842ee5b7cf87b03fe237731675b4d3633c" + integrity sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w== dependencies: - "@eslint/eslintrc" "^1.1.0" + "@eslint/eslintrc" "^1.0.5" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -12466,10 +13254,10 @@ eslint@^8.6.0: debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" + eslint-scope "^7.1.0" eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" + eslint-visitor-keys "^3.2.0" + espree "^9.3.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -12499,14 +13287,14 @@ esm@^3.2.25: resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== -espree@^9.3.1: - version "9.3.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" - integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== +espree@^9.2.0, espree@^9.3.0: + version "9.3.0" + resolved "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" + integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== dependencies: acorn "^8.7.0" acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.1.0" esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" @@ -12527,7 +13315,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -12548,9 +13336,9 @@ estree-walker@^1.0.1: integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + version "2.0.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz#f8e030fb21cefa183b44b7ad516b747434e7a3e0" + integrity sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg== esutils@^2.0.2: version "2.0.3" @@ -12562,6 +13350,14 @@ etag@~1.8.1: resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + event-source-polyfill@^1.0.25: version "1.0.25" resolved "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.25.tgz#d8bb7f99cb6f8119c2baf086d9f6ee0514b6d9c8" @@ -12585,7 +13381,12 @@ event-target-shim@^5.0.0: resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter2@^6.4.3, eventemitter2@^6.4.4: +eventemitter2@^6.4.3: + version "6.4.4" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b" + integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw== + +eventemitter2@^6.4.4: version "6.4.5" resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== @@ -12689,9 +13490,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: zen-observable "^0.8.15" exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + version "0.3.4" + resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== execa@4.1.0, execa@^4.0.0: version "4.1.0" @@ -12877,6 +13678,13 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -12925,16 +13733,16 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-files@11.0.0, extract-files@^11.0.0: + version "11.0.0" + resolved "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" + integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== + extract-files@9.0.0, extract-files@^9.0.0: version "9.0.0" resolved "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== -extract-files@^11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" - integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== - extract-zip@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" @@ -12946,15 +13754,25 @@ extract-zip@2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" +extract-zip@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + version "1.4.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-decode-uri-component@^1.0.1: version "1.0.1" @@ -12971,16 +13789,17 @@ fast-equals@^2.0.0: resolved "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.4.tgz#3add9410585e2d7364c2deeb6a707beadb24b927" integrity sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w== -fast-glob@^3.1.1, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== +fast-glob@^3.1.1: + version "3.2.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" + integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" + glob-parent "^5.1.0" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.2" + picomatch "^2.2.1" fast-json-parse@^1.0.3: version "1.0.3" @@ -12988,9 +13807,9 @@ fast-json-parse@^1.0.3: integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== fast-json-patch@^3.0.0-1: - version "3.1.0" - resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz#ec8cd9b9c4c564250ec8b9140ef7a55f70acaee6" - integrity sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA== + version "3.0.0-1" + resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.0.0-1.tgz#4c68f2e7acfbab6d29d1719c44be51899c93dabb" + integrity sha512-6pdFb07cknxvPzCeLsFHStEy+MysPJPgZQ9LbQ/2O67unQF93SNqfdSqnPPl71YMHX+AD8gbl7iuoGFzHEdDuw== fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" @@ -13007,7 +13826,12 @@ fast-redact@^2.0.0: resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-2.1.0.tgz#dfe3c1ca69367fb226f110aa4ec10ec85462ffdf" integrity sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A== -fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.1.1: +fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.0.7: + version "2.0.8" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" + integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== + +fast-safe-stringify@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== @@ -13035,9 +13859,9 @@ fastest-stable-stringify@^2.0.2: integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.6.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791" + integrity sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw== dependencies: reusify "^1.0.4" @@ -13049,9 +13873,9 @@ fault@^1.0.0: format "^0.2.0" faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + version "0.11.3" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" @@ -13068,17 +13892,17 @@ fbjs-css-vars@^1.0.0: integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== fbjs@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" - integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== + version "3.0.0" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165" + integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg== dependencies: - cross-fetch "^3.1.5" + cross-fetch "^3.0.4" fbjs-css-vars "^1.0.0" loose-envify "^1.0.0" object-assign "^4.1.0" promise "^7.1.1" setimmediate "^1.0.5" - ua-parser-js "^0.7.30" + ua-parser-js "^0.7.18" fd-slicer@~1.1.0: version "1.1.0" @@ -13088,9 +13912,9 @@ fd-slicer@~1.1.0: pend "~1.2.0" fecha@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" - integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== + version "4.2.0" + resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" + integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== figures@^1.7.0: version "1.7.0" @@ -13107,7 +13931,7 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0, figures@^3.2.0: +figures@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -13148,9 +13972,9 @@ filelist@^1.0.1: minimatch "^3.0.4" filesize@^8.0.6: - version "8.0.7" - resolved "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" - integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + version "8.0.6" + resolved "https://registry.npmjs.org/filesize/-/filesize-8.0.6.tgz#5f0c27aa1b507fa7d9f72c912a774ca6a44111b1" + integrity sha512-sHvRqTiwdmcuzqet7iVwsbwF6UrV3wIgDf2SHNdY1Hgl8PC45HZg/0xtdw6U2izIV4lccnrY9ftl6wZFNdjYMg== fill-range@^4.0.0: version "4.0.0" @@ -13287,14 +14111,14 @@ flatstr@^1.0.12: integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + version "3.1.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== flow-parser@0.*: - version "0.172.0" - resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.172.0.tgz#9f5ee62ebf6bad689d5de0b6b98445d8cf030a2f" - integrity sha512-WWqgvuJgD9Y1n2su9D73m0g5kQ4XVl8Dwk6DeW5V6bjt4XMtVLzSHg35s3iiZOvShY+7w7l8FzlK81PGXRcIYQ== + version "0.152.0" + resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.152.0.tgz#a627aec1fdcfa243e2016469e44284a98169b996" + integrity sha512-qRXGE3ztuhyI2ovi4Ixwq7/GUYvKX9wmFdwBof2q5pWHteuveexFrlbwZxSonC0dWz2znA6sW+vce4RXgYLnnQ== fn.name@1.x.x: version "1.1.0" @@ -13302,9 +14126,9 @@ fn.name@1.x.x: integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== follow-redirects@^1.0.0, follow-redirects@^1.14.0: - version "1.14.9" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== + version "1.14.8" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" + integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== for-in@^1.0.2: version "1.0.2" @@ -13341,9 +14165,9 @@ fork-ts-checker-webpack-plugin@^6.5.0: tapable "^1.0.0" fork-ts-checker-webpack-plugin@^7.0.0-alpha.8: - version "7.2.1" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.1.tgz#c37a538e12730fe11fd725bcf0fce29487950833" - integrity sha512-uOfQdg/iQ8iokQ64qcbu8iZb114rOmaKLQFu7hU14/eJaKgsP91cQ7ts7v2iiDld6TzDe84Meksha8/MkWiCyw== + version "7.1.1" + resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.1.1.tgz#9806c04f3aecaec8c9e8872806cd1f26d50d92a8" + integrity sha512-MgAv1g6+HLXz1iq2AZRfBjDhwBwk1HRSjuhNiMs8ax/3tsFo0rHedKwuE6ok44sJ5F5VgwPZae8gq0wiBAqYRw== dependencies: "@babel/code-frame" "^7.16.7" chalk "^4.1.2" @@ -13357,7 +14181,12 @@ fork-ts-checker-webpack-plugin@^7.0.0-alpha.8: semver "^7.3.5" tapable "^2.2.1" -form-data-encoder@^1.4.3, form-data-encoder@^1.7.1: +form-data-encoder@^1.4.3: + version "1.6.0" + resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.6.0.tgz#9dd1f479836c1b1b47201667c68f8daafa800943" + integrity sha512-P97AVaOB8hZaniiKK3f46zxQcchQXI8EgBnX+2+719gLv5ZbDSf3J1XtIuAQ8xbGLU4vZYhy7xwhFtK8U5u9Nw== + +form-data-encoder@^1.7.1: version "1.7.1" resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== @@ -13381,9 +14210,9 @@ form-data@^2.3.2, form-data@^2.5.0: mime-types "^2.1.12" form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + version "3.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -13403,7 +14232,15 @@ format@^0.2.0: resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= -formdata-node@^4.0.0, formdata-node@^4.3.1: +formdata-node@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.0.tgz#77be2add9092cbd1e1f4d35bc3293a89be117a04" + integrity sha512-TwqhWUZd2jB5l0kUhhcy1XYNsXq46NH6k60zmiu7xsxMztul+cCMuPSAQrSDV62zznhBKJdA9O+zeWj5i5Pbfg== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.1" + +formdata-node@^4.3.1: version "4.3.2" resolved "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.2.tgz#0262e94931e36db7239c2b08bdb6aaf18ec47d21" integrity sha512-k7lYJyzDOSL6h917favP8j1L0/wNyylzU+x+1w4p5haGVHNlP58dbpdJhiCUsDbWsa9HwEtLp89obQgXl2e0qg== @@ -13563,9 +14400,9 @@ gauge@^3.0.0: wide-align "^1.1.2" gauge@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.1.tgz#82984bc08c90357d60b0a46c03a296beb1affec4" - integrity sha512-zJ4jePUHR8cceduZ53b6temRalyGpkC2Kc2r3ecNphmL+uWNoJ3YcOcUjpbG6WwoE/Ef6/+aEZz63neI2WIa1Q== + version "4.0.0" + resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz#afba07aa0374a93c6219603b1fb83eaa2264d8f8" + integrity sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw== dependencies: ansi-regex "^5.0.1" aproba "^1.0.3 || ^2.0.0" @@ -13592,24 +14429,37 @@ gauge@~2.7.3: wide-align "^1.1.0" gaxios@^4.0.0: - version "4.3.2" - resolved "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz#845827c2dc25a0213c8ab4155c7a28910f5be83f" - integrity sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q== + version "4.0.1" + resolved "https://registry.npmjs.org/gaxios/-/gaxios-4.0.1.tgz#bc7b205a89d883452822cc75e138620c35e3291e" + integrity sha512-jOin8xRZ/UytQeBpSXFqIzqU7Fi5TqgPNLlUsSB8kjJ76+FiGBfImF8KJu++c6J4jOldfJUtt0YmkRj2ZpSHTQ== dependencies: abort-controller "^3.0.0" extend "^3.0.2" https-proxy-agent "^5.0.0" is-stream "^2.0.0" - node-fetch "^2.6.1" + node-fetch "^2.3.0" gcp-metadata@^4.2.0: - version "4.3.1" - resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" - integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== + version "4.2.1" + resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz#31849fbcf9025ef34c2297c32a89a1e7e9f2cd62" + integrity sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw== dependencies: gaxios "^4.0.0" json-bigint "^1.0.0" +gcs-resumable-upload@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-3.3.0.tgz#d1a866173f9b47e045d4406cafaa658dbb01e624" + integrity sha512-MQKWi+9hOSTyg5/SI1NBW4gAjL1wlkoevHefvr1PCBBXH4uKYLsug5qRrcotWKolDPLfWS51cWaHRN0CTtQNZw== + dependencies: + abort-controller "^3.0.0" + configstore "^5.0.0" + extend "^3.0.2" + gaxios "^4.0.0" + google-auth-library "^7.0.0" + pumpify "^2.0.0" + stream-events "^1.0.4" + generate-function@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" @@ -13617,12 +14467,12 @@ generate-function@^2.3.1: dependencies: is-property "^1.0.2" -generic-names@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" - integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== dependencies: - loader-utils "^3.2.0" + loader-utils "^1.1.0" gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -13656,11 +14506,6 @@ get-monorepo-packages@^1.1.0: globby "^7.1.1" load-json-file "^4.0.0" -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - get-pkg-repo@^4.0.0: version "4.2.1" resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" @@ -13689,16 +14534,16 @@ get-stream@^4.0.0, get-stream@^4.1.0: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + version "5.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== dependencies: pump "^3.0.0" get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + version "6.0.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== get-symbol-description@^1.0.0: version "1.0.0" @@ -13733,9 +14578,9 @@ getpass@^0.1.1: assert-plus "^1.0.0" git-raw-commits@^2.0.8: - version "2.0.11" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" - integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== + version "2.0.10" + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" + integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== dependencies: dargs "^7.0.0" lodash "^4.17.15" @@ -13760,12 +14605,12 @@ git-semver-tags@^4.1.1: semver "^6.0.0" git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== + version "4.0.1" + resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" + integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== dependencies: is-ssh "^1.3.0" - parse-url "^6.0.0" + parse-url "^5.0.0" git-url-parse@^11.4.4, git-url-parse@^11.6.0: version "11.6.0" @@ -13781,12 +14626,16 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +<<<<<<< HEAD github-from-package@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: +======= +glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.2: +>>>>>>> 76d216e74b (fixups) version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -13866,9 +14715,9 @@ globals@^11.1.0, globals@^11.12.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.12.1" - resolved "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" - integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== + version "13.9.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" + integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== dependencies: type-fest "^0.20.2" @@ -13885,15 +14734,15 @@ globby@11.0.3: slash "^3.0.0" globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@^11.0.3, globby@^11.0.4: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + version "11.0.4" + resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" slash "^3.0.0" globby@^7.1.1: @@ -13908,10 +14757,10 @@ globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" -google-auth-library@^7.0.0, google-auth-library@^7.6.1, google-auth-library@^7.9.2: - version "7.12.0" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.12.0.tgz#7965db6bc20cb31f2df05a08a296bbed6af69426" - integrity sha512-RS/whvFPMoF1hQNxnoVET3DWKPBt1Xgqe2rY0k+Jn7TNhoHlwdnSe7Rlcbo2Nub3Mt2lUVz26X65aDQrWp6x8w== +google-auth-library@^7.0.0, google-auth-library@^7.0.2, google-auth-library@^7.6.1: + version "7.11.0" + resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.11.0.tgz#b63699c65037310a424128a854ba7e736704cbdb" + integrity sha512-3S5jn2quRumvh9F/Ubf7GFrIq71HZ5a6vqosgdIu105kkk0WtSqc2jGCRqtWWOLRS8SX3AHACMOEDxhyWAQIcg== dependencies: arrify "^2.0.0" base64-js "^1.3.0" @@ -13923,12 +14772,12 @@ google-auth-library@^7.0.0, google-auth-library@^7.6.1, google-auth-library@^7.9 jws "^4.0.0" lru-cache "^6.0.0" -google-gax@^2.24.1: - version "2.29.7" - resolved "https://registry.npmjs.org/google-gax/-/google-gax-2.29.7.tgz#d238dad424f40f6809205dee3c7d4d6e61511e8b" - integrity sha512-yC0Q4OqX6s081jV72Idt9sxZnuRHOjg0SR0FFH15gT3LDE2u/78xqLjZwa3VuprBvaOLM29jzU19Vv4I7E8ETQ== +google-gax@^2.12.0, google-gax@^2.24.1: + version "2.28.1" + resolved "https://registry.npmjs.org/google-gax/-/google-gax-2.28.1.tgz#99bc234b5769d901d70959d40bd1651729eb4a34" + integrity sha512-2Xjd3FrjlVd6Cmw2B2Aicpc/q92SwTpIOvxPUlnRg9w+Do8nu7UR+eQrgoKlo2FIUcUuDTvppvcx8toND0pK9g== dependencies: - "@grpc/grpc-js" "~1.5.0" + "@grpc/grpc-js" "~1.4.0" "@grpc/proto-loader" "^0.6.1" "@types/long" "^4.0.0" abort-controller "^3.0.0" @@ -13938,11 +14787,11 @@ google-gax@^2.24.1: is-stream-ended "^0.1.4" node-fetch "^2.6.1" object-hash "^2.1.1" - proto3-json-serializer "^0.1.8" + proto3-json-serializer "^0.1.5" protobufjs "6.11.2" retry-request "^4.0.0" -google-p12-pem@^3.1.3: +google-p12-pem@^3.0.3: version "3.1.3" resolved "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz#5497998798ee86c2fc1f4bb1f92b7729baf37537" integrity sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ== @@ -13994,18 +14843,18 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12: - version "1.5.20" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.5.20.tgz#6d85f7e921676cced881b1a2ea22caa211ed9c1d" - integrity sha512-cHXWN8W1npsQxY0N0hxfPzqWyP572Xiz04O1KANslS9uvlCaQ0YBfmUExRnPr85qI1a4s701wlkFwUViQHukoQ== + version "1.5.16" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.5.16.tgz#76876e6a9c07b7be26b9126b7c6801d6a7e27e3b" + integrity sha512-G1ucZ+1GS6Soq+ftr7eOihy6BcmJHYo29j1/GxXKclUr/z768WWjjIqDcF1/+geI0KOzVeEKkceA1bgT5hG4oQ== dependencies: "@graphiql/toolkit" "^0.4.2" codemirror "^5.58.2" - codemirror-graphql "^1.2.12" + codemirror-graphql "^1.2.11" copy-to-clipboard "^3.2.0" dset "^3.1.0" entities "^2.0.0" escape-html "^1.0.3" - graphql-language-service "^4.1.5" + graphql-language-service "^4.1.4" markdown-it "^12.2.0" graphlib@^2.1.8: @@ -14016,15 +14865,15 @@ graphlib@^2.1.8: lodash "^4.17.15" graphql-config@^3.0.2: - version "3.4.1" - resolved "https://registry.npmjs.org/graphql-config/-/graphql-config-3.4.1.tgz#59f937a1b4d3a3c2dcdb27ddf5b4d4d4b2c6e9e1" - integrity sha512-g9WyK4JZl1Ko++FSyE5Ir2g66njfxGzrDDhBOwnkoWf/t3TnnZG6BBkWP+pkqVJ5pqMJGPKHNrbew8jRxStjhw== + version "3.3.0" + resolved "https://registry.npmjs.org/graphql-config/-/graphql-config-3.3.0.tgz#24c3672a427cb67c0c717ca3b9d70e9f0c9e752b" + integrity sha512-mSQIsPMssr7QrgqhnjI+CyVH6oQgCrgS6irHsTvwf7RFDRnR2k9kqpQOQgVoOytBSn0DOYryS0w0SAg9xor/Jw== dependencies: "@endemolshinegroup/cosmiconfig-typescript-loader" "3.0.2" "@graphql-tools/graphql-file-loader" "^6.0.0" "@graphql-tools/json-file-loader" "^6.0.0" "@graphql-tools/load" "^6.0.0" - "@graphql-tools/merge" "6.0.0 - 6.2.14" + "@graphql-tools/merge" "^6.0.0" "@graphql-tools/url-loader" "^6.0.0" "@graphql-tools/utils" "^7.0.0" cosmiconfig "7.0.0" @@ -14049,11 +14898,6 @@ graphql-config@^4.1.0: minimatch "3.0.4" string-env-interpolation "1.0.1" -graphql-executor@0.0.18: - version "0.0.18" - resolved "https://registry.npmjs.org/graphql-executor/-/graphql-executor-0.0.18.tgz#6aa4b39e1ca773e159c2a602621e90606df0109a" - integrity sha512-upUSl7tfZCZ5dWG1XkOvpG70Yk3duZKcCoi/uJso4WxJVT6KIrcK4nZ4+2X/hzx46pL8wAukgYHY6iNmocRN+g== - graphql-language-service-interface@^2.10.2: version "2.10.2" resolved "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.10.2.tgz#de9386f699e446320256175e215cdc10ccf9f9b7" @@ -14089,10 +14933,10 @@ graphql-language-service-utils@^2.7.1: graphql-language-service-types "^1.8.7" nullthrows "^1.0.0" -graphql-language-service@^4.1.5: - version "4.1.5" - resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-4.1.5.tgz#26964e4fcc62e2d850f2b931bef03b91bdf9a6df" - integrity sha512-6vvZ+4L1xMNpQdlt6a9BaEzZD3ZIiaTmFdjKu81UTIVRh02QKfbW6tcz4UJNTY+4LsTWjR1rNtG3H4pVNrKJ2Q== +graphql-language-service@^4.1.4: + version "4.1.4" + resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-4.1.4.tgz#9be998e94c6c2950d4cde5ab07bcd63969afc176" + integrity sha512-LJk1vwwWwh8onewIzjbXXfa7C5mI6tNN67yztFbmQmfDQv1naZfqKLitudQWaDwJgLqAlpKIefRaeU3cNYHRFQ== dependencies: graphql-language-service-interface "^2.10.2" graphql-language-service-parser "^1.10.4" @@ -14110,9 +14954,9 @@ graphql-modules@^2.0.0: ramda "^0.27.1" graphql-request@^3.3.0: - version "3.7.0" - resolved "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz#c7406e537084f8b9788541e3e6704340ca13055b" - integrity sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ== + version "3.4.0" + resolved "https://registry.npmjs.org/graphql-request/-/graphql-request-3.4.0.tgz#3a400cd5511eb3c064b1873afb059196bbea9c2b" + integrity sha512-acrTzidSlwAj8wBNO7Q/UQHS8T+z5qRGquCQRv9J1InwR01BBWV9ObnoE+JS5nCCEj8wSGS0yrDXVDoRiKZuOg== dependencies: cross-fetch "^3.0.6" extract-files "^9.0.0" @@ -14136,14 +14980,14 @@ graphql-type-json@^0.3.2: integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== graphql-ws@^4.4.1: - version "4.9.0" - resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.9.0.tgz#5cfd8bb490b35e86583d8322f5d5d099c26e365c" - integrity sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag== + version "4.7.0" + resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.7.0.tgz#b323fbf35a3736eed85dac24c0054d6d10c93e62" + integrity sha512-Md8SsmC9ZlsogFPd3Ot8HbIAAqsHh8Xoq7j4AmcIat1Bh6k91tjVyQvA0Au1/BolXSYq+RDvib6rATU2Hcf1Xw== graphql-ws@^5.4.1: - version "5.6.0" - resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.6.0.tgz#8914d0c0a7be0cc3e8fd486ea8a148e500b2ff29" - integrity sha512-Kz/4z1u9yGKWMtzlvia9wW8AJGjx68OyCCV40dabYq1OeyUxgU9t8Ll43vLAje7TYiLwZSwGbvtHviHaPyGYxw== + version "5.5.5" + resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.5.5.tgz#f375486d3f196e2a2527b503644693ae3a8670a9" + integrity sha512-hvyIS71vs4Tu/yUYHPvGXsTgo0t3arU820+lT5VjZS2go0ewp2LqyCgxEN56CzOG7Iys52eRhHBiD1gGRdiQtw== graphql@^15.5.1: version "15.8.0" @@ -14166,13 +15010,14 @@ growly@^1.3.0: integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= gtoken@^5.0.4: - version "5.3.2" - resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" - integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== + version "5.1.0" + resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.1.0.tgz#4ba8d2fc9a8459098f76e7e8fd7beaa39fda9fe4" + integrity sha512-4d8N6Lk8TEAHl9vVoRVMh9BNOKWVgl2DdNtr3428O75r3QFrF/a5MMu851VmK0AA8+iSvbwRv69k5XnMLURGhg== dependencies: gaxios "^4.0.0" - google-p12-pem "^3.1.3" + google-p12-pem "^3.0.3" jws "^4.0.0" + mime "^2.2.0" gzip-size@^6.0.0: version "6.0.0" @@ -14182,9 +15027,9 @@ gzip-size@^6.0.0: duplexer "^0.1.2" handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + version "2.0.0" + resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.7.3, handlebars@^4.7.7: version "4.7.7" @@ -14204,11 +15049,11 @@ har-schema@^2.0.0: integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + version "5.1.3" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== dependencies: - ajv "^6.12.3" + ajv "^6.5.5" har-schema "^2.0.0" hard-rejection@^2.1.0: @@ -14217,9 +15062,9 @@ hard-rejection@^2.1.0: integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== harmony-reflect@^1.4.6: - version "1.6.2" - resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" - integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== + version "1.6.1" + resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== has-ansi@^2.0.0: version "2.0.0" @@ -14228,7 +15073,7 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.1: +has-bigints@^1.0.0, has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== @@ -14255,7 +15100,7 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== @@ -14316,13 +15161,12 @@ has@^1.0.3: function-bind "^1.1.1" hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + version "3.0.4" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + inherits "^2.0.1" + safe-buffer "^5.0.1" hash-it@^5.0.0: version "5.0.2" @@ -14343,9 +15187,9 @@ hash.js@^1.0.0, hash.js@^1.0.3: minimalistic-assert "^1.0.1" hast-util-parse-selector@^2.0.0: - version "2.2.5" - resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" - integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + version "2.2.4" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974" + integrity sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA== hast-util-whitespace@^2.0.0: version "2.0.0" @@ -14391,7 +15235,12 @@ hexoid@1.0.0: resolved "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== -highlight.js@^10.1.0, highlight.js@^10.4.1, highlight.js@^10.6.0, highlight.js@^10.7.2, highlight.js@~10.7.0: +highlight.js@^10.1.0, highlight.js@^10.4.1, highlight.js@^10.6.0: + version "10.7.2" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360" + integrity sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg== + +highlight.js@^10.7.2, highlight.js@~10.7.0: version "10.7.3" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== @@ -14437,6 +15286,13 @@ hosted-git-info@^2.1.4: resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== +hosted-git-info@^3.0.6: + version "3.0.8" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== + dependencies: + lru-cache "^6.0.0" + hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: version "4.1.0" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" @@ -14472,9 +15328,9 @@ html-entities@^2.3.2: integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + version "2.0.1" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.1.tgz#beed86b5d2b921e92533aa11bce6d8e3b583dee7" + integrity sha512-hNX23TjWwD3q56HpWjUHOKj1+4KKlnjv9PcmBUYKVpga+2cnb9nDx/B1o0yO4n+RZXZdiNxzx6B24C9aNMTkkQ== html-minifier-terser@^6.0.2: version "6.1.0" @@ -14552,12 +15408,17 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" -http-parser-js@>=0.5.1: - version "0.5.5" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" - integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= -http-proxy-agent@^4.0.1: +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== @@ -14576,9 +15437,15 @@ http-proxy-agent@^5.0.0: debug "4" http-proxy-middleware@^2.0.0: +<<<<<<< HEAD version "2.0.4" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz#03af0f4676d172ae775cb5c33f592f40e1a4e07a" integrity sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg== +======= + version "2.0.2" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.2.tgz#94d7593790aad6b3de48164f13792262f656c332" + integrity sha512-XtmDN5w+vdFTBZaYhdJAbMqn0DP/EhkUaAeo963mojwpKMMbw6nivtFKw07D7DDOH745L5k0VL0P8KRYNEVF/g== +>>>>>>> f9b03ab02f (fixups) dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" @@ -14614,9 +15481,9 @@ http-signature@~1.3.6: sshpk "^1.14.1" http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + version "1.0.0-beta.5.2" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.0.0" @@ -14667,9 +15534,9 @@ husky@^7.0.4: integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== hyphenate-style-name@^1.0.2, hyphenate-style-name@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" - integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + version "1.0.3" + resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48" + integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ== iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" @@ -14718,9 +15585,9 @@ ignore-by-default@^1.0.1: integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= ignore-walk@^3.0.3: - version "3.0.4" - resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" - integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== + version "3.0.3" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: minimatch "^3.0.4" @@ -14779,9 +15646,9 @@ import-cwd@^3.0.0: import-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + version "3.2.1" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -14809,9 +15676,9 @@ import-lazy@~4.0.0: integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + version "3.0.2" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -14821,6 +15688,13 @@ imurmurhash@^0.1.4: resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indefinite-observable@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz#574af29bfbc17eb5947793797bddc94c9d859400" + integrity sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ== + dependencies: + symbol-observable "1.2.0" + indent-string@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" @@ -14831,6 +15705,11 @@ indent-string@^4.0.0: resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + indexof@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" @@ -14875,15 +15754,16 @@ ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== init-package-json@^2.0.2: - version "2.0.5" - resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz#78b85f3c36014db42d8f32117252504f68022646" - integrity sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA== + version "2.0.2" + resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.2.tgz#d81a7e6775af9b618f20bba288e440b8d1ce05f3" + integrity sha512-PO64kVeArePvhX7Ff0jVWkpnE1DfGRvaWcStYrPugcJz9twQGYibagKJuIMHCX7ENcp0M6LJlcjLBuLD5KeJMg== dependencies: - npm-package-arg "^8.1.5" + glob "^7.1.1" + npm-package-arg "^8.1.0" promzard "^0.3.0" read "~1.0.1" - read-package-json "^4.1.1" - semver "^7.3.5" + read-package-json "^3.0.0" + semver "^7.3.2" validate-npm-package-license "^3.0.4" validate-npm-package-name "^3.0.0" @@ -14893,9 +15773,9 @@ inline-style-parser@0.1.1: integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== inline-style-prefixer@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz#c5c0e43ba8831707afc5f5bbfd97edf45c1fa7ae" - integrity sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ== + version "6.0.0" + resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz#f73d5dbf2855733d6b153a4d24b7b47a73e9770b" + integrity sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg== dependencies: css-in-js-utils "^2.0.0" @@ -14999,6 +15879,11 @@ ioredis@^4.28.5: redis-parser "^3.0.0" standard-as-callback "^2.1.0" +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -15014,6 +15899,11 @@ ipaddr.js@^2.0.1: resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -15041,6 +15931,11 @@ is-alphabetical@^1.0.0: resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== +is-alphabetical@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz#ef6e2caea57c63450fffc7abb6cbdafc5eb96e96" + integrity sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w== + is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -15049,13 +15944,18 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== +is-alphanumerical@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz#0fbfeb6a72d21d91143b3d182bf6cf5909ee66f6" + integrity sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== is-arrayish@^0.2.1: version "0.2.1" @@ -15068,11 +15968,9 @@ is-arrayish@^0.3.1: integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== is-binary-path@~2.1.0: version "2.1.0" @@ -15082,12 +15980,11 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + version "1.1.0" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bind "^1.0.0" is-buffer@^1.1.5: version "1.1.6" @@ -15095,11 +15992,16 @@ is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + version "2.0.4" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== -is-callable@^1.1.4, is-callable@^1.2.4: +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-callable@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== @@ -15118,7 +16020,14 @@ is-ci@^3.0.0, is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1: +is-core-module@^2.1.0, is-core-module@^2.2.0: + version "2.8.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" + integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== + dependencies: + has "^1.0.3" + +is-core-module@^2.8.0: version "2.8.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -15140,17 +16049,20 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" + version "1.0.2" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-decimal@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== +is-decimal@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz#db1140337809fd043a056ae40a9bd1cdc563034c" + integrity sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -15232,11 +16144,9 @@ is-generator-fn@^2.0.0: integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" + version "1.0.8" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" + integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== is-glob@4.0.1: version "4.0.1" @@ -15257,6 +16167,11 @@ is-hexadecimal@^1.0.0: resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-hexadecimal@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz#8e1ec9f48fe3eabd90161109856a23e0907a65d5" + integrity sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug== + is-in-browser@^1.0.2, is-in-browser@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" @@ -15293,9 +16208,9 @@ is-module@^1.0.0: integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= is-negative-zero@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + version "2.0.1" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-node-process@^1.0.1: version "1.0.1" @@ -15308,11 +16223,9 @@ is-npm@^5.0.0: integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" + version "1.0.4" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== is-number@^3.0.0: version "3.0.0" @@ -15332,9 +16245,9 @@ is-obj@^2.0.0: integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + version "1.0.1" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= is-observable@^1.1.0: version "1.1.0" @@ -15380,11 +16293,23 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== + dependencies: + isobject "^4.0.0" + is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -15395,7 +16320,7 @@ is-promise@4.0.0, is-promise@^4.0.0: resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-promise@^2.1.0: +is-promise@^2.1.0, is-promise@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== @@ -15412,7 +16337,15 @@ is-reference@^1.2.1: dependencies: "@types/estree" "*" -is-regex@^1.0.4, is-regex@^1.1.4: +is-regex@^1.0.4, is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -15427,6 +16360,11 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" +is-resolvable@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + is-root@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" @@ -15445,9 +16383,9 @@ is-shared-array-buffer@^1.0.1: integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" - integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== + version "1.3.1" + resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz#f349a8cadd24e65298037a522cf7520f2e81a0f3" + integrity sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg== dependencies: protocols "^1.1.0" @@ -15462,11 +16400,16 @@ is-stream@^1.1.0: integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + version "2.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.5, is-string@^1.0.7: +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== @@ -15474,18 +16417,18 @@ is-string@^1.0.5, is-string@^1.0.7: has-tostringtag "^1.0.0" is-subdir@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz#b791cd28fab5202e91a08280d51d9d7254fd20d4" - integrity sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== + version "1.1.1" + resolved "https://registry.npmjs.org/is-subdir/-/is-subdir-1.1.1.tgz#423e66902f9c5f159b9cc4826c820df083059538" + integrity sha512-VYpq0S7gPBVkkmfwkvGnx1EL9UVIo87NQyNcgMiNUdQCws3CJm5wj2nB+XPL7zigvjxhuZgp3bl2yBcKkSIj1w== dependencies: better-path-resolve "1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + version "1.0.3" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.1" is-text-path@^1.0.1: version "1.0.1" @@ -15494,16 +16437,16 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" -is-typed-array@^1.1.3, is-typed-array@^1.1.7: - version "1.1.8" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" - integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== +is-typed-array@^1.1.3: + version "1.1.5" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" + integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== dependencies: - available-typed-arrays "^1.0.5" + available-typed-arrays "^1.0.2" call-bind "^1.0.2" - es-abstract "^1.18.5" + es-abstract "^1.18.0-next.2" foreach "^2.0.5" - has-tostringtag "^1.0.0" + has-symbols "^1.0.1" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -15535,11 +16478,11 @@ is-utf8@^0.2.0, is-utf8@^0.2.1: integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-weakref@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + version "1.0.1" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" + integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.0" is-window@^1.0.2: version "1.0.2" @@ -15600,6 +16543,11 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== + isomorphic-dompurify@^0.13.0: version "0.13.0" resolved "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-0.13.0.tgz#a4dde357e8531018a85ebb2dd56c4794b6739ba3" @@ -15625,9 +16573,9 @@ isomorphic-form-data@^2.0.0: form-data "^2.3.2" isomorphic-git@^1.8.0: - version "1.11.2" - resolved "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.11.2.tgz#58fd47f3e797ed9cc1364bb2cae02355499d6bea" - integrity sha512-7gSW+dMftHYyDufoeLCOagxlN0KsAYvR/qddSke9pnPH8vwL4OwqQ2BvkG0O02OnEFqg1pZXyIzBPFBfOMYXUA== + version "1.10.0" + resolved "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.10.0.tgz#59a4604d1190d1e7fc52172085da25e6a428bc07" + integrity sha512-CijspEYaOQAnsHWXyq8ICZXzLJ/1wYQAa0jdfLcugA/68oNzrxykjGZz8Up7B8huA1VfkFHm4VviExtj/zpViw== dependencies: async-lock "^1.1.0" clean-git-ref "^2.0.1" @@ -15639,7 +16587,7 @@ isomorphic-git@^1.8.0: pify "^4.0.1" readable-stream "^3.4.0" sha.js "^2.4.9" - simple-get "^4.0.1" + simple-get "^3.0.2" isomorphic-ws@4.0.1, isomorphic-ws@^4.0.1: version "4.0.1" @@ -15651,12 +16599,12 @@ isstream@~0.1.2: resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== -istanbul-lib-instrument@^4.0.3: +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== @@ -15666,17 +16614,6 @@ istanbul-lib-instrument@^4.0.3: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -15687,9 +16624,9 @@ istanbul-lib-report@^3.0.0: supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + version "4.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== dependencies: debug "^4.1.1" istanbul-lib-coverage "^3.0.0" @@ -15794,16 +16731,6 @@ jest-diff@^26.0.0, jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-diff@^27.0.0: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - jest-docblock@^26.0.0: version "26.0.0" resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" @@ -15852,11 +16779,6 @@ jest-get-type@^26.3.0: resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - jest-haste-map@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" @@ -16110,9 +17032,9 @@ jest-watcher@^26.6.2: string-length "^4.0.1" jest-when@^3.1.0: - version "3.5.1" - resolved "https://registry.npmjs.org/jest-when/-/jest-when-3.5.1.tgz#33ab6f923661cf878cd08fe9df64b507934603db" - integrity sha512-o+HiaIVCg1IC95sMDKHU9G5v5N5l3UHqXvJpf0PgAMThZeQo4Hf5Sgoj+wpCBRGg4/KtzSAZZZEKNiLqE0i4eQ== + version "3.5.0" + resolved "https://registry.npmjs.org/jest-when/-/jest-when-3.5.0.tgz#364ab8dc149a5d683f9cc14e44d73d03b84b0d97" + integrity sha512-/IkPkG5lo2tyXH3a+VraYe7t/ma6UK9VPQko7hr6YgEtjoHyfAPpLXzyhnSNxxKRzNQDrw8YoGPCOkdTLR4mHA== jest-worker@^26.6.2: version "26.6.2" @@ -16123,10 +17045,10 @@ jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.3.1, jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== +jest-worker@^27.3.1, jest-worker@^27.4.1: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" + integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -16169,13 +17091,13 @@ jmespath@^0.15.0: integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= joi@^17.4.0: - version "17.6.0" - resolved "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" - integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== + version "17.4.2" + resolved "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz#02f4eb5cf88e515e614830239379dcbbe28ce7f7" + integrity sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" + "@sideway/address" "^4.1.0" "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" @@ -16194,9 +17116,9 @@ jose@^2.0.5: "@panva/asn1.js" "^1.0.0" joycon@^3.0.1: - version "3.1.1" - resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" - integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + version "3.1.0" + resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.0.tgz#33bb2b6b5a6849a1e251bed623bdf610f477d49f" + integrity sha512-5Y/YJghKF/IzaUXTut0JtbQyHfBShTaIsH7hHhGXEzYO07zWdWZm5hr3Q6miqhrwsRqqm3mgOnUEZdn+1aRxKQ== jpeg-js@^0.3.4: version "0.3.7" @@ -16304,7 +17226,39 @@ jscodeshift@^0.13.0: temp "^0.8.4" write-file-atomic "^2.3.0" -jsdom@^16.4.0, jsdom@^16.5.2: +jsdom@^16.4.0: + version "16.4.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + +jsdom@^16.5.2: version "16.7.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== @@ -16375,9 +17329,9 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-pointer@^0.6.1: - version "0.6.2" - resolved "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz#f97bd7550be5e9ea901f8c9264c9d436a22a93cd" - integrity sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw== + version "0.6.1" + resolved "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz#3c6caa6ac139e2599f5a1659d39852154015054d" + integrity sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q== dependencies: foreach "^2.0.4" @@ -16500,11 +17454,11 @@ jsonfile@^4.0.0: graceful-fs "^4.1.6" jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + version "6.0.1" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== dependencies: - universalify "^2.0.0" + universalify "^1.0.0" optionalDependencies: graceful-fs "^4.1.6" @@ -16575,76 +17529,85 @@ jsprim@^2.0.2: verror "1.10.0" jss-plugin-camel-case@^10.5.1: - version "10.9.0" - resolved "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz#4921b568b38d893f39736ee8c4c5f1c64670aaf7" - integrity sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww== + version "10.6.0" + resolved "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.6.0.tgz#93d2cd704bf0c4af70cc40fb52d74b8a2554b170" + integrity sha512-JdLpA3aI/npwj3nDMKk308pvnhoSzkW3PXlbgHAzfx0yHWnPPVUjPhXFtLJzgKZge8lsfkUxvYSQ3X2OYIFU6A== dependencies: "@babel/runtime" "^7.3.1" hyphenate-style-name "^1.0.3" - jss "10.9.0" + jss "10.6.0" jss-plugin-default-unit@^10.5.1: - version "10.9.0" - resolved "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz#bb23a48f075bc0ce852b4b4d3f7582bc002df991" - integrity sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w== + version "10.6.0" + resolved "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.6.0.tgz#af47972486819b375f0f3a9e0213403a84b5ef3b" + integrity sha512-7y4cAScMHAxvslBK2JRK37ES9UT0YfTIXWgzUWD5euvR+JR3q+o8sQKzBw7GmkQRfZijrRJKNTiSt1PBsLI9/w== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.6.0" jss-plugin-global@^10.5.1: - version "10.9.0" - resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz#fc07a0086ac97aca174e37edb480b69277f3931f" - integrity sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ== + version "10.6.0" + resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.6.0.tgz#3e8011f760f399cbadcca7f10a485b729c50e3ed" + integrity sha512-I3w7ji/UXPi3VuWrTCbHG9rVCgB4yoBQLehGDTmsnDfXQb3r1l3WIdcO8JFp9m0YMmyy2CU7UOV6oPI7/Tmu+w== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.6.0" jss-plugin-nested@^10.5.1: - version "10.9.0" - resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz#cc1c7d63ad542c3ccc6e2c66c8328c6b6b00f4b3" - integrity sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA== + version "10.6.0" + resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.6.0.tgz#5f83c5c337d3b38004834e8426957715a0251641" + integrity sha512-fOFQWgd98H89E6aJSNkEh2fAXquC9aZcAVjSw4q4RoQ9gU++emg18encR4AT4OOIFl4lQwt5nEyBBRn9V1Rk8g== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.6.0" tiny-warning "^1.0.2" jss-plugin-props-sort@^10.5.1: - version "10.9.0" - resolved "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz#30e9567ef9479043feb6e5e59db09b4de687c47d" - integrity sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw== + version "10.6.0" + resolved "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.6.0.tgz#297879f35f9fe21196448579fee37bcde28ce6bc" + integrity sha512-oMCe7hgho2FllNc60d9VAfdtMrZPo9n1Iu6RNa+3p9n0Bkvnv/XX5San8fTPujrTBScPqv9mOE0nWVvIaohNuw== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.6.0" jss-plugin-rule-value-function@^10.5.1: - version "10.9.0" - resolved "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz#379fd2732c0746fe45168011fe25544c1a295d67" - integrity sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg== + version "10.6.0" + resolved "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.6.0.tgz#3c1a557236a139d0151e70a82c810ccce1c1c5ea" + integrity sha512-TKFqhRTDHN1QrPTMYRlIQUOC2FFQb271+AbnetURKlGvRl/eWLswcgHQajwuxI464uZk91sPiTtdGi7r7XaWfA== dependencies: "@babel/runtime" "^7.3.1" - jss "10.9.0" + jss "10.6.0" tiny-warning "^1.0.2" jss-plugin-vendor-prefixer@^10.5.1: - version "10.9.0" - resolved "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz#aa9df98abfb3f75f7ed59a3ec50a5452461a206a" - integrity sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA== + version "10.6.0" + resolved "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.6.0.tgz#e1fcd499352846890c38085b11dbd7aa1c4f2c78" + integrity sha512-doJ7MouBXT1lypLLctCwb4nJ6lDYqrTfVS3LtXgox42Xz0gXusXIIDboeh6UwnSmox90QpVnub7au8ybrb0krQ== dependencies: "@babel/runtime" "^7.3.1" css-vendor "^2.0.8" - jss "10.9.0" + jss "10.6.0" -jss@10.9.0, jss@^10.5.1: - version "10.9.0" - resolved "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz#7583ee2cdc904a83c872ba695d1baab4b59c141b" - integrity sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw== +jss@10.6.0, jss@^10.5.1: + version "10.6.0" + resolved "https://registry.npmjs.org/jss/-/jss-10.6.0.tgz#d92ff9d0f214f65ca1718591b68e107be4774149" + integrity sha512-n7SHdCozmxnzYGXBHe0NsO0eUf9TvsHVq2MXvi4JmTn3x5raynodDVE/9VQmBdWFyyj9HpHZ2B4xNZ7MMy7lkw== dependencies: "@babel/runtime" "^7.3.1" csstype "^3.0.2" + indefinite-observable "^2.0.1" is-in-browser "^1.1.3" tiny-warning "^1.0.2" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.2.0" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + +jsx-ast-utils@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== @@ -16707,14 +17670,14 @@ jwt-decode@*, jwt-decode@^3.1.0: integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== kafkajs@^1.16.0-beta.6: - version "1.16.0" - resolved "https://registry.npmjs.org/kafkajs/-/kafkajs-1.16.0.tgz#bfcc3ae2b69265ca8435b53a01ee9e8787b9fee5" - integrity sha512-+Rcfu2hyQ/jv5skqRY8xA7Ra+mmRkDAzCaLDYbkGtgsNKpzxPWiLbk8ub0dgr4EbWrN1Zb4BCXHUkD6+zYfdWg== + version "1.16.0-beta.32" + resolved "https://registry.npmjs.org/kafkajs/-/kafkajs-1.16.0-beta.32.tgz#c39fe37367e200eeb95c9ae1412d79db4cf55eca" + integrity sha512-fXnpfvQI7b0xJNRMMiDX05ezfG1/MtDJPdWhQ1e6SptDB/xe8JaGJwd/Fzd2viwgwYzhmHSg681PNOkX4Dz2DQ== keyv-memcache@^1.2.5: - version "1.2.9" - resolved "https://registry.npmjs.org/keyv-memcache/-/keyv-memcache-1.2.9.tgz#68776b098233e4305ec729fbeb5ad5905f6ac914" - integrity sha512-hcHeihL/LjAhP1qvLSWuwCxDQlSkkGwlvH7RfIIO+57s7J5dhFLQQko1WcAbcd1jlxV6iPHAEvkDwp8c7XQzgA== + version "1.2.7" + resolved "https://registry.npmjs.org/keyv-memcache/-/keyv-memcache-1.2.7.tgz#b8a43eeecdb11ad8f4d6d64abd4298d014c74955" + integrity sha512-lD7QaHf9M+bq9XLFZVEXJ2HNqEvO5CmtjiJjB2FHifbEQ18+YRDTfJCjo88Roc0hXtIqz/QZjYXpIYL8EWpL1g== dependencies: json-buffer "^3.0.1" memjs "^1.3.0" @@ -16727,9 +17690,9 @@ keyv@^3.0.0: json-buffer "3.0.0" keyv@^4.0.0, keyv@^4.0.3: - version "4.1.1" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz#02c538bfdbd2a9308cc932d4096f05ae42bfa06a" - integrity sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ== + version "4.1.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.1.0.tgz#8ab5ca4ae6a34e05c629531d9a7f871575af0d5b" + integrity sha512-YsY3wr6HabE11/sscee+3nZ03XjvkrPWGouAmJFBdZoK92wiOlJCzI5/sDEIKdJhdhHO144ei45U9gXfbu14Uw== dependencies: json-buffer "3.0.1" @@ -16768,9 +17731,9 @@ kleur@^4.0.3: integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== knex@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/knex/-/knex-1.0.3.tgz#a5f97aa98e5e036cfd0209a90d53b2a411280e84" - integrity sha512-rY1T7cgTQGHAUD9TshMka37bd+SEK+koPXXvZQEIoE8yjJ/E8ShsenaAmr3oaNNzqXuKD/SC0qlYtp7Js8tAXA== + version "1.0.2" + resolved "https://registry.npmjs.org/knex/-/knex-1.0.2.tgz#1b79273f39f587a631c1a5515482c203d5971781" + integrity sha512-RuDKTylj6X/3nYomnsFV8sOdxTcehLHczOd3yrUdULE4pQR8jVlZxYt3vvIU04otJF0Cw9DCtRt05S4PN4kDpw== dependencies: colorette "2.0.16" commander "^8.3.0" @@ -16816,9 +17779,9 @@ lazy-ass@1.6.0, lazy-ass@^1.6.0: integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + version "1.0.0" + resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= dependencies: readable-stream "^2.0.5" @@ -16923,47 +17886,47 @@ li@^1.3.0: integrity sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs= libnpmaccess@^4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz#dfb0e5b0a53c315a2610d300e46b4ddeb66e7eec" - integrity sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ== + version "4.0.1" + resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.1.tgz#17e842e03bef759854adf6eb6c2ede32e782639f" + integrity sha512-ZiAgvfUbvmkHoMTzdwmNWCrQRsDkOC+aM5BDfO0C9aOSwF3R1LdFDBD+Rer1KWtsoQYO35nXgmMR7OUHpDRxyA== dependencies: aproba "^2.0.0" minipass "^3.1.1" - npm-package-arg "^8.1.2" - npm-registry-fetch "^11.0.0" + npm-package-arg "^8.0.0" + npm-registry-fetch "^9.0.0" libnpmpublish@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz#be77e8bf5956131bcb45e3caa6b96a842dec0794" - integrity sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw== + version "4.0.0" + resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.0.tgz#ad6413914e0dfd78df868ce14ba3d3a4cc8b385b" + integrity sha512-2RwYXRfZAB1x/9udKpZmqEzSqNd7ouBRU52jyG14/xG8EF+O9A62d7/XVR3iABEQHf1iYhkm0Oq9iXjrL3tsXA== dependencies: - normalize-package-data "^3.0.2" - npm-package-arg "^8.1.2" - npm-registry-fetch "^11.0.0" + normalize-package-data "^3.0.0" + npm-package-arg "^8.1.0" + npm-registry-fetch "^9.0.0" semver "^7.1.3" - ssri "^8.0.1" + ssri "^8.0.0" -lilconfig@2.0.4, lilconfig@^2.0.3, lilconfig@^2.0.4: +lilconfig@2.0.4, lilconfig@^2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + version "1.1.6" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= linkify-it@^3.0.1: - version "3.0.3" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" - integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== + version "3.0.2" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" + integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== dependencies: uc.micro "^1.0.1" lint-staged@^12.2.0: - version "12.3.4" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.4.tgz#4b1ff8c394c3e6da436aaec5afd4db18b5dac360" - integrity sha512-yv/iK4WwZ7/v0GtVkNb3R82pdL9M+ScpIbJLJNyCXkJ1FGaXvRCOg/SeL59SZtPpqZhE7BD6kPKFLIDUhDx2/w== + version "12.3.3" + resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.3.tgz#0a465962fe53baa2b4b9da50801ead49a910e03b" + integrity sha512-OqcLsqcPOqzvsfkxjeBpZylgJ3SRG1RYqc9LxC6tkt6tNsq1bNVkAixBwX09f6CobcHswzqVOCBpFR1Fck0+ag== dependencies: cli-truncate "^3.1.0" colorette "^2.0.16" @@ -17013,31 +17976,17 @@ listr-verbose-renderer@^0.5.0: date-fns "^1.27.2" figures "^2.0.0" -listr2@^3.8.3: - version "3.14.0" - resolved "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" - integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.1" - through "^2.3.8" - wrap-ansi "^7.0.0" - listr2@^4.0.1: - version "4.0.4" - resolved "https://registry.npmjs.org/listr2/-/listr2-4.0.4.tgz#d098a1c419284fb26e184b5d5889b235e8912245" - integrity sha512-vJOm5KD6uZXjSsrwajr+mNacIjf87gWvlBEltPWLbTkslUscWAzquyK4xfe9Zd4RDgO5nnwFyV06FC+uVR+5mg== + version "4.0.2" + resolved "https://registry.npmjs.org/listr2/-/listr2-4.0.2.tgz#04d66f8c8694a14920d7df08ebe01568948fb500" + integrity sha512-YcgwfCWpvPbj9FLUGqvdFvd3hrFWKpOeuXznRgfWEJ7RNr8b/IKKIKZABHx3aU+4CWN/iSAFFSReziQG6vTeIA== dependencies: cli-truncate "^2.1.0" colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.4" + rxjs "^7.5.2" through "^2.3.8" wrap-ansi "^7.0.0" @@ -17126,9 +18075,9 @@ loader-utils@^1.1.0: json5 "^1.0.1" loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + version "2.0.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -17408,15 +18357,15 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -logform@^2.3.2, logform@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe" - integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw== +logform@^2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/logform/-/logform-2.3.2.tgz#68babe6a74ab09a1fd15a9b1e6cbc7713d41cb5b" + integrity sha512-V6JiPThZzTsbVRspNO6TmHkR99oqYTs8fivMBYQkjZj6rxW92KxtDCPE6IkAk1DNBnYKNkjm4jYBm6JDUcyhOA== dependencies: - "@colors/colors" "1.5.0" + colors "1.4.0" fecha "^4.2.0" ms "^2.1.1" - safe-stable-stringify "^2.3.1" + safe-stable-stringify "^1.1.0" triple-beam "^1.3.0" loglevel@^1.6.8: @@ -17430,9 +18379,9 @@ long@^4.0.0: integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== longest-streak@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" - integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== + version "3.0.0" + resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz#f127e2bded83caa6a35ac5f7a2f2b2f94b36f3dc" + integrity sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" @@ -17500,6 +18449,13 @@ lru-cache@^7.3.1: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.3.1.tgz#7702e80694ec2bf19865567a469f2b081fcf53f5" integrity sha512-nX1x4qUrKqwbIAhv4s9et4FIUVzNOpeY07bsjGUy8gwJrXH/wScImSQqXErmo/b2jZY2r0mohbLA9zVj7u1cNw== +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + lunr@^2.3.9: version "2.3.9" resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" @@ -17515,6 +18471,11 @@ lz-string@^1.4.4: resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= +macos-release@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" + integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== + magic-string@^0.25.7: version "0.25.7" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" @@ -17537,7 +18498,14 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.1.0: +make-dir@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" + integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + dependencies: + semver "^6.0.0" + +make-dir@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -17550,9 +18518,9 @@ make-error@^1, make-error@^1.1.1, make-error@^1.3.6: integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== make-fetch-happen@^10.0.1: - version "10.0.3" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.3.tgz#94bbe675cf62a811dbab59668052388a078beaf2" - integrity sha512-CzarPHynPpHjhF5in/YapnO44rSZeYX5VCMfdXa99+gLwpbfFLh20CWa6dP/taV9Net9PWJwXNKtp/4ZTCQnag== + version "10.0.2" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.2.tgz#0afb38d2f951b17ebc482b0b16c8d77f39dfe389" + integrity sha512-JSFLK53NJP22FL/eAGOyKsWbc2G3v+toPMD7Dq9PJKQCvK0i3t8hGkKxe+3YZzwYa+c0kxRHu7uxH3fvO+rsaA== dependencies: agentkeepalive "^4.2.0" cacache "^15.3.0" @@ -17592,7 +18560,7 @@ make-fetch-happen@^8.0.9: socks-proxy-agent "^5.0.0" ssri "^8.0.0" -make-fetch-happen@^9.0.1, make-fetch-happen@^9.1.0: +make-fetch-happen@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== @@ -17614,12 +18582,12 @@ make-fetch-happen@^9.0.1, make-fetch-happen@^9.1.0: socks-proxy-agent "^6.0.0" ssri "^8.0.0" -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= dependencies: - tmpl "1.0.5" + tmpl "1.0.x" map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" @@ -17660,14 +18628,14 @@ markdown-it@^12.2.0: uc.micro "^1.0.5" markdown-table@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz#9b59eb2c1b22fe71954a65ff512887065a7bb57c" - integrity sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA== + version "3.0.1" + resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz#88c48957aaf2a8014ccb2ba026776a1d736fe3dc" + integrity sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A== marked@^4.0.10: - version "4.0.12" - resolved "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d" - integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== + version "4.0.10" + resolved "https://registry.npmjs.org/marked/-/marked-4.0.10.tgz#423e295385cc0c3a70fa495e0df68b007b879423" + integrity sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw== match-sorter@^6.0.2: version "6.3.1" @@ -17696,9 +18664,9 @@ material-ui-search-bar@^1.0.0: prop-types "^15.5.8" math-expression-evaluator@^1.2.14: - version "1.3.14" - resolved "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.3.14.tgz#0ebeaccf65fea0f6f5a626f88df41814e5fcd9bf" - integrity sha512-M6AMrvq9bO8uL42KvQHPA2/SbAobA0R7gviUmPrcTcGfdwpaLitz4q2Euzx2lP9Oy88vxK3HOrsISgSwKsYS4A== + version "1.2.22" + resolved "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz#c14dcb3d8b4d150e5dcea9c68c8dad80309b0d5e" + integrity sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ== md5.js@^1.3.4: version "1.3.5" @@ -17728,13 +18696,12 @@ mdast-util-find-and-replace@^2.0.0: unist-util-visit-parents "^4.0.0" mdast-util-from-markdown@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" - integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== + version "1.0.2" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.2.tgz#7c793bb96b053d12f032e37382ae989efb70ee66" + integrity sha512-gXaxv/5fGdrr9TqSMlQK7FmshK8yR9DvW3+NapMBDm44inORxIZVJa1D3yjrUT9ISu8tB/jjblEkUzyzclquNg== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - decode-named-character-reference "^1.0.0" mdast-util-to-string "^3.1.0" micromark "^3.0.0" micromark-util-decode-numeric-character-reference "^1.0.0" @@ -17742,8 +18709,8 @@ mdast-util-from-markdown@^1.0.0: micromark-util-normalize-identifier "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" + parse-entities "^3.0.0" unist-util-stringify-position "^3.0.0" - uvu "^0.5.0" mdast-util-gfm-autolink-literal@^1.0.0: version "1.0.2" @@ -17756,37 +18723,38 @@ mdast-util-gfm-autolink-literal@^1.0.0: micromark-util-character "^1.0.0" mdast-util-gfm-footnote@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz#11d2d40a1a673a399c459e467fa85e00223191fe" - integrity sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw== + version "1.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.0.tgz#355c1e8dc9e17e871d1b3fa5da8824923fc756e0" + integrity sha512-qeg9YoS2YYP6OBmMyUFxKXb6BLwAsbGidIxgwDAXHIMYZQhIwe52L9BSJs+zP29Jp5nSERPkmG3tSwAN23/ZbQ== dependencies: "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" + mdast-util-to-markdown "^1.0.0" micromark-util-normalize-identifier "^1.0.0" + unist-util-visit "^4.0.0" mdast-util-gfm-strikethrough@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz#a4a74c36864ec6a6e3bbd31e1977f29beb475789" - integrity sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg== + version "1.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz#6cc72ef5d9539f4cee76af3f15dd0daa9e3af40f" + integrity sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew== dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" + "@types/mdast" "^3.0.3" + mdast-util-to-markdown "^1.0.0" mdast-util-gfm-table@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.3.tgz#5f880aa6ecd1a9307cd7127f3d94c631ea88da07" - integrity sha512-B/tgpJjND1qIZM2WZst+NYnb0notPE6m0J+YOe3NOHXyEmvK38ytxaOsgz4BvrRPQQcNbRrTzSHMPnBkj1fCjg== + version "1.0.1" + resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz#07c269a219d66ec2deb6de38aed0ba1d1f9442df" + integrity sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA== dependencies: markdown-table "^3.0.0" - mdast-util-to-markdown "^1.3.0" + mdast-util-to-markdown "^1.0.0" mdast-util-gfm-task-list-item@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz#6f35f09c6e2bcbe88af62fdea02ac199cc802c5c" - integrity sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA== + version "1.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz#a0aa2a00c893f9f006d13ba096cbc64608559c7f" + integrity sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA== dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.3.0" + "@types/mdast" "^3.0.3" + mdast-util-to-markdown "^1.0.0" mdast-util-gfm@^2.0.0: version "2.0.0" @@ -17815,10 +18783,10 @@ mdast-util-to-hast@^12.1.0: unist-util-position "^4.0.0" unist-util-visit "^4.0.0" -mdast-util-to-markdown@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz#38b6cdc8dc417de642a469c4fc2abdf8c931bd1e" - integrity sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA== +mdast-util-to-markdown@^1.0.0: + version "1.2.3" + resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.3.tgz#2b3af92bf0e29080927eb59a8a10cd0a7398e093" + integrity sha512-040jJYtjOUdbvYAXCfPrpLJRdvMOmR33KRqlhT4r+fEbVM+jao1RMbA8RmGeRmw8RAj3vQ+HvhIaJPijvnOwCg== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" @@ -17854,9 +18822,9 @@ media-typer@0.3.0: integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= "mem-fs-editor@^8.1.2 || ^9.0.0": - version "9.4.0" - resolved "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.4.0.tgz#0cc1cf61350e33c25fc364c97fb0551eb32b8c9b" - integrity sha512-HSSOLSVRrsDdui9I6i96dDtG+oAez/4EB2g4cjSrNhgNQ3M+L57/+22NuPdORSoxvOHjIg/xeOE+C0wwF91D2g== + version "9.3.0" + resolved "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz#85ce80541b1961d1d9f433e275c7cee9d0a1c9a2" + integrity sha512-QKFbPwGCh1ypmc2H8BUYpbapwT/x2AOCYZQogzSui4rUNes7WVMagQXsirPIfp18EarX0SSY9Fpg426nSjew4Q== dependencies: binaryextensions "^4.16.0" commondir "^1.0.1" @@ -17879,7 +18847,7 @@ media-typer@0.3.0: vinyl "^2.0.1" vinyl-file "^3.0.0" -memfs@^3.1.2, memfs@^3.4.1: +memfs@^3.1.2, memfs@^3.2.2, memfs@^3.4.1: version "3.4.1" resolved "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== @@ -17891,11 +18859,30 @@ memjs@^1.3.0: resolved "https://registry.npmjs.org/memjs/-/memjs-1.3.0.tgz#b7959b4ff3770e4c785463fd147f1e4fafd47a24" integrity sha512-y/V9a0auepA9Lgyr4QieK6K2FczjHucEdTpSS+hHVNmVEkYxruXhkHu8n6DSRQ4HXHEE3cc6Sf9f88WCJXGXsQ== -"memoize-one@>=3.1.1 <6", memoize-one@^5.1.1: +"memoize-one@>=3.1.1 <6": version "5.2.1" resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== +memoize-one@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" + integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== + +memoizee@^0.4.15: + version "0.4.15" + resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + meow@^6.0.0: version "6.1.1" resolved "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" @@ -17940,10 +18927,10 @@ merge-stream@^2.0.0: resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== merge@^1.2.1: version "1.2.1" @@ -17965,7 +18952,7 @@ metric-lcs@^0.1.2: resolved "https://registry.npmjs.org/metric-lcs/-/metric-lcs-0.1.2.tgz#87913f149410e39c7c5a19037512814eaf155e11" integrity sha512-+TZ5dUDPKPJaU/rscTzxyN8ZkX7eAVLAiQU/e+YINleXPv03SCmJShaMT1If1liTH8OcmWXZs0CmzCBRBLcMpA== -micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: +micromark-core-commonmark@^1.0.0: version "1.0.6" resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== @@ -17987,16 +18974,36 @@ micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: micromark-util-types "^1.0.1" uvu "^0.5.0" +micromark-core-commonmark@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.1.tgz#a64987cafe872e8b80bc8f2352a5d988586ac4f1" + integrity sha512-vEOw8hcQ3nwHkKKNIyP9wBi8M50zjNajtmI+cCUWcVfJS+v5/3WCh4PLKf7PPRZFUutjzl4ZjlHwBWUKfb/SkA== + dependencies: + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + parse-entities "^3.0.0" + micromark-extension-gfm-autolink-literal@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz#dc589f9c37eaff31a175bab49f12290edcf96058" - integrity sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz#1a49a62bfcb00f9dff87ab39f3b21a108612dc24" + integrity sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA== dependencies: micromark-util-character "^1.0.0" micromark-util-sanitize-uri "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - uvu "^0.5.0" micromark-extension-gfm-footnote@^1.0.0: version "1.0.3" @@ -18012,45 +19019,42 @@ micromark-extension-gfm-footnote@^1.0.0: uvu "^0.5.0" micromark-extension-gfm-strikethrough@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz#162232c284ffbedd8c74e59c1525bda217295e18" - integrity sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ== + version "1.0.1" + resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.1.tgz#9f53ab4f5dc8c0525a889850bae615f074a98a27" + integrity sha512-fzGYXWz9HPWH1uHqYwdyR8XpEtuoYVHUjTdPQTnl3ETVZOQe1NXMwE3RA7AMqeON52hG+kO9g1/P1+pLONBSMQ== dependencies: micromark-util-chunked "^1.0.0" micromark-util-classify-character "^1.0.0" micromark-util-resolve-all "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - uvu "^0.5.0" micromark-extension-gfm-table@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz#7b708b728f8dc4d95d486b9e7a2262f9cddbcbb4" - integrity sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz#f0d35dbf008b6182311049f9137323d34a54c7a0" + integrity sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - uvu "^0.5.0" micromark-extension-gfm-tagfilter@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz#fb2e303f7daf616db428bb6a26e18fda14a90a4d" - integrity sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz#a38c7c462c2007b534fcb485e9310165879654a7" + integrity sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg== dependencies: micromark-util-types "^1.0.0" micromark-extension-gfm-task-list-item@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz#7683641df5d4a09795f353574d7f7f66e47b7fc4" - integrity sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz#ab38b2b4ead4e746189d6323c32cacab2c63599d" + integrity sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - uvu "^0.5.0" micromark-extension-gfm@^2.0.0: version "2.0.1" @@ -18076,14 +19080,13 @@ micromark-factory-destination@^1.0.0: micromark-util-types "^1.0.0" micromark-factory-label@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" - integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz#b316ec479b474232973ff13b49b576f84a6f2cbb" + integrity sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww== dependencies: micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - uvu "^0.5.0" micromark-factory-space@^1.0.0: version "1.0.0" @@ -18094,15 +19097,14 @@ micromark-factory-space@^1.0.0: micromark-util-types "^1.0.0" micromark-factory-title@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" - integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz#708f7a8044f34a898c0efdb4f55e4da66b537273" + integrity sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA== dependencies: micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - uvu "^0.5.0" micromark-factory-whitespace@^1.0.0: version "1.0.0" @@ -18154,19 +19156,18 @@ micromark-util-decode-numeric-character-reference@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-decode-string@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" - integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.0.tgz#f97946825231d9c97df767875064401774578a6e" + integrity sha512-4g5UJ8P/J8wuRKUXCcB7udQuOBXpLyvBQSLSuznfBLCG+thKG6UTwFnXfHkrr/1wddprkUbPatCzxDjrJ+5zDg== dependencies: - decode-named-character-reference "^1.0.0" micromark-util-character "^1.0.0" micromark-util-decode-numeric-character-reference "^1.0.0" - micromark-util-symbol "^1.0.0" + parse-entities "^3.0.0" micromark-util-encode@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" - integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz#c409ecf751a28aa9564b599db35640fccec4c068" + integrity sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg== micromark-util-html-tag-name@^1.0.0: version "1.0.0" @@ -18197,33 +19198,31 @@ micromark-util-sanitize-uri@^1.0.0: micromark-util-symbol "^1.0.0" micromark-util-subtokenize@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" - integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz#6f006fa719af92776c75a264daaede0fb3943c6a" + integrity sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ== dependencies: micromark-util-chunked "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.0" - uvu "^0.5.0" micromark-util-symbol@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" - integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== + version "1.0.0" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz#91cdbcc9b2a827c0129a177d36241bcd3ccaa34d" + integrity sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ== micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" - integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== + version "1.0.1" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz#8bb8a092d93d326bd29fe29602799f2d0d922fd4" + integrity sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA== micromark@^3.0.0: - version "3.0.10" - resolved "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" - integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== + version "3.0.5" + resolved "https://registry.npmjs.org/micromark/-/micromark-3.0.5.tgz#d24792c8a06f201d5608c106dbfadef34c299684" + integrity sha512-QfjERBnPw0G9mxhOCkkbRP0n8SX8lIBLrEKeEVceviUukqVMv3hWE4AgNTOK/W6GWqtPvvIHg2Apl3j1Dxm6aQ== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" - decode-named-character-reference "^1.0.0" micromark-core-commonmark "^1.0.1" micromark-factory-space "^1.0.0" micromark-util-character "^1.0.0" @@ -18237,7 +19236,7 @@ micromark@^3.0.0: micromark-util-subtokenize "^1.0.0" micromark-util-symbol "^1.0.0" micromark-util-types "^1.0.1" - uvu "^0.5.0" + parse-entities "^3.0.0" micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -18308,6 +19307,11 @@ mime@1.6.0, mime@^1.3.4: resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.2.0: + version "2.5.2" + resolved "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + mime@^2.5.0: version "2.6.0" resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" @@ -18351,9 +19355,9 @@ min-document@^2.19.0: dom-walk "^0.1.0" min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + version "1.0.0" + resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" + integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= mini-css-extract-plugin@^2.4.2: version "2.6.0" @@ -18372,7 +19376,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.0.4: +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -18386,20 +19390,6 @@ minimatch@5.0.1, minimatch@^5.0.0: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.2, minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" - integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== - dependencies: - brace-expansion "^1.1.7" - minimist-options@4.1.0, minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -18511,10 +19501,17 @@ mixme@^0.5.1: resolved "https://registry.npmjs.org/mixme/-/mixme-0.5.4.tgz#8cb3bd0cd32a513c161bf1ca99d143f0bcf2eff3" integrity sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw== +<<<<<<< HEAD mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== +======= +mkdirp-classic@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" + integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== +>>>>>>> 76d216e74b (fixups) mkdirp-infer-owner@^2.0.0: version "2.0.0" @@ -18530,7 +19527,7 @@ mkdirp@0.3.0: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -18552,10 +19549,21 @@ modify-values@^1.0.0: resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== +<<<<<<< HEAD moment-timezone@^0.5.x: +======= +<<<<<<< HEAD +moment-timezone@^0.5.31, moment-timezone@^0.5.x: +>>>>>>> f9b03ab02f (fixups) version "0.5.34" resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c" integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg== +======= +moment-timezone@^0.5.31: + version "0.5.33" + resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz#b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c" + integrity sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w== +>>>>>>> 76d216e74b (fixups) dependencies: moment ">= 2.9.0" @@ -18627,11 +19635,11 @@ msw@^0.35.0: yargs "^17.0.1" msw@^0.36.3: - version "0.36.8" - resolved "https://registry.npmjs.org/msw/-/msw-0.36.8.tgz#33ff8bfb0299626a95f43d0e4c3dc2c73c17f1ba" - integrity sha512-K7lOQoYqhGhTSChsmHMQbf/SDCsxh/m0uhN6Ipt206lGoe81fpTmaGD0KLh4jUxCONMOUnwCSj0jtX2CM4pEdw== + version "0.36.3" + resolved "https://registry.npmjs.org/msw/-/msw-0.36.3.tgz#7feb243a5fcf563806d45edc027bc36144741170" + integrity sha512-Itzp/QhKaleZoslXDrNik3ramW9ynqzOdbwydX2ehBSSaZd5QoiAl/bHYcV33R6CEZcJgIX1N4s+G6XkF/bhkA== dependencies: - "@mswjs/cookies" "^0.1.7" + "@mswjs/cookies" "^0.1.6" "@mswjs/interceptors" "^0.12.7" "@open-draft/until" "^1.0.3" "@types/cookie" "^0.4.1" @@ -18645,7 +19653,7 @@ msw@^0.36.3: inquirer "^8.2.0" is-node-process "^1.0.1" js-levenshtein "^1.1.6" - node-fetch "^2.6.7" + node-fetch "^2.6.1" path-to-regexp "^6.2.0" statuses "^2.0.0" strict-event-emitter "^0.2.0" @@ -18717,9 +19725,9 @@ nan@^2.14.1, nan@^2.15.0: integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nano-css@^5.3.1: - version "5.3.4" - resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.3.4.tgz#40af6a83a76f84204f346e8ccaa9169cdae9167b" - integrity sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg== + version "5.3.1" + resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.3.1.tgz#b709383e07ad3be61f64edffacb9d98250b87a1f" + integrity sha512-ENPIyNzANQRyYVvb62ajDd7PAyIgS2LIUnT9ewih4yrXSZX4hKoUwssy8WjUH++kEOA5wUTMgNnV7ko5n34kUA== dependencies: css-tree "^1.1.2" csstype "^3.0.6" @@ -18742,7 +19750,12 @@ nanoclone@^0.2.1: resolved "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== -nanoid@^3.1.23, nanoid@^3.3.1: +nanoid@^3.1.23: + version "3.2.0" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" + integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== + +nanoid@^3.3.1: version "3.3.1" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== @@ -18774,28 +19787,43 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.3, negotiator@^0.6.2, negotiator@^0.6.3: +negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +negotiator@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== nise@^5.1.0: - version "5.1.1" - resolved "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz#ac4237e0d785ecfcb83e20f389185975da5c31f3" - integrity sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A== + version "5.1.0" + resolved "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz#713ef3ed138252daef20ec035ab62b7a28be645c" + integrity sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ== dependencies: - "@sinonjs/commons" "^1.8.3" - "@sinonjs/fake-timers" ">=5" + "@sinonjs/commons" "^1.7.0" + "@sinonjs/fake-timers" "^7.0.4" "@sinonjs/text-encoding" "^0.7.1" just-extend "^4.0.2" path-to-regexp "^1.7.0" @@ -18844,7 +19872,7 @@ node-fetch@2.6.1: resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@2.6.7, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.5, node-fetch@^2.6.7: +node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.5, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -18857,9 +19885,9 @@ node-forge@^1.0.0, node-forge@^1.2.0: integrity sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA== node-gyp@^5.0.2: - version "5.1.1" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" - integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== + version "5.1.0" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.0.tgz#8e31260a7af4a2e2f994b0673d4e0b3866156332" + integrity sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw== dependencies: env-paths "^2.2.0" glob "^7.1.4" @@ -18944,6 +19972,11 @@ node-match-path@^0.6.3: resolved "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz#55dd8443d547f066937a0752dce462ea7dc27551" integrity sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q== +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + node-notifier@^8.0.0: version "8.0.2" resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" @@ -18956,10 +19989,10 @@ node-notifier@^8.0.0: uuid "^8.3.0" which "^2.0.2" -node-releases@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== nodemon@^2.0.2: version "2.0.15" @@ -19009,14 +20042,14 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== +normalize-package-data@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" + integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" + hosted-git-info "^3.0.6" + resolve "^1.17.0" + semver "^7.3.2" validate-npm-package-license "^3.0.1" normalize-path@^2.1.1: @@ -19031,20 +20064,25 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + normalize-url@^4.1.0: version "4.5.1" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== -normalize-url@^6.0.1, normalize-url@^6.1.0: +normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== npm-bundled@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" - integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + version "1.1.1" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== dependencies: npm-normalize-package-bin "^1.0.1" @@ -19074,7 +20112,16 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: +npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f" + integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig== + dependencies: + hosted-git-info "^3.0.6" + semver "^7.0.0" + validate-npm-package-name "^3.0.0" + +npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: version "8.1.5" resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== @@ -19084,9 +20131,9 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-pack validate-npm-package-name "^3.0.0" npm-packlist@^2.1.4: - version "2.2.2" - resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" - integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== + version "2.1.4" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.4.tgz#40e96b2b43787d0546a574542d01e066640d09da" + integrity sha512-Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw== dependencies: glob "^7.1.6" ignore-walk "^3.0.3" @@ -19103,7 +20150,16 @@ npm-packlist@^3.0.0: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: +npm-pick-manifest@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" + integrity sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw== + dependencies: + npm-install-checks "^4.0.0" + npm-package-arg "^8.0.0" + semver "^7.0.0" + +npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== @@ -19113,18 +20169,6 @@ npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: npm-package-arg "^8.1.2" semver "^7.3.4" -npm-registry-fetch@^11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" - integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== - dependencies: - make-fetch-happen "^9.0.1" - minipass "^3.1.3" - minipass-fetch "^1.3.0" - minipass-json-stream "^1.0.1" - minizlib "^2.0.0" - npm-package-arg "^8.0.0" - npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: version "12.0.2" resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz#ae583bb3c902a60dae43675b5e33b5b1f6159f1e" @@ -19202,7 +20246,7 @@ nth-check@^1.0.2: dependencies: boolbase "~1.0.0" -nth-check@^2.0.1: +nth-check@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== @@ -19273,12 +20317,9 @@ object-inspect@^1.11.0, object-inspect@^1.12.0, object-inspect@^1.9.0: integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" + version "1.0.2" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -19320,7 +20361,15 @@ object.fromentries@^2.0.5: define-properties "^1.1.3" es-abstract "^1.19.1" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: +object.getownpropertydescriptors@^2.0.3: + version "2.1.0" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.getownpropertydescriptors@^2.1.0: version "2.1.3" resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== @@ -19444,17 +20493,17 @@ open@^8.0.0, open@^8.0.9, open@^8.4.0: is-wsl "^2.2.0" openapi-sampler@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.2.0.tgz#2e82e4e32c1506a42f370be726d759d5275a9d4d" - integrity sha512-Y0tFg2iH7NWnNHYnesxhMfkXc7wWXyJXYMUTTxkGkfpl0U9u/ZOf6BxrdEXBD4sgs9uMlVWsbWLDLesVmSUU7Q== + version "1.1.1" + resolved "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.1.1.tgz#7bba7000a03cd8a4630bfbe5b3ef258990c78400" + integrity sha512-WAFsl5SPYuhQwaMTDFOcKhnEY1G1rmamrMiPmJdqwfl1lr81g63/befcsN9BNi0w5/R0L+hfcUj13PANEBeLgg== dependencies: "@types/json-schema" "^7.0.7" json-pointer "^0.6.1" openid-client@^4.1.1, openid-client@^4.2.1: - version "4.9.1" - resolved "https://registry.npmjs.org/openid-client/-/openid-client-4.9.1.tgz#4f00a9d1566c0fa08f0dd5986cf0e6b1e5d14186" - integrity sha512-DYUF07AHjI3QDKqKbn2F7RqozT4hyi4JvmpodLrq0HHoNP7t/AjeG/uqiBK1/N2PZSAQEThVjDLHSmJN4iqu/w== + version "4.9.0" + resolved "https://registry.npmjs.org/openid-client/-/openid-client-4.9.0.tgz#bdfc9194435316df419f759ce177635146b43074" + integrity sha512-ThBbvRUUZwxUKBVK2UpDNIZ3eJkvtqWI8s5Dm+naV+gJdL+yRhT+8ywqct1gy5uL+xVS5+A/nhFcpJIisH2x6Q== dependencies: aggregate-error "^3.1.0" got "^11.8.0" @@ -19520,6 +20569,14 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -19554,14 +20611,14 @@ p-cancelable@^1.0.0: integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + version "2.0.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + version "2.1.0" + resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" + integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== p-filter@^2.1.0: version "2.1.0" @@ -19595,9 +20652,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + version "2.2.2" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== dependencies: p-try "^2.0.0" @@ -19665,12 +20722,12 @@ p-reduce@^2.0.0, p-reduce@^2.1.0: integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== p-retry@^4.5.0: - version "4.6.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" - integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== + version "4.5.0" + resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.5.0.tgz#6685336b3672f9ee8174d3769a660cb5e488521d" + integrity sha512-5Hwh4aVQSu6BEP+w2zKlVXtFAaYQe1qWuVADSgoeVlLjwe/Q/AMSoRR4MDeaAfu8llT+YNbEijWu/YF3m6avkg== dependencies: "@types/retry" "^0.12.0" - retry "^0.13.1" + retry "^0.12.0" p-timeout@^3.2.0: version "3.2.0" @@ -19720,11 +20777,11 @@ packet-reader@1.0.0: integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== pacote@^11.2.6: - version "11.3.5" - resolved "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" - integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== + version "11.2.6" + resolved "https://registry.npmjs.org/pacote/-/pacote-11.2.6.tgz#c0426e5d5c8d33aeea3461a75e1390f1ba78f953" + integrity sha512-xCl++Hb3aBC7LaWMimbO4xUqZVsEbKDVc6KKDIIyAeBYrmMwY1yJC2nES/lsGd8sdQLUosgBxQyuVNncZ2Ru0w== dependencies: - "@npmcli/git" "^2.1.0" + "@npmcli/git" "^2.0.1" "@npmcli/installed-package-contents" "^1.0.6" "@npmcli/promise-spawn" "^1.2.0" "@npmcli/run-script" "^1.8.2" @@ -19737,7 +20794,7 @@ pacote@^11.2.6: npm-package-arg "^8.0.1" npm-packlist "^2.1.4" npm-pick-manifest "^6.0.0" - npm-registry-fetch "^11.0.0" + npm-registry-fetch "^9.0.0" promise-retry "^2.0.1" read-package-json-fast "^2.0.1" rimraf "^3.0.2" @@ -19794,13 +20851,14 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== dependencies: - asn1.js "^5.2.0" + asn1.js "^4.0.0" browserify-aes "^1.0.0" + create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" @@ -19844,6 +20902,18 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz#9ed6d6569b6cfc95ade058d683ddef239dad60dc" + integrity sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ== + dependencies: + character-entities "^2.0.0" + character-entities-legacy "^2.0.0" + character-reference-invalid "^2.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + parse-filepath@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" @@ -19874,13 +20944,13 @@ parse-json@^4.0.0: json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + version "5.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" + json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" parse-package-name@^0.1.0: @@ -19889,25 +20959,28 @@ parse-package-name@^0.1.0: integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= parse-path@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" - integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== + version "4.0.1" + resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" + integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== dependencies: is-ssh "^1.3.0" protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" -parse-url@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" - integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== +parse-url@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" + integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== dependencies: is-ssh "^1.3.0" - normalize-url "^6.1.0" + normalize-url "^3.3.0" parse-path "^4.0.0" protocols "^1.4.0" +parse5@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + parse5@6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -19979,9 +21052,9 @@ passport-microsoft@^0.1.0: pkginfo "0.2.x" passport-oauth1@1.x.x: - version "1.2.0" - resolved "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.2.0.tgz#5229d431781bf5b265bec86ce9a9cce58a756cf9" - integrity sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg== + version "1.1.0" + resolved "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.1.0.tgz#a7de988a211f9cf4687377130ea74df32730c918" + integrity sha1-p96YiiEfnPRoc3cTDqdN8ycwyRg= dependencies: oauth "0.9.x" passport-strategy "1.x.x" @@ -20182,9 +21255,9 @@ pause@0.0.1: integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + version "3.0.17" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -20192,10 +21265,10 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -peek-readable@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" - integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== +peek-readable@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz#9a045f291db254111c3412c1ce4fec27ddd4d202" + integrity sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ== pend@~1.2.0: version "1.2.0" @@ -20252,11 +21325,11 @@ pg@^8.3.0, pg@^8.4.0: pgpass "1.x" pgpass@1.x: - version "1.0.5" - resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" - integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + version "1.0.2" + resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" + integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= dependencies: - split2 "^4.1.0" + split "^1.0.0" pgtools@^0.3.0: version "0.3.2" @@ -20279,9 +21352,9 @@ picocolors@^1.0.0: integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + version "2.3.0" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" @@ -20347,10 +21420,12 @@ pino@^5.12.2: quick-format-unescaped "^3.0.3" sonic-boom "^0.7.5" -pirates@^4.0.1, pirates@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== +pirates@^4.0.0, pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" pixelmatch@^4.0.2: version "4.0.2" @@ -20366,6 +21441,13 @@ pkg-dir@4.2.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -20414,107 +21496,109 @@ posix-character-classes@^0.1.0: resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-calc@^8.2.0: - version "8.2.4" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" - integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== dependencies: - postcss-selector-parser "^6.0.9" - postcss-value-parser "^4.2.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" -postcss-colormin@^5.2.5: - version "5.2.5" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz#d1fc269ac2ad03fe641d462b5d1dada35c69968a" - integrity sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg== +postcss-colormin@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d" + integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" colord "^2.9.1" - postcss-value-parser "^4.2.0" + postcss-value-parser "^4.1.0" -postcss-convert-values@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz#3e74dd97c581f475ae7b4500bc0a7c4fb3a6b1b6" - integrity sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw== +postcss-convert-values@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" + integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== dependencies: - postcss-value-parser "^4.2.0" + postcss-value-parser "^4.1.0" -postcss-discard-comments@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz#011acb63418d600fdbe18804e1bbecb543ad2f87" - integrity sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q== +postcss-discard-comments@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" + integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== -postcss-discard-duplicates@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz#10f202a4cfe9d407b73dfea7a477054d21ea0c1f" - integrity sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw== +postcss-discard-duplicates@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" + integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== -postcss-discard-empty@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz#ec185af4a3710b88933b0ff751aa157b6041dd6a" - integrity sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA== +postcss-discard-empty@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" + integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== -postcss-discard-overridden@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz#cc999d6caf18ea16eff8b2b58f48ec3ddee35c9c" - integrity sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg== +postcss-discard-overridden@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" + integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== postcss-load-config@^3.0.0: - version "3.1.3" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz#21935b2c43b9a86e6581a576ca7ee1bde2bd1d23" - integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw== + version "3.0.1" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz#d214bf9cfec1608ffaf0f4161b3ba20664ab64b9" + integrity sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ== dependencies: - lilconfig "^2.0.4" - yaml "^1.10.2" + cosmiconfig "^7.0.0" + import-cwd "^3.0.0" -postcss-merge-longhand@^5.0.6: - version "5.0.6" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz#090e60d5d3b3caad899f8774f8dccb33217d2166" - integrity sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg== +postcss-merge-longhand@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" + integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^5.0.3" + postcss-value-parser "^4.1.0" + stylehacks "^5.0.1" -postcss-merge-rules@^5.0.6: - version "5.0.6" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz#26b37411fe1e80202fcef61cab027265b8925f2b" - integrity sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ== +postcss-merge-rules@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" + integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" - cssnano-utils "^3.0.2" + cssnano-utils "^2.0.1" postcss-selector-parser "^6.0.5" -postcss-minify-font-values@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz#627d824406b0712243221891f40a44fffe1467fd" - integrity sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA== +postcss-minify-font-values@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" + integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== dependencies: - postcss-value-parser "^4.2.0" + postcss-value-parser "^4.1.0" -postcss-minify-gradients@^5.0.6: - version "5.0.6" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz#b07cef51a93f075e94053fd972ff1cba2eaf6503" - integrity sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A== +postcss-minify-gradients@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" + integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== dependencies: colord "^2.9.1" - cssnano-utils "^3.0.2" - postcss-value-parser "^4.2.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-minify-params@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz#86cb624358cd45c21946f8c317893f0449396646" - integrity sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg== +postcss-minify-params@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" + integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== dependencies: + alphanum-sort "^1.0.2" browserslist "^4.16.6" - cssnano-utils "^3.0.2" - postcss-value-parser "^4.2.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-minify-selectors@^5.1.3: - version "5.1.3" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz#6ac12d52aa661fd509469d87ab2cebb0a1e3a1b5" - integrity sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ== +postcss-minify-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" + integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== dependencies: + alphanum-sort "^1.0.2" postcss-selector-parser "^6.0.5" postcss-modules-extract-imports@^3.0.0: @@ -20546,11 +21630,11 @@ postcss-modules-values@^4.0.0: icss-utils "^5.0.0" postcss-modules@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.0.tgz#1cb32f16a8cfffe2b989598f8135eb6427106ec7" - integrity sha512-zoUttLDSsbWDinJM9jH37o7hulLRyEgH6fZm2PchxN7AZ8rkdWiALyNhnQ7+jg7cX9f10m6y5VhHsrjO0Mf/DA== + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.0.0.tgz#2bc7f276ab88f3f1b0fadf6cbd7772d43b5f3b9b" + integrity sha512-ghS/ovDzDqARm4Zj6L2ntadjyQMoyJmi0JkLlYtH2QFLrvNlxH5OAVRPWPeKilB0pY7SbuhO173KOWkPAxRJcw== dependencies: - generic-names "^4.0.0" + generic-names "^2.0.1" icss-replace-symbols "^1.1.0" lodash.camelcase "^4.3.0" postcss-modules-extract-imports "^3.0.0" @@ -20559,113 +21643,129 @@ postcss-modules@^4.0.0: postcss-modules-values "^4.0.0" string-hash "^1.1.1" -postcss-normalize-charset@^5.0.3: +postcss-normalize-charset@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" + integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== + +postcss-normalize-display-values@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" + integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-positions@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" + integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-repeat-style@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" + integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-string@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" + integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-timing-functions@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" + integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-unicode@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" + integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== + dependencies: + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-url@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz#719fb9f9ca9835fcbd4fed8d6e0d72a79e7b5472" - integrity sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA== - -postcss-normalize-display-values@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz#94cc82e20c51cc4ffba6b36e9618adc1e50db8c1" - integrity sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz#4001f38c99675437b83277836fb4291887fcc6cc" - integrity sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz#d005adf9ee45fae78b673031a376c0c871315145" - integrity sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz#b5e00a07597e7aa8a871817bfeac2bfaa59c3333" - integrity sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz#47210227bfcba5e52650d7a18654337090de7072" - integrity sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz#02866096937005cdb2c17116c690f29505a1623d" - integrity sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig== - dependencies: - browserslist "^4.16.6" - postcss-value-parser "^4.2.0" - -postcss-normalize-url@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz#c39efc12ff119f6f45f0b4f516902b12c8080e3a" - integrity sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ== + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz#42eca6ede57fe69075fab0f88ac8e48916ef931c" + integrity sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg== dependencies: + is-absolute-url "^3.0.3" normalize-url "^6.0.1" - postcss-value-parser "^4.2.0" + postcss-value-parser "^4.1.0" -postcss-normalize-whitespace@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz#1d477e7da23fecef91fc4e37d462272c7b55c5ca" - integrity sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw== +postcss-normalize-whitespace@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" + integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== dependencies: - postcss-value-parser "^4.2.0" + postcss-value-parser "^4.1.0" -postcss-ordered-values@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz#e878af822a130c3f3709737e24cb815ca7c6d040" - integrity sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ== +postcss-ordered-values@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" + integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== dependencies: - cssnano-utils "^3.0.2" - postcss-value-parser "^4.2.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-reduce-initial@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz#68891594defd648253703bbd8f1093162f19568d" - integrity sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA== +postcss-reduce-initial@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" + integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== dependencies: - browserslist "^4.16.6" + browserslist "^4.16.0" caniuse-api "^3.0.0" -postcss-reduce-transforms@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz#717e72d30befe857f7d2784dba10eb1157863712" - integrity sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g== +postcss-reduce-transforms@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" + integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== dependencies: - postcss-value-parser "^4.2.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.9" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" - integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.4" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.0.5: + version "6.0.6" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz#cfa8682f47b88f7cd75108ec499e133b43102abf" - integrity sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg== +postcss-svgo@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" + integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== dependencies: - postcss-value-parser "^4.2.0" + postcss-value-parser "^4.1.0" svgo "^2.7.0" -postcss-unique-selectors@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz#08e188126b634ddfa615fb1d6c262bafdd64826e" - integrity sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ== +postcss-unique-selectors@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" + integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== dependencies: + alphanum-sort "^1.0.2" postcss-selector-parser "^6.0.5" postcss-value-parser@^3.3.0: @@ -20673,7 +21773,7 @@ postcss-value-parser@^3.3.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -20698,9 +21798,9 @@ postgres-bytea@~1.0.0: integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + version "1.0.5" + resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" + integrity sha512-pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA== postgres-interval@^1.1.0: version "1.2.0" @@ -20791,25 +21891,48 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== +pretty-format@^27.0.2: + version "27.3.1" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" + integrity sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA== dependencies: + "@jest/types" "^27.2.5" ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^17.0.1" -printj@~1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz#9af6b1d55647a1587ac44f4c1654a4b95b8e12cb" - integrity sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg== +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== +<<<<<<< HEAD prismjs@^1.27.0, prismjs@~1.27.0: +======= +<<<<<<< HEAD +prismjs@^1.25.0, prismjs@~1.27.0: +>>>>>>> f9b03ab02f (fixups) version "1.27.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== +======= +prismjs@^1.25.0: + version "1.26.0" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz#16881b594828bb6b45296083a8cbab46b0accd47" + integrity sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ== + +prismjs@~1.25.0: + version "1.25.0" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" + integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== + +private@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +>>>>>>> 76d216e74b (fixups) proc-log@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" @@ -20904,9 +22027,9 @@ properties-reader@^2.2.0: mkdirp "^1.0.4" property-expr@^2.0.4: - version "2.0.5" - resolved "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz#278bdb15308ae16af3e3b9640024524f4dc02cb4" - integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA== + version "2.0.4" + resolved "https://registry.npmjs.org/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910" + integrity sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg== property-information@^5.0.0: version "5.6.0" @@ -20916,19 +22039,19 @@ property-information@^5.0.0: xtend "^4.0.0" property-information@^6.0.0: - version "6.1.1" - resolved "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" - integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== + version "6.0.1" + resolved "https://registry.npmjs.org/property-information/-/property-information-6.0.1.tgz#7c668d9f2b9cb63bc3e105d8b8dfee7221a17800" + integrity sha512-F4WUUAF7fMeF4/JUFHNBWDaKDXi2jbvqBW/y6o5wsf3j19wTZ7S60TmtB5HoBhtgw7NKQRMWuz5vk2PR0CygUg== proto-list@~1.2.1: version "1.2.4" resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -proto3-json-serializer@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.8.tgz#f80f9afc1efe5ed9a9856bbbd17dc7cabd7ce9a3" - integrity sha512-ACilkB6s1U1gWnl5jtICpnDai4VCxmI9GFxuEaYdxtDG2oVI3sVFIUsvUZcQbJgtPM6p+zqKbjTKQZp6Y4FpQw== +proto3-json-serializer@^0.1.5: + version "0.1.6" + resolved "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.6.tgz#67cf3b8d5f4c8bebfc410698ad3b1ed64da39c7b" + integrity sha512-tGbV6m6Kad8NqxMh5hw87euPS0YoZSAOIfvR01zYkQV8Gpx1V/8yU/0gCKCvfCkhAJsjvzzhnnsdQxA1w7PSog== dependencies: protobufjs "^6.11.2" @@ -20952,9 +22075,9 @@ protobufjs@6.11.2, protobufjs@^6.10.0, protobufjs@^6.11.2, protobufjs@^6.8.6: long "^4.0.0" protocols@^1.1.0, protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== + version "1.4.7" + resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" + integrity sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg== proxy-addr@~2.0.7: version "2.0.7" @@ -21008,6 +22131,11 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +puka@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/puka/-/puka-1.0.1.tgz#a2df782b7eb4cf9564e4c93a5da422de0dfacc02" + integrity sha512-ssjRZxBd7BT3dte1RR3VoeT2cT/ODH8x+h0rUF1rMqB0srHYf48stSDWfiYakTp5UBZMxroZhB2+ExLDHm7W3g== + pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -21088,24 +22216,14 @@ qs@^6.10.1, qs@^6.10.2, qs@^6.10.3, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: side-channel "^1.0.4" qs@~6.5.2: - version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" + version "6.5.2" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== query-string@^7.0.0: - version "7.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" - integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== + version "7.0.0" + resolved "https://registry.npmjs.org/query-string/-/query-string-7.0.0.tgz#aaad2c8d5c6a6d0c6afada877fecbd56af79e609" + integrity sha512-Iy7moLybliR5ZgrK/1R3vjrXq03S13Vz4Rbm5Jg3EFq1LUmQppto0qtXz4vqZ386MSRjZgnTSZ9QC+NZOSd/XA== dependencies: decode-uri-component "^0.2.0" filter-obj "^1.1.0" @@ -21127,11 +22245,6 @@ querystringify@^2.1.1: resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - quick-format-unescaped@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz#fb3e468ac64c01d22305806c39f121ddac0d1fb9" @@ -21148,9 +22261,9 @@ quick-lru@^5.1.1: integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== raf-schd@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a" - integrity sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ== + version "4.0.2" + resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" + integrity sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ== raf@^3.4.0: version "3.4.1" @@ -21194,7 +22307,7 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.3, raw-body@^2.4.1: +raw-body@2.4.3: version "2.4.3" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== @@ -21204,6 +22317,16 @@ raw-body@2.4.3, raw-body@^2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@^2.4.1: + version "2.4.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" + integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== + dependencies: + bytes "3.1.1" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc-progress@3.2.4: version "3.2.4" resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.2.4.tgz#4036acdae2566438545bc4df2203248babaf7549" @@ -21214,9 +22337,9 @@ rc-progress@3.2.4: rc-util "^5.16.1" rc-util@^5.16.1: - version "5.18.1" - resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.18.1.tgz#80bd1450b5254655d2fbea63e3d34f6871e9be79" - integrity sha512-24xaSrMZUEKh1+suDOtJWfPe9E6YrwryViZcoPO0miJTKzP4qhUlV5AAlKQ82AJilz/AOHfi3l6HoX8qa1ye8w== + version "5.16.1" + resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.16.1.tgz#374db7cb735512f05165ddc3d6b2c61c21b8b4e3" + integrity sha512-kSCyytvdb3aRxQacS/71ta6c+kBWvM1v8/2h9d/HaNWauc3qB8pLnF20PJ8NajkNN8gb+rR1l0eWO+D4Pz+LLQ== dependencies: "@babel/runtime" "^7.12.5" react-is "^16.12.0" @@ -21233,15 +22356,15 @@ rc@^1.2.7, rc@^1.2.8: strip-json-comments "~2.0.1" react-beautiful-dnd@^13.0.0: - version "13.1.0" - resolved "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz#ec97c81093593526454b0de69852ae433783844d" - integrity sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA== + version "13.0.0" + resolved "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.0.0.tgz#f70cc8ff82b84bc718f8af157c9f95757a6c3b40" + integrity sha512-87It8sN0ineoC3nBW0SbQuTFXM6bUqM62uJGY4BtTf0yzPl8/3+bHMWkgIe0Z6m8e+gJgjWxefGRVfpE3VcdEg== dependencies: - "@babel/runtime" "^7.9.2" + "@babel/runtime" "^7.8.4" css-box-model "^1.2.0" memoize-one "^5.1.1" raf-schd "^4.0.2" - react-redux "^7.2.0" + react-redux "^7.1.1" redux "^4.0.4" use-memo-one "^1.1.1" @@ -21306,9 +22429,9 @@ react-double-scrollbar@0.0.15: integrity sha1-6RWrjLO5WYdwdfSUNt6/2wQoj+Q= react-error-boundary@^3.1.0: - version "3.1.4" - resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz#255db92b23197108757a888b01e5b729919abde0" - integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA== + version "3.1.3" + resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.3.tgz#276bfa05de8ac17b863587c9e0647522c25e2a0b" + integrity sha512-A+F9HHy9fvt9t8SNDlonq01prnU8AmkjvGKV4kk8seB9kU3xMEO8J/PQlLVmoOIDODl5U2kufSBs4vrWIqhsAA== dependencies: "@babel/runtime" "^7.12.5" @@ -21337,10 +22460,15 @@ react-helmet@6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-hook-form@^7.12.2, react-hook-form@^7.13.0: - version "7.27.1" - resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.27.1.tgz#fe5fbcb6bf58751f66d9569e998d671480cc57f6" - integrity sha512-N3a7A6zIQ8DJeThisVZGtOUabTbJw+7DHJidmB9w8m3chckv2ZWKb5MHps9d2pPJqmCDoWe53Bos56bYmJms5w== +react-hook-form@^7.12.2: + version "7.16.1" + resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.16.1.tgz#669046df378a71949e5cf8a2398cbe20d5cb27bc" + integrity sha512-kcLDmSmlyLUFx2UU5bG/o4+3NeK753fhKodJa8gkplXohGkpAq0/p+TR24OWjZmkEc3ES7ppC5v5d6KUk+fJTA== + +react-hook-form@^7.13.0: + version "7.17.4" + resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.17.4.tgz#232b6aaccddb91eb4a228ac20b154abd90866fdb" + integrity sha512-7XhbCr7d9fDC1TgcK/BUbt7D3q0VJMu7jPErfsa0JrxVjv/nni41xWdJcy0Zb7R+Np8OsCkQ2lMyloAtE3DLiQ== react-hot-loader@^4.13.0: version "4.13.0" @@ -21382,7 +22510,7 @@ react-is@^16.10.2, react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -"react-is@^16.8.0 || ^17.0.0", react-is@^17.0.0, react-is@^17.0.1, react-is@^17.0.2: +"react-is@^16.8.0 || ^17.0.0", react-is@^17.0.0, react-is@^17.0.1: version "17.0.2" resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== @@ -21412,6 +22540,7 @@ react-markdown@^8.0.0: unist-util-visit "^4.0.0" vfile "^5.0.0" +<<<<<<< HEAD react-query@^3.34.16: version "3.34.16" resolved "https://registry.npmjs.org/react-query/-/react-query-3.34.16.tgz#279ea180bcaeaec49c7864b29d1711ee9f152594" @@ -21425,13 +22554,19 @@ react-redux@^7.2.0, react-redux@^7.2.4: version "7.2.6" resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.6.tgz#49633a24fe552b5f9caf58feb8a138936ddfe9aa" integrity sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ== +======= +react-redux@^7.1.1, react-redux@^7.2.4: + version "7.2.5" + resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.5.tgz#213c1b05aa1187d9c940ddfc0b29450957f6a3b8" + integrity sha512-Dt29bNyBsbQaysp6s/dN0gUodcq+dVKKER8Qv82UrpeygwYeX1raTtil7O/fftw/rFqzaf6gJhDZRkkZnn6bjg== +>>>>>>> 76d216e74b (fixups) dependencies: - "@babel/runtime" "^7.15.4" - "@types/react-redux" "^7.1.20" + "@babel/runtime" "^7.12.1" + "@types/react-redux" "^7.1.16" hoist-non-react-statics "^3.3.2" loose-envify "^1.4.0" prop-types "^15.7.2" - react-is "^17.0.2" + react-is "^16.13.1" react-resize-detector@^2.3.0: version "2.3.0" @@ -21475,14 +22610,14 @@ react-router@^6.0.0-beta.0: history "^5.2.0" react-side-effect@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3" - integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ== + version "2.1.0" + resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz#1ce4a8b4445168c487ed24dab886421f74d380d3" + integrity sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg== react-smooth@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.6.tgz#18b964f123f7bca099e078324338cd8739346d0a" - integrity sha512-B2vL4trGpNSMSOzFiAul9kFAsxTukL9Wyy9EXtkQy3GJr6sZqW9e1nShdVOJ3hRYamPZ94O17r3Q0bjSw3UYtg== + version "1.0.5" + resolved "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.5.tgz#94ae161d7951cdd893ccb7099d031d342cb762ad" + integrity sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w== dependencies: lodash "~4.17.4" prop-types "^15.6.0" @@ -21517,9 +22652,9 @@ react-syntax-highlighter@^15.4.5: refractor "^3.6.0" react-test-renderer@^16.13.1: - version "16.14.0" - resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" - integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== + version "16.13.1" + resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" + integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" @@ -21551,9 +22686,9 @@ react-transition-group@2.9.0, react-transition-group@^2.5.0: react-lifecycles-compat "^3.0.4" react-transition-group@^4.0.0, react-transition-group@^4.4.0: - version "4.4.2" - resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" - integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== + version "4.4.1" + resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" + integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== dependencies: "@babel/runtime" "^7.5.5" dom-helpers "^5.0.1" @@ -21565,7 +22700,27 @@ react-universal-interface@^0.6.2: resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== -react-use@^17.2.4, react-use@^17.3.1, react-use@^17.3.2: +react-use@^17.2.4: + version "17.2.4" + resolved "https://registry.npmjs.org/react-use/-/react-use-17.2.4.tgz#1f89be3db0a8237c79253db0a15e12bbe3cfeff1" + integrity sha512-vQGpsAM0F5UIlshw5UI8ULGPS4yn5rm7/qvn3T1Gnkrz7YRMEEMh+ynKcmRloOyiIeLvKWiQjMiwRGtdbgs5qQ== + dependencies: + "@types/js-cookie" "^2.2.6" + "@xobotyi/scrollbar-width" "^1.9.5" + copy-to-clipboard "^3.3.1" + fast-deep-equal "^3.1.3" + fast-shallow-equal "^1.0.0" + js-cookie "^2.2.1" + nano-css "^5.3.1" + react-universal-interface "^0.6.2" + resize-observer-polyfill "^1.5.1" + screenfull "^5.1.0" + set-harmonic-interval "^1.0.1" + throttle-debounce "^3.0.1" + ts-easing "^0.2.0" + tslib "^2.1.0" + +react-use@^17.3.1, react-use@^17.3.2: version "17.3.2" resolved "https://registry.npmjs.org/react-use/-/react-use-17.3.2.tgz#448abf515f47c41c32455024db28167cb6e53be8" integrity sha512-bj7OD0/1wL03KyWmzFXAFe425zziuTf7q8olwCYBfOeFHY1qfO1FAMjROQLsLZYwG4Rx63xAfb7XAbBrJsZmEw== @@ -21611,7 +22766,15 @@ read-cmd-shim@^2.0.0: resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== -read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: +read-package-json-fast@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.1.tgz#c767f6c634873ffb6bb73788191b65559734f555" + integrity sha512-bp6z0tdgLy9KzdfENDIw/53HWAolOVoQTRWXv7PUiqAo3YvvoUVeLr7RWPWq+mu7KUOu9kiT4DvxhUgNUBsvug== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + +read-package-json-fast@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== @@ -21620,29 +22783,21 @@ read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json- npm-normalize-package-bin "^1.0.1" read-package-json@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" - integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== + version "2.1.1" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1" + integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== dependencies: glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" + json-parse-better-errors "^1.0.1" normalize-package-data "^2.0.0" npm-normalize-package-bin "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" read-package-json@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz#c7108f0b9390257b08c21e3004d2404c806744b9" - integrity sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng== - dependencies: - glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" - normalize-package-data "^3.0.0" - npm-normalize-package-bin "^1.0.0" - -read-package-json@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.1.tgz#153be72fce801578c1c86b8ef2b21188df1b9eea" - integrity sha512-P82sbZJ3ldDrWCOSKxJT0r/CXMWR0OR3KRh55SgKo3p91GSIEEC32v3lSHAvO/UcH3/IoL7uqhOFBduAnwdldw== + version "3.0.0" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.0.tgz#2219328e77c9be34f035a4ce58d1fb8e2979adf9" + integrity sha512-4TnJZ5fnDs+/3deg1AuMExL4R1SFNRLQeOhV9c8oDKm3eoG6u8xU0r0mNNRJHi3K6B+jXmT7JOhwhAklWw9SSQ== dependencies: glob "^7.1.1" json-parse-even-better-errors "^2.3.0" @@ -21737,7 +22892,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -21782,16 +22937,23 @@ readdirp@~3.6.0: picomatch "^2.2.1" recast@^0.20.3, recast@^0.20.4: - version "0.20.5" - resolved "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" - integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== + version "0.20.4" + resolved "https://registry.npmjs.org/recast/-/recast-0.20.4.tgz#db55983eac70c46b3fff96c8e467d65ffb4a7abc" + integrity sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ== dependencies: ast-types "0.14.2" esprima "~4.0.0" source-map "~0.6.1" tslib "^2.0.1" -recharts-scale@^0.4.2, recharts-scale@^0.4.4: +recharts-scale@^0.4.2: + version "0.4.3" + resolved "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.3.tgz#040b4f638ed687a530357292ecac880578384b59" + integrity sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA== + dependencies: + decimal.js-light "^2.4.1" + +recharts-scale@^0.4.4: version "0.4.5" resolved "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz#0969271f14e732e642fcc5bd4ab270d6e87dd1d9" integrity sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w== @@ -21816,9 +22978,9 @@ recharts@^1.8.5: reduce-css-calc "^1.3.0" recharts@^2.1.5: - version "2.1.9" - resolved "https://registry.npmjs.org/recharts/-/recharts-2.1.9.tgz#a52d411a7d822d118f7754cfc9c50db8fab46fb9" - integrity sha512-VozH5uznUvGqD7n224FGj7cmMAenlS0HPCs+7r2HeeHiQK6un6z0CTZfWVAB860xbcr4m+BN/EGMPZmYWd34Rg== + version "2.1.8" + resolved "https://registry.npmjs.org/recharts/-/recharts-2.1.8.tgz#ca8774fcec5f5d7ec15dedd638db9ee12faf1c09" + integrity sha512-Wi7ufdDGyvy/BPf1za1Ok7VeWB2KtEejaewO9ulmlUhvn5l5RPS4AOkrUfhtMRTTjgJ4K6AbWMDpwtDjczUHJA== dependencies: "@types/d3-interpolate" "^2.0.0" "@types/d3-scale" "^3.0.0" @@ -21910,7 +23072,22 @@ redux-immutable@^4.0.0: resolved "https://registry.npmjs.org/redux-immutable/-/redux-immutable-4.0.0.tgz#3a1a32df66366462b63691f0e1dc35e472bbc9f3" integrity sha1-Ohoy32Y2ZGK2NpHw4dw15HK7yfM= -redux@^4.0.0, redux@^4.0.4, redux@^4.1.2: +redux@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/redux/-/redux-4.1.1.tgz#76f1c439bb42043f985fbd9bf21990e60bd67f47" + integrity sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw== + dependencies: + "@babel/runtime" "^7.9.2" + +redux@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== + dependencies: + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + +redux@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104" integrity sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw== @@ -21931,17 +23108,17 @@ refractor@^3.6.0: parse-entities "^2.0.0" prismjs "~1.27.0" -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: - regenerate "^1.4.2" + regenerate "^1.4.0" -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.10.5: version "0.10.5" @@ -21953,17 +23130,23 @@ regenerator-runtime@^0.11.0: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.3: version "0.13.9" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + version "0.14.4" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: "@babel/runtime" "^7.8.4" + private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -21973,10 +23156,18 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: - version "1.4.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" - integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" @@ -21986,22 +23177,22 @@ regexpp@^3.2.0: resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + version "4.1.1" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" + integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== dependencies: rc "^1.2.8" @@ -22012,15 +23203,15 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== +regjsgen@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -22077,9 +23268,9 @@ remark-gfm@^3.0.1: unified "^10.0.0" remark-parse@^10.0.0: - version "10.0.1" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" - integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== + version "10.0.0" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz#65e2b2b34d8581d36b97f12a2926bb2126961cb4" + integrity sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ== dependencies: "@types/mdast" "^3.0.0" mdast-util-from-markdown "^1.0.0" @@ -22135,9 +23326,9 @@ renderkid@^3.0.0: strip-ansi "^6.0.1" repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + version "1.1.3" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" @@ -22170,6 +23361,22 @@ request-progress@^3.0.0: dependencies: throttleit "^1.0.0" +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== + dependencies: + lodash "^4.17.15" + +request-promise-native@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + dependencies: + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" @@ -22221,10 +23428,10 @@ requires-port@^1.0.0: resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -reselect@^4.1.5: - version "4.1.5" - resolved "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz#852c361247198da6756d07d9296c2b51eddb79f6" - integrity sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ== +reselect@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" + integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: version "1.5.1" @@ -22232,9 +23439,9 @@ resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== resolve-alpn@^1.0.0: - version "1.2.1" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + version "1.0.0" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== resolve-cwd@^3.0.0: version "3.0.0" @@ -22259,11 +23466,11 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0: - version "1.22.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + version "1.21.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" + integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.8.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -22330,7 +23537,14 @@ ret@~0.2.0: resolved "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== -retry-request@^4.0.0, retry-request@^4.2.2: +retry-request@^4.0.0: + version "4.1.3" + resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz#d5f74daf261372cff58d08b0a1979b4d7cab0fde" + integrity sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ== + dependencies: + debug "^4.1.1" + +retry-request@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" integrity sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg== @@ -22338,12 +23552,7 @@ retry-request@^4.0.0, retry-request@^4.2.2: debug "^4.1.1" extend "^3.0.2" -retry@0.13.1, retry@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -retry@^0.12.0: +retry@0.12.0, retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= @@ -22354,9 +23563,9 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfc4648@^1.3.0: - version "1.5.1" - resolved "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.1.tgz#b0b16756e33d9de8c0c7833e94b28e627ec372a4" - integrity sha512-60e/YWs2/D3MV1ErdjhJHcmlgnyLUiG4X/14dgsfm9/zmCWLN16xI6YqJYSCd/OANM7bUNzJqPY5B8/02S9Ibw== + version "1.4.0" + resolved "https://registry.npmjs.org/rfc4648/-/rfc4648-1.4.0.tgz#c75b2856ad2e2d588b6ddb985d556f1f7f2a2abd" + integrity sha512-3qIzGhHlMHA6PoT6+cdPKZ+ZqtxkIvg8DZGKA5z6PQ33/uuhoJ+Ws/D/J9rXW6gXodgH8QYlz2UCl+sdUDmNIg== rfdc@^1.3.0: version "1.3.0" @@ -22409,13 +23618,11 @@ rollup-plugin-dts@^4.0.1: "@babel/code-frame" "^7.16.7" rollup-plugin-esbuild@^4.7.2: - version "4.8.2" - resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.8.2.tgz#c097b93cd4b622e62206cadb5797589f548cf48c" - integrity sha512-wsaYNOjzTb6dN1qCIZsMZ7Q0LWiPJklYs2TDI8vJA2LUbvtPUY+17TC8C0vSat3jPMInfR9XWKdA7ttuwkjsGQ== + version "4.7.2" + resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.7.2.tgz#1a496a9f96257cdf5ed800e818932859232471f8" + integrity sha512-rBS2hTedtG+wL/yyIWQ84zju5rtfF15gkaCLN0vsWGmBdRd0UPm52meAwkmrsPQf3mB/H2o+k9Q8Ce8A66SE5A== 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" @@ -22459,9 +23666,15 @@ rollup@^0.63.4: "@types/node" "*" rollup@^2.60.2: +<<<<<<< HEAD version "2.70.0" resolved "https://registry.npmjs.org/rollup/-/rollup-2.70.0.tgz#17a92e5938e92a251b962352e904c9f558230ec7" integrity sha512-iEzYw+syFxQ0X9RefVwhr8BA2TNJsTaX8L8dhyeyMECDbmiba+8UQzcu+xZdji0+JQ+s7kouQnw+9Oz5M19XKA== +======= + version "2.67.2" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.67.2.tgz#d95e15f60932ad21e05a870bd0aa0b235d056f04" + integrity sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw== +>>>>>>> 76d216e74b (fixups) optionalDependencies: fsevents "~2.3.2" @@ -22471,23 +23684,23 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== rtl-css-js@^1.14.0: - version "1.15.0" - resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.15.0.tgz#680ed816e570a9ebccba9e1cd0f202c6a8bb2dc0" - integrity sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew== + version "1.14.0" + resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d" + integrity sha512-Dl5xDTeN3e7scU1cWX8c9b6/Nqz3u/HgR4gePc1kWXYiQWVQbKCEyK6+Hxve9LbcJ5EieHy1J9nJCN3grTtGwg== dependencies: "@babel/runtime" "^7.1.2" run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + version "2.4.0" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== + dependencies: + is-promise "^2.1.0" run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" + version "1.1.9" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== run-script-webpack-plugin@^0.0.11: version "0.0.11" @@ -22501,10 +23714,10 @@ rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.0, rxjs@^6.6.3: dependencies: tslib "^1.9.0" -rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.1, rxjs@^7.5.4: - version "7.5.4" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz#3d6bd407e6b7ce9a123e76b1e770dc5761aa368d" - integrity sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ== +rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.2: + version "7.5.2" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b" + integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== dependencies: tslib "^2.1.0" @@ -22520,7 +23733,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -22544,6 +23757,11 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" +safe-stable-stringify@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a" + integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw== + safe-stable-stringify@^2.2.0, safe-stable-stringify@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" @@ -22586,7 +23804,7 @@ sax@>=0.6.0, sax@~1.2.4: resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^5.0.1: +saxes@^5.0.0, saxes@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== @@ -22643,9 +23861,9 @@ scoped-regex@^2.0.0: integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== screenfull@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba" - integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== + version "5.1.0" + resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.1.0.tgz#85c13c70f4ead4c1b8a935c70010dfdcd2c0e5c8" + integrity sha512-dYaNuOdzr+kc6J6CFcBrzkLCfyGcMg+gWkJ8us93IQ7y1cevhQAugFsaCdMHb6lw8KV3xPzSxzH7zM1dQap9mA== scuid@^1.1.0: version "1.1.0" @@ -22696,7 +23914,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: +semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: version "7.3.5" resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -22876,7 +24094,7 @@ shell-quote@^1.7.3: resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== -shelljs@^0.8.5: +shelljs@^0.8.4, shelljs@^0.8.5: version "0.8.5" resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== @@ -22922,7 +24140,7 @@ simple-concat@^1.0.0: resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^3.0.3: +simple-get@^3.0.2, simple-get@^3.0.3: version "3.1.1" resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== @@ -22931,6 +24149,7 @@ simple-get@^3.0.3: once "^1.3.1" simple-concat "^1.0.0" +<<<<<<< HEAD simple-get@^4.0.0, simple-get@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" @@ -22940,6 +24159,8 @@ simple-get@^4.0.0, simple-get@^4.0.1: once "^1.3.1" simple-concat "^1.0.0" +======= +>>>>>>> 76d216e74b (fixups) simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -22948,12 +24169,12 @@ simple-swizzle@^0.2.2: is-arrayish "^0.3.1" sinon@^11.1.1: - version "11.1.2" - resolved "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz#9e78850c747241d5c59d1614d8f9cbe8840e8674" - integrity sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw== + version "11.1.1" + resolved "https://registry.npmjs.org/sinon/-/sinon-11.1.1.tgz#99a295a8b6f0fadbbb7e004076f3ae54fc6eab91" + integrity sha512-ZSSmlkSyhUWbkF01Z9tEbxZLF/5tRC9eojCdFh33gtQaP7ITQVaMWQHGuFM7Cuf/KEfihuh1tTl3/ABju3AQMg== dependencies: "@sinonjs/commons" "^1.8.3" - "@sinonjs/fake-timers" "^7.1.2" + "@sinonjs/fake-timers" "^7.1.0" "@sinonjs/samsam" "^6.0.2" diff "^5.0.0" nise "^5.1.0" @@ -23010,10 +24231,10 @@ slide@^1.1.6: resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== smartwrap@^1.2.3: version "1.2.5" @@ -23122,20 +24343,20 @@ socket.io@^2.2.0: socket.io-parser "~3.4.0" sockjs@^0.3.21: - version "0.3.24" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + version "0.3.21" + resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== dependencies: faye-websocket "^0.11.3" - uuid "^8.3.2" + uuid "^3.4.0" websocket-driver "^0.7.4" socks-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" - integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== + version "5.0.0" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" + integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== dependencies: - agent-base "^6.0.2" + agent-base "6" debug "4" socks "^2.3.3" @@ -23148,13 +24369,21 @@ socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: debug "^4.3.1" socks "^2.6.1" -socks@^2.3.3, socks@^2.6.1: - version "2.6.2" - resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== +socks@^2.3.3: + version "2.5.1" + resolved "https://registry.npmjs.org/socks/-/socks-2.5.1.tgz#7720640b6b5ec9a07d556419203baa3f0596df5f" + integrity sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ== dependencies: ip "^1.1.5" - smart-buffer "^4.2.0" + smart-buffer "^4.1.0" + +socks@^2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" + integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== + dependencies: + ip "^1.1.5" + smart-buffer "^4.1.0" sonic-boom@^0.7.5: version "0.7.7" @@ -23207,7 +24436,7 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@^0.5.10, source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@^0.5.10: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -23215,10 +24444,18 @@ source-map-support@^0.5.10, source-map-support@^0.5.16, source-map-support@^0.5. buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: + version "0.5.20" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + version "0.4.0" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@0.5.6: version "0.5.6" @@ -23269,30 +24506,30 @@ spawndamnit@^2.0.0: signal-exit "^3.0.2" spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + version "3.1.0" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + version "2.2.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + version "3.0.0" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + version "3.0.5" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== spdy-transport@^3.0.0: version "3.0.0" @@ -23341,11 +24578,6 @@ split2@^3.0.0: dependencies: readable-stream "^3.0.0" -split2@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" - integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== - split@0.3: version "0.3.3" resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -23386,9 +24618,9 @@ ssh-remote-port-forward@^1.0.4: ssh2 "^1.4.0" ssh2@^1.4.0: - version "1.6.0" - resolved "https://registry.npmjs.org/ssh2/-/ssh2-1.6.0.tgz#61aebc3a6910fe488f9c85cd8355bdf8d4724e05" - integrity sha512-lxc+uvXqOxyQ99N2M7k5o4pkYDO5GptOTYduWw7hIM41icxvoBcCNHcj+LTKrjkL0vFcAl+qfZekthoSFRJn2Q== + version "1.5.0" + resolved "https://registry.npmjs.org/ssh2/-/ssh2-1.5.0.tgz#4dc559ba98a1cbb420e8d42998dfe35d0eda92bc" + integrity sha512-iUmRkhH9KGeszQwDW7YyyqjsMTf4z+0o48Cp4xOwlY5LjtbIAvyd3fwnsoUZW/hXmTCRA3yt7S/Jb9uVjErVlA== dependencies: asn1 "^0.2.4" bcrypt-pbkdf "^1.0.2" @@ -23397,9 +24629,9 @@ ssh2@^1.4.0: nan "^2.15.0" sshpk@^1.14.1, sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -23436,16 +24668,16 @@ stack-trace@0.0.x: integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= stack-utils@^2.0.2: - version "2.0.5" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + version "2.0.2" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" + integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== dependencies: escape-string-regexp "^2.0.0" stackframe@^1.1.1: - version "1.2.1" - resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1" - integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg== + version "1.1.1" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71" + integrity sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ== stacktrace-gps@^3.0.4: version "3.0.4" @@ -23500,6 +24732,11 @@ statuses@2.0.1, statuses@^2.0.0: resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + stoppable@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" @@ -23525,7 +24762,7 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-events@^1.0.4, stream-events@^1.0.5: +stream-events@^1.0.1, stream-events@^1.0.4, stream-events@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== @@ -23548,7 +24785,7 @@ stream-shift@^1.0.0: resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -stream-transform@^2.1.3: +stream-transform@^2.0.1: version "2.1.3" resolved "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3" integrity sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ== @@ -23583,9 +24820,9 @@ string-hash@^1.1.1: integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + version "4.0.1" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== dependencies: char-regex "^1.0.2" strip-ansi "^6.0.0" @@ -23616,6 +24853,15 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string-width@^5.0.0: version "5.1.0" resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz#5ab00980cfb29f43e736b113a120a73a0fb569d3" @@ -23669,7 +24915,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@5.2.0: +strip-ansi@5.2.0, strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -23773,12 +25019,12 @@ strong-log-transformer@^2.1.0: through "^2.3.4" strtok3@^6.2.4: - version "6.3.0" - resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" - integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + version "6.2.4" + resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz#302aea64c0fa25d12a0385069ba66253fdc38a81" + integrity sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw== dependencies: "@tokenizer/token" "^0.3.0" - peek-readable "^4.1.0" + peek-readable "^4.0.1" stubs@^3.0.0: version "3.0.0" @@ -23807,18 +25053,18 @@ style-to-object@^0.3.0: dependencies: inline-style-parser "0.1.1" -stylehacks@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz#2ef3de567bfa2be716d29a93bf3d208c133e8d04" - integrity sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg== +stylehacks@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" + integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== dependencies: - browserslist "^4.16.6" + browserslist "^4.16.0" postcss-selector-parser "^6.0.4" stylis@^4.0.6: - version "4.0.13" - resolved "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" - integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== + version "4.0.7" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.0.7.tgz#412a90c28079417f3d27c028035095e4232d2904" + integrity sha512-OFFeUXFgwnGOKvEXaSv0D0KQ5ADP0n6g3SVONx6I/85JzNZ3u50FRwB3lVIk1QO2HNdI75tbVzc4Z66Gdp9voA== subscriptions-transport-ws@^0.11.0: version "0.11.0" @@ -23911,9 +25157,9 @@ supports-color@^9.2.1: integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ== supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + version "2.1.0" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -23960,16 +25206,16 @@ svgo@^2.5.0, svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -swagger-client@^3.18.4: - version "3.18.4" - resolved "https://registry.npmjs.org/swagger-client/-/swagger-client-3.18.4.tgz#71be9df585157a3335a542c407733d2134fa75e9" - integrity sha512-Wj26oEctONq/u0uM+eSj18675YM5e2vFnx7Kr4neLeXEHKUsfceVQ/OdtrBXdrT3VbtdBbZfMTfl1JOBpix2MA== +swagger-client@^3.17.0: + version "3.18.0" + resolved "https://registry.npmjs.org/swagger-client/-/swagger-client-3.18.0.tgz#2e59e666b38ded983e26fb512421ef8ff82547f0" + integrity sha512-lNfwTXHim0QiCNuZ4BKgWle7N7+9WlFLtcP02n0xSchFtdzsKJb2kWsOlwplRU3appVFjnHRy+1eVabRc3ZhbA== dependencies: "@babel/runtime-corejs3" "^7.11.2" btoa "^1.2.1" cookie "~0.4.1" - cross-fetch "^3.1.5" - deepmerge "~4.2.2" + cross-fetch "^3.1.4" + deep-extend "~0.6.0" fast-json-patch "^3.0.0-1" form-data-encoder "^1.4.3" formdata-node "^4.0.0" @@ -23981,11 +25227,11 @@ swagger-client@^3.18.4: url "~0.11.0" swagger-ui-react@^4.1.3: - version "4.5.1" - resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.5.1.tgz#8dd36f56a4bca47778539a1637d73578794ad1f6" - integrity sha512-nQ+erop7oiUvkYgUplGjDOs5LPBarnNNC4OW1IWqwo1avWFOhzATDlEOXbiE2SSDu5opC5HePX7cKIajBoQu9Q== + version "4.1.3" + resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.1.3.tgz#a722ecbe54ef237fa9080447a7c708c4c72d846a" + integrity sha512-o1AoXUTNH40cxWus0QOeWQ8x9tSIEmrLBrOgAOHDnvWJ1qyjT8PjgHjPbUVjMbja18coyuaAAeUdyLKvLGmlDA== dependencies: - "@babel/runtime-corejs3" "^7.16.8" + "@babel/runtime-corejs3" "^7.16.3" "@braintree/sanitize-url" "^5.0.2" base64-js "^1.5.1" classnames "^2.3.1" @@ -23997,6 +25243,7 @@ swagger-ui-react@^4.1.3: js-file-download "^0.4.12" js-yaml "=4.1.0" lodash "^4.17.21" + memoizee "^0.4.15" prop-types "^15.7.2" randombytes "^2.1.0" react-copy-to-clipboard "5.0.4" @@ -24009,11 +25256,11 @@ swagger-ui-react@^4.1.3: redux "^4.1.2" redux-immutable "^4.0.0" remarkable "^2.0.1" - reselect "^4.1.5" + reselect "^4.0.0" serialize-error "^8.1.0" sha.js "^2.4.11" - swagger-client "^3.18.4" - url-parse "^1.5.6" + swagger-client "^3.17.0" + url-parse "^1.5.3" xml "=1.0.1" xml-but-prettier "^1.0.1" zenscroll "^4.0.2" @@ -24026,11 +25273,11 @@ swap-case@^2.0.2: tslib "^2.0.3" swr@^1.1.2: - version "1.2.2" - resolved "https://registry.npmjs.org/swr/-/swr-1.2.2.tgz#6cae09928d30593a7980d80f85823e57468fac5d" - integrity sha512-ky0BskS/V47GpW8d6RU7CPsr6J8cr7mQD6+do5eky3bM0IyJaoi3vO8UhvrzJaObuTlGhPl2szodeB2dUd76Xw== + version "1.2.1" + resolved "https://registry.npmjs.org/swr/-/swr-1.2.1.tgz#c21a4fe2139cb1c4630450589b5b5add947a9d41" + integrity sha512-1cuWXqJqXcFwbgONGCY4PHZ8v05009JdHsC3CIC6u7d00kgbMswNr1sHnnhseOBxtzVqcCNpOHEgVDciRer45w== -symbol-observable@^1.0.4, symbol-observable@^1.1.0: +symbol-observable@1.2.0, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -24110,7 +25357,7 @@ tar@^4.4.12: safe-buffer "^5.2.1" yallist "^3.1.1" -tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: +tar@^6.0.2, tar@^6.1.0, tar@^6.1.2: version "6.1.11" resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== @@ -24159,11 +25406,11 @@ tdigest@^0.1.1: react-use "^17.2.4" teeny-request@^7.0.0: - version "7.1.3" - resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.3.tgz#5a3d90c559a6c664a993477b138e331a518765ba" - integrity sha512-Ew3aoFzgQEatLA5OBIjdr1DWJUaC1xardG+qbPPo5k/y/3fMwXLxpjh5UB5dVfElktLaQbbMs80chkz53ByvSg== + version "7.0.1" + resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-7.0.1.tgz#bdd41fdffea5f8fbc0d29392cb47bec4f66b2b4c" + integrity sha512-sasJmQ37klOlplL4Ia/786M5YlOcoLGQyq2TE4WHSRupbAuDaQW0PfVxV4MtdBtRJ4ngzS+1qim8zP6Zp35qCw== dependencies: - http-proxy-agent "^5.0.0" + http-proxy-agent "^4.0.0" https-proxy-agent "^5.0.0" node-fetch "^2.6.1" stream-events "^1.0.5" @@ -24193,9 +25440,9 @@ temp@^0.8.4: rimraf "~2.6.2" term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + version "2.2.0" + resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" + integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== terminal-link@^2.0.0: version "2.1.1" @@ -24206,17 +25453,17 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@*, terser-webpack-plugin@^5.1.3: - version "5.3.1" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" - integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== + version "5.3.0" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz#21641326486ecf91d8054161c816e464435bae9f" + integrity sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ== dependencies: - jest-worker "^27.4.5" + jest-worker "^27.4.1" schema-utils "^3.1.1" serialize-javascript "^6.0.0" source-map "^0.6.1" terser "^5.7.2" -terser@^5.10.0, terser@^5.7.2: +terser@^5.10.0: version "5.10.0" resolved "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== @@ -24225,6 +25472,15 @@ terser@^5.10.0, terser@^5.7.2: source-map "~0.7.2" source-map-support "~0.5.20" +terser@^5.7.2: + version "5.9.0" + resolved "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" + integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -24333,12 +25589,20 @@ tildify@2.0.0: integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + version "2.0.11" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== dependencies: setimmediate "^1.0.4" +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + timm@^1.6.1: version "1.7.1" resolved "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" @@ -24350,9 +25614,9 @@ timsort@^0.3.0, timsort@~0.3.0: integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-invariant@^1.0.6: - version "1.2.0" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" - integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== + version "1.1.0" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== tiny-merge-patch@^0.1.2: version "0.1.2" @@ -24377,9 +25641,9 @@ title-case@^3.0.3: tslib "^2.0.3" tmp-promise@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" - integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + version "3.0.2" + resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" + integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== dependencies: tmp "^0.2.0" @@ -24397,7 +25661,7 @@ tmp@^0.2.0, tmp@~0.2.1: dependencies: rimraf "^3.0.0" -tmpl@1.0.5: +tmpl@1.0.x: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== @@ -24489,6 +25753,23 @@ touch@^3.1.0: dependencies: nopt "~1.0.10" +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -24498,12 +25779,11 @@ tough-cookie@^4.0.0: punycode "^2.1.1" universalify "^0.1.2" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== dependencies: - psl "^1.1.28" punycode "^2.1.1" tr46@^2.1.0: @@ -24543,6 +25823,11 @@ trim-newlines@^3.0.0: resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== +trim-off-newlines@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz#8df24847fcb821b0ab27d58ab6efec9f2fe961a1" + integrity sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg== + triple-beam@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" @@ -24571,14 +25856,14 @@ ts-easing@^0.2.0: integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + version "0.1.10" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.10.tgz#b68a49e37e90a05797e590f08494dd528bf383cf" + integrity sha512-UJYuKET7ez7ry0CnvfY6fPIUIZDw+UI3qvTUQeS2MyI4TgEeWAUBqy185LeaHcdJ9zG2dgFpPJU/AecXU0Afug== ts-log@^2.2.3: - version "2.2.4" - resolved "https://registry.npmjs.org/ts-log/-/ts-log-2.2.4.tgz#d672cf904b33735eaba67a7395c93d45fba475b3" - integrity sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ== + version "2.2.3" + resolved "https://registry.npmjs.org/ts-log/-/ts-log-2.2.3.tgz#4da5640fe25a9fb52642cd32391c886721318efb" + integrity sha512-XvB+OdKSJ708Dmf9ore4Uf/q62AYDTzFcAdxc8KNML1mmAWywRFVt/dn1KYJH8Agt5UJNujfM3znU5PxgAzA2w== ts-node@^10.0.0, ts-node@^10.2.1, ts-node@^10.4.0: version "10.7.0" @@ -24706,6 +25991,11 @@ type-detect@4.0.8, type-detect@^4.0.8: resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + type-fest@^0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" @@ -24721,11 +26011,6 @@ type-fest@^0.20.2: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - type-fest@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" @@ -24754,10 +26039,20 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + typed-rest-client@^1.8.4: - version "1.8.6" - resolved "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.6.tgz#d8facd6abd98cbd8ad14cccf056ca5cc306919d7" - integrity sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA== + version "1.8.4" + resolved "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz#ba3fb788e5b9322547406392533f12d660a5ced6" + integrity sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg== dependencies: qs "^6.9.1" tunnel "0.0.6" @@ -24811,10 +26106,10 @@ typescript@~4.5.0, typescript@~4.5.2, typescript@~4.5.4: resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== -ua-parser-js@^0.7.30: - version "0.7.31" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" - integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== +ua-parser-js@^0.7.18: + version "0.7.28" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -24822,9 +26117,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.15.1" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz#9403dc6fa5695a6172a91bc983ea39f0f7c9086d" - integrity sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ== + version "3.14.3" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf" + integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g== uid-number@0.0.6: version "0.0.6" @@ -24838,21 +26133,26 @@ uid-safe@~2.1.5: dependencies: random-bytes "~1.0.0" -uid2@0.0.3: +uid2@0.0.3, uid2@0.0.x: version "0.0.3" resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I= -uid2@0.0.x: - version "0.0.4" - resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44" - integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA== - umask@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= +unbox-primitive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" + integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.0" + has-symbols "^1.0.0" + which-boxed-primitive "^1.0.1" + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -24882,37 +26182,37 @@ undefsafe@^2.0.5: integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== underscore@^1.12.1, underscore@^1.9.1: - version "1.13.2" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" - integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== + version "1.13.1" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" + integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== undici@^4.9.3: - version "4.14.1" - resolved "https://registry.npmjs.org/undici/-/undici-4.14.1.tgz#7633b143a8a10d6d63335e00511d071e8d52a1d9" - integrity sha512-WJ+g+XqiZcATcBaUeluCajqy4pEDcQfK1vy+Fo+bC4/mqXI9IIQD/XWHLS70fkGUT6P52Drm7IFslO651OdLPQ== + version "4.11.0" + resolved "https://registry.npmjs.org/undici/-/undici-4.11.0.tgz#41fb4f944704d77e1c9fb472d40d2dbece64ccf2" + integrity sha512-gofXRqAdm81rzaZgPbMf98qvrNGd3ptJ26+mCcF3EXoC817p//MtL8XcDpTvHUXxdW27rAM2jvTae+KyAchorw== -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== unidiff@1.0.2: version "1.0.2" @@ -24922,9 +26222,9 @@ unidiff@1.0.2: diff "^2.2.2" unified@^10.0.0: - version "10.1.1" - resolved "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz#345e349e3ab353ab612878338eb9d57b4dea1d46" - integrity sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w== + version "10.1.0" + resolved "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz#4e65eb38fc2448b1c5ee573a472340f52b9346fe" + integrity sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g== dependencies: "@types/unist" "^2.0.0" bail "^2.0.0" @@ -24944,6 +26244,11 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -25036,6 +26341,13 @@ universal-github-app-jwt@^1.0.1: "@types/jsonwebtoken" "^8.3.3" jsonwebtoken "^8.5.1" +universal-user-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" + integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== + dependencies: + os-name "^3.1.0" + universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" @@ -25046,6 +26358,11 @@ universalify@^0.1.0, universalify@^0.1.2: resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -25145,9 +26462,9 @@ upper-case@^2.0.2: tslib "^2.0.3" uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + version "4.2.2" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" @@ -25163,18 +26480,18 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.5.6: - version "1.5.9" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.9.tgz#05ff26484a0b5e4040ac64dcee4177223d74675e" - integrity sha512-HpOvhKBvre8wYez+QhHcYiVvVmeF6DVnuSOOPhe3cTum3BnqHhvKaZm8FU5yTiOu/Jut2ZpB2rA/SbBA1JIGlQ== +url-parse@^1.5.3: + version "1.5.7" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.7.tgz#00780f60dbdae90181f51ed85fb24109422c932a" + integrity sha512-HxWkieX+STA38EDk7CE9MEryFeHCKzgagxlGvsdS7WBImq9Mk+PGwiT56w82WI3aicwJA8REp42Cxo98c8FZMA== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" url-value-parser@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.1.0.tgz#fe1ae776122b2eea4bbf284896bbdcd7fc75e1fa" - integrity sha512-gIYPWXujdUdwd/9TGCHTf5Vvgw6lOxjE5Q/k+7WNByYyS0vW5WX0k+xuVlhvPq6gRNhzXVv/ezC+OfeAet5Kcw== + version "2.0.3" + resolved "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.0.3.tgz#cd4b8d6754e458d65e8125260c09718d926e6e21" + integrity sha512-FjIX+Q9lYmDM9uYIGdMYfQW0uLbWVwN2NrL2ayAI7BTOvEwzH+VoDdNquwB9h4dFAx+u6mb0ONLa3sHD5DvyvA== url@0.10.3: version "0.10.3" @@ -25198,9 +26515,9 @@ use-immer@^0.6.0: integrity sha512-dFGRfvWCqPDTOt/S431ETYTg6+uxbpb7A1pptufwXVzGJY3RlXr38+3wyLNpc6SbbmAKjWl6+EP6uW74fkEsXQ== use-memo-one@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz#0c8203a329f76e040047a35a1197defe342fab20" - integrity sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ== + version "1.1.1" + resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.1.tgz#39e6f08fe27e422a7d7b234b5f9056af313bd22c" + integrity sha512-oFfsyun+bP7RX8X2AskHNTxu+R3QdE/RC5IefMbqptmACAA/gfol1KDD5KRzPsGMa62sWxGZw+Ui43u6x4ddoQ== use-resize-observer@^7.0.0: version "7.1.0" @@ -25315,14 +26632,14 @@ v8-compile-cache-lib@^3.0.0: integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + version "2.1.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + version "7.0.0" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc" + integrity sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -25399,13 +26716,13 @@ vary@^1, vary@~1.1.2: integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vasync@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz#d881379ff3685e4affa8e775cf0fd369262a201b" - integrity sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ== + version "2.2.0" + resolved "https://registry.npmjs.org/vasync/-/vasync-2.2.0.tgz#cfde751860a15822db3b132bc59b116a4adaf01b" + integrity sha1-z951GGChWCLbOxMrxZsRakra8Bs= dependencies: verror "1.10.0" -verror@1.10.0: +verror@1.10.0, verror@^1.8.1: version "1.10.0" resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= @@ -25414,27 +26731,18 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -verror@^1.8.1: - version "1.10.1" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb" - integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vfile-message@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.0.tgz#5437035aa43185ff4b9210d32fada6c640e59143" - integrity sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g== + version "3.0.2" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz#db7eaebe7fecb853010f2ef1664427f52baf8f74" + integrity sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.0" - resolved "https://registry.npmjs.org/vfile/-/vfile-5.3.0.tgz#4990c78cb3157005590ee8c930b71cd7fa6a006e" - integrity sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ== + version "5.1.0" + resolved "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz#18e78016f0f71e98d737d40f0fca921dc264a600" + integrity sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -25470,17 +26778,23 @@ vm-browserify@^1.0.1: integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== vm2@^3.9.6: +<<<<<<< HEAD version "3.9.9" resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw== +======= + version "3.9.7" + resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.7.tgz#bb87aa677c97c61e23a6cb6547e44e990517a6f6" + integrity sha512-g/GZ7V0Mlmch3eDVOATvAXr1GsJNg6kQ5PjvYy3HbJMCRn5slNbo/u73Uy7r5yUej1cRa3ZjtoVwcWSQuQ/fow== +>>>>>>> 76d216e74b (fixups) dependencies: acorn "^8.7.0" acorn-walk "^8.2.0" vscode-languageserver-types@^3.15.1: - version "3.16.0" - resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" - integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== + version "3.15.1" + resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" + integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== w3c-hr-time@^1.0.2: version "1.0.2" @@ -25523,11 +26837,11 @@ walk-up-path@^1.0.0: integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== walker@^1.0.7, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + version "1.0.7" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= dependencies: - makeerror "1.0.12" + makeerror "1.0.x" watchpack@^2.3.1: version "2.3.1" @@ -25556,11 +26870,6 @@ web-streams-polyfill@4.0.0-beta.1: resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz#3b19b9817374b7cee06d374ba7eeb3aeb80e8c95" integrity sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ== -web-streams-polyfill@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz#a6b74026b38e4885869fb5c589e90b95ccfc7965" - integrity sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA== - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -25576,31 +26885,30 @@ webidl-conversions@^6.1.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-dev-middleware@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz#aa079a8dedd7e58bfeab358a9af7dab304cee57f" - integrity sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg== +webpack-dev-middleware@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz#8fc02dba6e72e1d373eca361623d84610f27be7c" + integrity sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg== dependencies: colorette "^2.0.10" - memfs "^3.4.1" + memfs "^3.2.2" mime-types "^2.1.31" range-parser "^1.2.1" schema-utils "^4.0.0" webpack-dev-server@^4.7.3: - version "4.7.4" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz#d0ef7da78224578384e795ac228d8efb63d5f945" - integrity sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A== + version "4.7.3" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz#4e995b141ff51fa499906eebc7906f6925d0beaa" + integrity sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" "@types/serve-index" "^1.9.1" "@types/sockjs" "^0.3.33" "@types/ws" "^8.2.2" ansi-html-community "^0.0.8" bonjour "^3.5.0" - chokidar "^3.5.3" + chokidar "^3.5.2" colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^1.6.0" @@ -25620,8 +26928,8 @@ webpack-dev-server@^4.7.3: sockjs "^0.3.21" spdy "^4.0.2" strip-ansi "^7.0.0" - webpack-dev-middleware "^5.3.1" - ws "^8.4.2" + webpack-dev-middleware "^5.3.0" + ws "^8.1.0" webpack-node-externals@^3.0.0: version "3.0.0" @@ -25671,7 +26979,16 @@ webpack@^5, webpack@^5.66.0: watchpack "^2.3.1" webpack-sources "^3.2.3" -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -25692,11 +27009,16 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@^3.0.0, whatwg-fetch@^3.4.1: +whatwg-fetch@^3.0.0: version "3.6.2" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== +whatwg-fetch@^3.4.1: + version "3.4.1" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz#e5f871572d6879663fa5674c8f833f15a8425ab3" + integrity sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ== + whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" @@ -25710,7 +27032,16 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^8.0.0, whatwg-url@^8.4.0, whatwg-url@^8.5.0: +whatwg-url@^8.0.0, whatwg-url@^8.4.0: + version "8.4.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + +whatwg-url@^8.5.0: version "8.7.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== @@ -25719,7 +27050,7 @@ whatwg-url@^8.0.0, whatwg-url@^8.4.0, whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -which-boxed-primitive@^1.0.2: +which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -25749,16 +27080,17 @@ which-pm@2.0.0: path-exists "^4.0.0" which-typed-array@^1.1.2: - version "1.1.7" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" - integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== + version "1.1.4" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" + integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.18.5" + available-typed-arrays "^1.0.2" + call-bind "^1.0.0" + es-abstract "^1.18.0-next.1" foreach "^2.0.5" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.7" + function-bind "^1.1.1" + has-symbols "^1.0.1" + is-typed-array "^1.1.3" which@^1.2.9, which@^1.3.1: version "1.3.1" @@ -25793,7 +27125,14 @@ window-size@^0.2.0: resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= -winston-transport@^4.5.0: +windows-release@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" + integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== + dependencies: + execa "^1.0.0" + +winston-transport@^4.4.2: version "4.5.0" resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== @@ -25803,20 +27142,20 @@ winston-transport@^4.5.0: triple-beam "^1.3.0" winston@^3.2.1: - version "3.6.0" - resolved "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz#be32587a099a292b88c49fac6fa529d478d93fb6" - integrity sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w== + version "3.5.1" + resolved "https://registry.npmjs.org/winston/-/winston-3.5.1.tgz#b25cc899d015836dbf8c583dec8c4c4483a0da2e" + integrity sha512-tbRtVy+vsSSCLcZq/8nXZaOie/S2tPXPFt4be/Q3vI/WtYwm7rrwidxVw2GRa38FIXcJ1kUM6MOZ9Jmnk3F3UA== dependencies: "@dabh/diagnostics" "^2.0.2" async "^3.2.3" is-stream "^2.0.0" - logform "^2.4.0" + logform "^2.3.2" one-time "^1.0.0" readable-stream "^3.4.0" safe-stable-stringify "^2.3.1" stack-trace "0.0.x" triple-beam "^1.3.0" - winston-transport "^4.5.0" + winston-transport "^4.4.2" word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" @@ -25932,16 +27271,16 @@ ws@7.4.5: resolved "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== -ws@8.5.0, ws@^8.4.2: +ws@8.3.0, "ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.2.3, ws@^7.3.1, ws@^7.4.6, ws@^8.3.0: + version "7.5.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + +ws@8.5.0, ws@^8.1.0: version "8.5.0" resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1, ws@^7.4.6, ws@^8.3.0: - version "7.5.7" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== - ws@~7.4.2: version "7.4.6" resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" @@ -26105,7 +27444,7 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2, yaml@^1.9.2: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@20.2.4: +yargs-parser@20.2.4, yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.4" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== @@ -26118,11 +27457,6 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2, yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - yargs-parser@^21.0.0: version "21.0.0" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" @@ -26153,7 +27487,7 @@ yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.2.0: +yargs@^16.1.1, yargs@^16.2.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== From fc67e62ac2a374df43ab072b661525ddd2361593 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Thu, 3 Mar 2022 09:57:03 +0100 Subject: [PATCH 128/225] add @backstage/reviewers as codeowners too Signed-off-by: Emma Indal --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 62c4750911..a62a4c1e78 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -44,7 +44,7 @@ /plugins/scaffolder-backend-module-yeoman @backstage/reviewers @pawelmitka /plugins/search @backstage/reviewers @backstage/techdocs-core /plugins/search-* @backstage/reviewers @backstage/techdocs-core -/plugins/stack-overflow @backstage/techdocs-core +/plugins/stack-overflow @backstage/reviewers @backstage/techdocs-core /plugins/sonarqube @backstage/reviewers @backstage/sda-se-reviewers /plugins/techdocs @backstage/reviewers @backstage/techdocs-core /plugins/techdocs-* @backstage/reviewers @backstage/techdocs-core From f80f3a7bc9b665339cffb19dba4313c19288c1a2 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Mar 2022 12:07:14 +0100 Subject: [PATCH 129/225] create stack-overflow backend plugin and move collator there Signed-off-by: Emma Indal --- plugins/stack-overflow-backend/.eslintrc.js | 3 + plugins/stack-overflow-backend/README.md | 43 +++++++++ plugins/stack-overflow-backend/package.json | 45 ++++++++++ .../src}/index.ts | 2 +- .../StackOverflowQuestionsCollatorFactory.ts | 90 +++++++++++++++++++ .../src/search/index.ts | 17 ++++ plugins/stack-overflow/README.md | 23 +---- plugins/stack-overflow/src/index.ts | 2 +- .../StackOverflowQuestionsCollator.tsx | 72 --------------- 9 files changed, 201 insertions(+), 96 deletions(-) create mode 100644 plugins/stack-overflow-backend/.eslintrc.js create mode 100644 plugins/stack-overflow-backend/README.md create mode 100644 plugins/stack-overflow-backend/package.json rename plugins/{stack-overflow/src/search/StackOverflowQuestionsCollator => stack-overflow-backend/src}/index.ts (87%) create mode 100644 plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts create mode 100644 plugins/stack-overflow-backend/src/search/index.ts delete mode 100644 plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/StackOverflowQuestionsCollator.tsx diff --git a/plugins/stack-overflow-backend/.eslintrc.js b/plugins/stack-overflow-backend/.eslintrc.js new file mode 100644 index 0000000000..16a033dbc6 --- /dev/null +++ b/plugins/stack-overflow-backend/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: [require.resolve('@backstage/cli/config/eslint.backend')], +}; diff --git a/plugins/stack-overflow-backend/README.md b/plugins/stack-overflow-backend/README.md new file mode 100644 index 0000000000..bc4ecb7041 --- /dev/null +++ b/plugins/stack-overflow-backend/README.md @@ -0,0 +1,43 @@ +# Stack Overflow + +A plugin that provides stack overflow specific functionality that can be used in different ways (e.g. for search) to compose your Backstage App. + +## Getting started + +Before we begin, make sure: + +- You have created your own standalone Backstage app using @backstage/create-app and not using a fork of the backstage repository. If you haven't setup Backstage already, start [here](https://backstage.io/docs/getting-started/). + +To use any of the functionality this plugin provides, you need to start by configuring your App with the following config: + +```yaml +stackoverflow: + baseUrl: https://api.stackexchange.com/2.2 # alternative: your internal stack overflow instance +``` + +## Areas of Responsibility + +This stack overflow backend plugin is primarily responsible for the following: + +- Provides a `StackOverflowQuestionsCollatorFactory`, which can be used in the search backend to index stack overflow questions to your Backstage Search. + +### Index Stack Overflow Questions to search + +Before you are able to start index stack overflow questions to search, you need to go through the [search getting started guide](https://backstage.io/docs/features/search/getting-started). + +When you have your `packages/backend/src/plugins/search.ts` file ready to make modifications, add the following code snippet to add the `StackOverflowQuestionsCollatorFactory`. Note that you can modify the `requestParams`. + +> Note: if your baseUrl is set to the external stack overflow api `https://api.stackexchange.com/2.2`, you can find optional and required params under the official API documentation under [`Usage of /questions GET`](https://api.stackexchange.com/docs/questions) + +```ts +indexBuilder.addCollator({ + defaultRefreshIntervalSeconds: 600, + factory: StackOverflowQuestionsCollatorFactory.fromConfig(config, { + requestParams: { + tagged: ['backstage'], + site: 'stackoverflow', + pagesize: 100, + }, + }), +}); +``` diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json new file mode 100644 index 0000000000..3f8727fca6 --- /dev/null +++ b/plugins/stack-overflow-backend/package.json @@ -0,0 +1,45 @@ +{ + "name": "@backstage/plugin-stack-overflow-backend", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": false, + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "backend-plugin" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/stack-overflow-backend" + }, + "keywords": [ + "backstage", + "stack-overflow" + ], + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "clean": "backstage-cli package clean" + }, + "dependencies": { + "@backstage/search-common": "^0.2.4", + "@backstage/config": "^0.1.15", + "qs": "^6.10.3", + "cross-fetch": "^3.1.5", + "winston": "^3.6.0" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/index.ts b/plugins/stack-overflow-backend/src/index.ts similarity index 87% rename from plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/index.ts rename to plugins/stack-overflow-backend/src/index.ts index d5fecd0dce..9b7e7881fd 100644 --- a/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/index.ts +++ b/plugins/stack-overflow-backend/src/index.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export { StackOverflowQuestionsCollator } from './StackOverflowQuestionsCollator'; +export { StackOverflowQuestionsCollatorFactory } from './search'; diff --git a/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts b/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts new file mode 100644 index 0000000000..85b0deee24 --- /dev/null +++ b/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts @@ -0,0 +1,90 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + IndexableDocument, + DocumentCollatorFactory, +} from '@backstage/search-common'; +import { Config } from '@backstage/config'; +import { Readable } from 'stream'; +import fetch from 'cross-fetch'; +import qs from 'qs'; +import { Logger } from 'winston'; + +interface StackOverflowDocument extends IndexableDocument { + answers: number; + tags: string[]; +} + +type StackOverflowQuestionsRequestParams = { + [key: string]: string | string[] | number; +}; + +type StackOverflowQuestionsCollatorFactoryOptions = { + baseUrl?: string; + requestParams: StackOverflowQuestionsRequestParams; + logger: Logger; +}; + +export class StackOverflowQuestionsCollatorFactory + implements DocumentCollatorFactory +{ + protected requestParams: StackOverflowQuestionsRequestParams; + private readonly baseUrl: string | undefined; + private readonly logger: Logger; + public readonly type: string = 'stack-overflow'; + + private constructor(options: StackOverflowQuestionsCollatorFactoryOptions) { + this.baseUrl = options.baseUrl; + this.requestParams = options.requestParams; + this.logger = options.logger; + } + + static fromConfig( + config: Config, + options: StackOverflowQuestionsCollatorFactoryOptions, + ) { + const baseUrl = config.getString('stackoverflow.baseUrl'); + return new StackOverflowQuestionsCollatorFactory({ ...options, baseUrl }); + } + + async getCollator() { + return Readable.from(this.execute()); + } + + async *execute(): AsyncGenerator { + if (!this.baseUrl) { + this.logger.debug( + `No stackoverflow.baseUrl configured in your app-config.yaml`, + ); + } + const params = this.requestParams + ? `?${qs.stringify(this.requestParams, { arrayFormat: 'comma' })}` + : ''; + const res = await fetch(`${this.baseUrl}/questions${params}`); + const data = await res.json(); + + for (const question of data.items) { + yield { + title: question.title, + location: question.link, + text: question.owner.display_name, + tags: question.tags, + answers: question.answer_count, + }; + } + } +} diff --git a/plugins/stack-overflow-backend/src/search/index.ts b/plugins/stack-overflow-backend/src/search/index.ts new file mode 100644 index 0000000000..875a945b44 --- /dev/null +++ b/plugins/stack-overflow-backend/src/search/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { StackOverflowQuestionsCollatorFactory } from './StackOverflowQuestionsCollatorFactory'; diff --git a/plugins/stack-overflow/README.md b/plugins/stack-overflow/README.md index 0a4fbea101..9925605a83 100644 --- a/plugins/stack-overflow/README.md +++ b/plugins/stack-overflow/README.md @@ -17,30 +17,9 @@ stackoverflow: ## Areas of Responsibility -This search plugin is primarily responsible for the following: +This stack overflow frontend plugin is primarily responsible for the following: - Exposing various stack-overflow related components like `` which can be used for composing the search page, and `` which can be used for composing the homepage. -- Provides a `StackOverflowQuestionsCollator`, which can be used in the search backend to index stack overflow questions to your Backstage Search. - -### Index Stack Overflow Questions to search - -Before you are able to start index stack overflow questions to search, you need to go through the [search getting started guide](https://backstage.io/docs/features/search/getting-started). - -When you have your `packages/backend/src/plugins/search.ts` file ready to make modifications, add the following code snippet to add the `StackOverflowQuestionsCollator`. Note that you can modify the `requestParams`. - -```ts -indexBuilder.addCollator({ - defaultRefreshIntervalSeconds: 60, - collator: new StackOverflowQuestionsCollator({ - config, - requestParams: { - tagged: ['backstage'], - site: 'stackoverflow', - pagesize: 100, - }, - }), -}); -``` #### Use specific search result list item for Stack Overflow Question diff --git a/plugins/stack-overflow/src/index.ts b/plugins/stack-overflow/src/index.ts index 9e71988100..fd88491fc6 100644 --- a/plugins/stack-overflow/src/index.ts +++ b/plugins/stack-overflow/src/index.ts @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + export { stackOverflowPlugin, StackOverflowSearchResultListItem, HomePageStackOverflowQuestions, } from './plugin'; -export { StackOverflowQuestionsCollator } from './search/StackOverflowQuestionsCollator'; diff --git a/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/StackOverflowQuestionsCollator.tsx b/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/StackOverflowQuestionsCollator.tsx deleted file mode 100644 index a44b2f4742..0000000000 --- a/plugins/stack-overflow/src/search/StackOverflowQuestionsCollator/StackOverflowQuestionsCollator.tsx +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { IndexableDocument, DocumentCollator } from '@backstage/search-common'; -import { Config } from '@backstage/config'; -import fetch from 'cross-fetch'; -import qs from 'qs'; -import { - StackOverflowQuestion, - StackOverflowQuestionsRequestParams, -} from '../../types'; - -interface StackOverflowDocument extends IndexableDocument { - answers: number; - tags: string[]; -} - -export class StackOverflowQuestionsCollator implements DocumentCollator { - protected baseUrl: string; - protected requestParams: StackOverflowQuestionsRequestParams; - public readonly type: string = 'stack-overflow'; - - constructor({ - config, - requestParams, - }: { - config: Config; - requestParams: StackOverflowQuestionsRequestParams; - }) { - this.baseUrl = config.getString('stackoverflow.baseUrl'); - this.requestParams = requestParams; - } - - async execute() { - const params = this.requestParams - ? `?${qs.stringify(this.requestParams)}` - : ''; - const res = await fetch(`${this.baseUrl}/questions${params}`); - - const data = await res.json(); - return data.items.map( - ({ - title, - link, - owner: { display_name }, - tags, - answer_count, - }: StackOverflowQuestion): StackOverflowDocument => { - return { - title: title, - location: link, - text: display_name, - tags: tags, - answers: answer_count, - }; - }, - ); - } -} From 90965cb56abc9cb91d43108690e55f87c7bf8f80 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Mar 2022 12:08:10 +0100 Subject: [PATCH 130/225] fixups Signed-off-by: Emma Indal --- .../stack-overflow/src/home/StackOverflowQuestions/Content.tsx | 2 +- .../StackOverflowSearchResultListItem.stories.tsx | 1 - .../StackOverflowSearchResultListItem.tsx | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx index a0832fc1f1..cf74de05f9 100644 --- a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx +++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx @@ -24,7 +24,7 @@ import { ListItemSecondaryAction, } from '@material-ui/core'; import OpenInNewIcon from '@material-ui/icons/OpenInNew'; -import { useAsync } from 'react-use'; +import useAsync from 'react-use/lib/useAsync'; import qs from 'qs'; import React from 'react'; import { diff --git a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.stories.tsx b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.stories.tsx index 171a6203ef..1239cabcbe 100644 --- a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.stories.tsx +++ b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.stories.tsx @@ -17,7 +17,6 @@ import { StackOverflowSearchResultListItem } from '../../plugin'; import { wrapInTestApp } from '@backstage/test-utils'; import React, { ComponentType } from 'react'; -import OpenInNewIcon from '@material-ui/icons/OpenInNew'; export default { title: 'Plugins/Search/StackOverflowResultListItem', diff --git a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx index 52c16eeb77..c793939593 100644 --- a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx +++ b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx @@ -37,7 +37,7 @@ export const StackOverflowSearchResultListItem = ( const { location, title, text, answers, tags } = props.result; return ( - + {props.icon && {props.icon}} From 45c8d92581a1881fba4828b969556cfc10637cde Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Mar 2022 12:16:49 +0100 Subject: [PATCH 131/225] add backend to codeowners Signed-off-by: Emma Indal --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a62a4c1e78..cfe405b7d3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -45,6 +45,7 @@ /plugins/search @backstage/reviewers @backstage/techdocs-core /plugins/search-* @backstage/reviewers @backstage/techdocs-core /plugins/stack-overflow @backstage/reviewers @backstage/techdocs-core +/plugins/stack-overflow-backend @backstage/reviewers @backstage/techdocs-core /plugins/sonarqube @backstage/reviewers @backstage/sda-se-reviewers /plugins/techdocs @backstage/reviewers @backstage/techdocs-core /plugins/techdocs-* @backstage/reviewers @backstage/techdocs-core From ac323de4ad949590e970a63da93d4381acd088af Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Mar 2022 12:55:52 +0100 Subject: [PATCH 132/225] add changesets Signed-off-by: Emma Indal --- .changeset/four-birds-peel.md | 5 +++++ .changeset/mean-rabbits-tell.md | 5 +++++ .changeset/witty-years-sniff.md | 5 +++++ 3 files changed, 15 insertions(+) create mode 100644 .changeset/four-birds-peel.md create mode 100644 .changeset/mean-rabbits-tell.md create mode 100644 .changeset/witty-years-sniff.md diff --git a/.changeset/four-birds-peel.md b/.changeset/four-birds-peel.md new file mode 100644 index 0000000000..2d742363fe --- /dev/null +++ b/.changeset/four-birds-peel.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-home': patch +--- + +Adds new HomePageStackOverflowQuestions component which renders a list of stack overflow questions on your homepage. diff --git a/.changeset/mean-rabbits-tell.md b/.changeset/mean-rabbits-tell.md new file mode 100644 index 0000000000..88d853d9b3 --- /dev/null +++ b/.changeset/mean-rabbits-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-stack-overflow-backend': minor +--- + +Add stack overflow backend plugin diff --git a/.changeset/witty-years-sniff.md b/.changeset/witty-years-sniff.md new file mode 100644 index 0000000000..f8d8acf5c1 --- /dev/null +++ b/.changeset/witty-years-sniff.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-stack-overflow': minor +--- + +Add stack overflow plugin From 7c13bcbc30487ac838dfdc41279bbb82ea0f9520 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Mar 2022 12:58:51 +0100 Subject: [PATCH 133/225] make vale happy Signed-off-by: Emma Indal --- plugins/stack-overflow-backend/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/stack-overflow-backend/README.md b/plugins/stack-overflow-backend/README.md index bc4ecb7041..e980f1f806 100644 --- a/plugins/stack-overflow-backend/README.md +++ b/plugins/stack-overflow-backend/README.md @@ -27,7 +27,7 @@ Before you are able to start index stack overflow questions to search, you need When you have your `packages/backend/src/plugins/search.ts` file ready to make modifications, add the following code snippet to add the `StackOverflowQuestionsCollatorFactory`. Note that you can modify the `requestParams`. -> Note: if your baseUrl is set to the external stack overflow api `https://api.stackexchange.com/2.2`, you can find optional and required params under the official API documentation under [`Usage of /questions GET`](https://api.stackexchange.com/docs/questions) +> Note: if your baseUrl is set to the external stack overflow api `https://api.stackexchange.com/2.2`, you can find optional and required parameters under the official API documentation under [`Usage of /questions GET`](https://api.stackexchange.com/docs/questions) ```ts indexBuilder.addCollator({ From 140cf15341015bb81467373bc49885f3f1e3b2e1 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Mar 2022 14:29:58 +0100 Subject: [PATCH 134/225] add api reports Signed-off-by: Emma Indal --- plugins/stack-overflow-backend/api-report.md | 52 +++++++++++++++++++ plugins/stack-overflow-backend/src/index.ts | 8 ++- .../StackOverflowQuestionsCollatorFactory.ts | 26 ++++++++-- .../src/search/index.ts | 2 +- plugins/stack-overflow/api-report.md | 46 ++++++++++++++++ plugins/stack-overflow/src/index.ts | 11 +++- plugins/stack-overflow/src/plugin.ts | 7 ++- plugins/stack-overflow/src/types.ts | 15 ++++++ 8 files changed, 160 insertions(+), 7 deletions(-) create mode 100644 plugins/stack-overflow-backend/api-report.md create mode 100644 plugins/stack-overflow/api-report.md diff --git a/plugins/stack-overflow-backend/api-report.md b/plugins/stack-overflow-backend/api-report.md new file mode 100644 index 0000000000..e8743f1e30 --- /dev/null +++ b/plugins/stack-overflow-backend/api-report.md @@ -0,0 +1,52 @@ +## API Report File for "@backstage/plugin-stack-overflow-backend" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +/// + +import { Config } from '@backstage/config'; +import { DocumentCollatorFactory } from '@backstage/search-common'; +import { IndexableDocument } from '@backstage/search-common'; +import { Logger as Logger_2 } from 'winston'; +import { Readable } from 'stream'; + +// @public +export interface StackOverflowDocument extends IndexableDocument { + // (undocumented) + answers: number; + // (undocumented) + tags: string[]; +} + +// @public +export class StackOverflowQuestionsCollatorFactory + implements DocumentCollatorFactory +{ + // (undocumented) + execute(): AsyncGenerator; + // (undocumented) + static fromConfig( + config: Config, + options: StackOverflowQuestionsCollatorFactoryOptions, + ): StackOverflowQuestionsCollatorFactory; + // (undocumented) + getCollator(): Promise; + // (undocumented) + protected requestParams: StackOverflowQuestionsRequestParams; + // (undocumented) + readonly type: string; +} + +// @public +export type StackOverflowQuestionsCollatorFactoryOptions = { + baseUrl?: string; + requestParams: StackOverflowQuestionsRequestParams; + logger: Logger_2; +}; + +// @public +export type StackOverflowQuestionsRequestParams = { + [key: string]: string | string[] | number; +}; +``` diff --git a/plugins/stack-overflow-backend/src/index.ts b/plugins/stack-overflow-backend/src/index.ts index 9b7e7881fd..6e461b8183 100644 --- a/plugins/stack-overflow-backend/src/index.ts +++ b/plugins/stack-overflow-backend/src/index.ts @@ -14,4 +14,10 @@ * limitations under the License. */ -export { StackOverflowQuestionsCollatorFactory } from './search'; +/** + * Stack Overflow backend plugin + * + * @packageDocumentation + */ + +export * from './search'; diff --git a/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts b/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts index 85b0deee24..89b63b09c5 100644 --- a/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts +++ b/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts @@ -24,21 +24,41 @@ import fetch from 'cross-fetch'; import qs from 'qs'; import { Logger } from 'winston'; -interface StackOverflowDocument extends IndexableDocument { +/** + * Extended IndexableDocument with stack overflow specific properties + * + * @public + */ +export interface StackOverflowDocument extends IndexableDocument { answers: number; tags: string[]; } -type StackOverflowQuestionsRequestParams = { +/** + * Type representing the request parameters accepted by the {@link StackOverflowQuestionsCollatorFactory} + * + * @public + */ +export type StackOverflowQuestionsRequestParams = { [key: string]: string | string[] | number; }; -type StackOverflowQuestionsCollatorFactoryOptions = { +/** + * Options for {@link StackOverflowQuestionsCollatorFactory} + * + * @public + */ +export type StackOverflowQuestionsCollatorFactoryOptions = { baseUrl?: string; requestParams: StackOverflowQuestionsRequestParams; logger: Logger; }; +/** + * Search collator responsible for collecting stack overflow questions to index. + * + * @public + */ export class StackOverflowQuestionsCollatorFactory implements DocumentCollatorFactory { diff --git a/plugins/stack-overflow-backend/src/search/index.ts b/plugins/stack-overflow-backend/src/search/index.ts index 875a945b44..ed3e05cb28 100644 --- a/plugins/stack-overflow-backend/src/search/index.ts +++ b/plugins/stack-overflow-backend/src/search/index.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export { StackOverflowQuestionsCollatorFactory } from './StackOverflowQuestionsCollatorFactory'; +export * from './StackOverflowQuestionsCollatorFactory'; diff --git a/plugins/stack-overflow/api-report.md b/plugins/stack-overflow/api-report.md new file mode 100644 index 0000000000..d8e944a35d --- /dev/null +++ b/plugins/stack-overflow/api-report.md @@ -0,0 +1,46 @@ +## API Report File for "@backstage/plugin-stack-overflow" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +/// + +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { ComponentRenderer } from '@backstage/plugin-home/src/extensions'; +import { ReactNode } from 'react'; + +// @public +export const HomePageStackOverflowQuestions: ( + props: ComponentRenderer & { + title?: string | undefined; + } & StackOverflowQuestionsContentProps, +) => JSX.Element; + +// @public +export const stackOverflowPlugin: BackstagePlugin<{}, {}>; + +// @public +export type StackOverflowQuestion = { + title: string; + link: string; + owner: Record; + tags: string[]; + answer_count: number; +}; + +// @public +export type StackOverflowQuestionsContentProps = { + requestParams: StackOverflowQuestionsRequestParams; +}; + +// @public +export type StackOverflowQuestionsRequestParams = { + [key: string]: string | string[] | number; +}; + +// @public +export const StackOverflowSearchResultListItem: (props: { + result: any; + icon?: ReactNode; +}) => JSX.Element; +``` diff --git a/plugins/stack-overflow/src/index.ts b/plugins/stack-overflow/src/index.ts index fd88491fc6..264a0d5d7c 100644 --- a/plugins/stack-overflow/src/index.ts +++ b/plugins/stack-overflow/src/index.ts @@ -13,9 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +/** + * Stack Overflow frontend plugin + * + * @packageDocumentation + */ export { stackOverflowPlugin, StackOverflowSearchResultListItem, HomePageStackOverflowQuestions, } from './plugin'; +export type { + StackOverflowQuestion, + StackOverflowQuestionsContentProps, + StackOverflowQuestionsRequestParams, +} from './types'; diff --git a/plugins/stack-overflow/src/plugin.ts b/plugins/stack-overflow/src/plugin.ts index 90a82da719..dee48cdf8e 100644 --- a/plugins/stack-overflow/src/plugin.ts +++ b/plugins/stack-overflow/src/plugin.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { createPlugin, createComponentExtension, @@ -20,6 +21,11 @@ import { import { createCardExtension } from '@backstage/plugin-home'; import { StackOverflowQuestionsContentProps } from './types'; +/** + * The Backstage plugin that holds stack overflow specific components + * + * @public + */ export const stackOverflowPlugin = createPlugin({ id: 'stack-overflow', }); @@ -29,7 +35,6 @@ export const stackOverflowPlugin = createPlugin({ * * @public */ - export const StackOverflowSearchResultListItem = stackOverflowPlugin.provide( createComponentExtension({ name: 'StackOverflowResultListItem', diff --git a/plugins/stack-overflow/src/types.ts b/plugins/stack-overflow/src/types.ts index a23585ed3c..c3fa08cc4f 100644 --- a/plugins/stack-overflow/src/types.ts +++ b/plugins/stack-overflow/src/types.ts @@ -14,6 +14,11 @@ * limitations under the License. */ +/** + * Type representing a stack overflow question + * + * @public + */ export type StackOverflowQuestion = { title: string; link: string; @@ -22,10 +27,20 @@ export type StackOverflowQuestion = { answer_count: number; }; +/** + * Props for HomePageStackOverflowQuestions + * + * @public + */ export type StackOverflowQuestionsContentProps = { requestParams: StackOverflowQuestionsRequestParams; }; +/** + * Type representing the request parameters accepted by the HomePageStackOverflowQuestions component + * + * @public + */ export type StackOverflowQuestionsRequestParams = { [key: string]: string | string[] | number; }; From a27a0e61d42247b9d52e20278d891cc124e04b83 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 4 Mar 2022 15:19:07 +0100 Subject: [PATCH 135/225] export ComponentRenderer type from home plugin Signed-off-by: Emma Indal --- .changeset/four-birds-peel.md | 4 +++- plugins/home/api-report.md | 9 ++++++++- plugins/home/src/index.ts | 1 + plugins/stack-overflow/api-report.md | 2 +- plugins/stack-overflow/package.json | 7 ++++--- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.changeset/four-birds-peel.md b/.changeset/four-birds-peel.md index 2d742363fe..f315f7a326 100644 --- a/.changeset/four-birds-peel.md +++ b/.changeset/four-birds-peel.md @@ -2,4 +2,6 @@ '@backstage/plugin-home': patch --- -Adds new HomePageStackOverflowQuestions component which renders a list of stack overflow questions on your homepage. +- Adds new HomePageStackOverflowQuestions component which renders a list of stack overflow questions on your homepage. + +- Exports ComponentRenderer type. diff --git a/plugins/home/api-report.md b/plugins/home/api-report.md index 6fae50151c..8cb5ef3d1c 100644 --- a/plugins/home/api-report.md +++ b/plugins/home/api-report.md @@ -39,6 +39,13 @@ export const ComponentAccordion: ({ ContextProvider?: ((props: any) => JSX.Element) | undefined; }) => JSX.Element; +// Warning: (ae-missing-release-tag) "ComponentRenderer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type ComponentRenderer = { + Renderer?: (props: RendererProps) => JSX.Element; +}; + // Warning: (ae-missing-release-tag) "ComponentTab" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -103,7 +110,6 @@ export const HomepageCompositionRoot: (props: { children?: ReactNode; }) => JSX.Element; -// Warning: (ae-forgotten-export) The symbol "ComponentRenderer" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "HomePageRandomJoke" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -161,5 +167,6 @@ export const WelcomeTitle: () => JSX.Element; // Warnings were encountered during analysis: // +// src/extensions.d.ts:3:5 - (ae-forgotten-export) The symbol "RendererProps" needs to be exported by the entry point index.d.ts // src/extensions.d.ts:24:5 - (ae-forgotten-export) The symbol "ComponentParts" needs to be exported by the entry point index.d.ts ``` diff --git a/plugins/home/src/index.ts b/plugins/home/src/index.ts index 4871323677..d30b76a7fc 100644 --- a/plugins/home/src/index.ts +++ b/plugins/home/src/index.ts @@ -35,3 +35,4 @@ export { export { SettingsModal, HeaderWorldClock } from './components'; export type { ClockConfig } from './components'; export { createCardExtension } from './extensions'; +export type { ComponentRenderer } from './extensions'; diff --git a/plugins/stack-overflow/api-report.md b/plugins/stack-overflow/api-report.md index d8e944a35d..277b0272d1 100644 --- a/plugins/stack-overflow/api-report.md +++ b/plugins/stack-overflow/api-report.md @@ -6,7 +6,7 @@ /// import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { ComponentRenderer } from '@backstage/plugin-home/src/extensions'; +import { ComponentRenderer } from '@backstage/plugin-home'; import { ReactNode } from 'react'; // @public diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 350f4aa0ca..0bc9c1c161 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -36,14 +36,15 @@ "@testing-library/jest-dom": "^5.10.1" }, "peerDependencies": { + "@types/react": "^16.13.1 || ^17.0.0", "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.13.2-next.0", + "@backstage/cli": "^0.15.0", + "@backstage/test-utils": "^0.3.0", + "@testing-library/react": "^11.2.5", "@backstage/core-app-api": "^0.5.2", "@backstage/dev-utils": "^0.2.21-next.0", - "@backstage/test-utils": "^0.2.4", - "@testing-library/react": "^11.2.5", "@testing-library/user-event": "^13.1.8", "@types/jest": "*", "@types/node": "*", From 38724b2b9822d09861b22145f11d0815894281c0 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 7 Mar 2022 12:50:45 +0100 Subject: [PATCH 136/225] remove labs package Signed-off-by: Emma Indal --- plugins/stack-overflow/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 0bc9c1c161..39fc3d7d63 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -28,7 +28,6 @@ "@backstage/theme": "^0.2.14", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", - "@material-ui/lab": "4.0.0-alpha.57", "qs": "^6.10.3", "cross-fetch": "^3.0.6", "lodash": "^4.17.21", From d4d7261067f622b1d5e61627366173b8f32fb6b1 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 14 Mar 2022 13:49:08 +0100 Subject: [PATCH 137/225] bump dependencies Signed-off-by: Emma Indal --- plugins/stack-overflow-backend/package.json | 2 +- plugins/stack-overflow/package.json | 2 +- yarn.lock | 1012 +++++++++++++++++-- 3 files changed, 940 insertions(+), 76 deletions(-) diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index 3f8727fca6..e97eb0dcce 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -33,7 +33,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/search-common": "^0.2.4", + "@backstage/search-common": "^0.3.1", "@backstage/config": "^0.1.15", "qs": "^6.10.3", "cross-fetch": "^3.1.5", diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 39fc3d7d63..44e2d4197b 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -39,7 +39,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.15.0", + "@backstage/cli": "^0.15.2", "@backstage/test-utils": "^0.3.0", "@testing-library/react": "^11.2.5", "@backstage/core-app-api": "^0.5.2", diff --git a/yarn.lock b/yarn.lock index 7d354d74da..bd1b3cc1b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,13 +9,6 @@ dependencies: aws4 "^1.11.0" -"@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== - dependencies: - "@jridgewell/trace-mapping" "^0.3.0" - "@apidevtools/json-schema-ref-parser@^9.0.6": version "9.0.6" resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#5d9000a3ac1fd25404da886da6b266adcd99cf1c" @@ -104,10 +97,17 @@ openapi-sampler "^1.1.0" use-resize-observer "^7.0.0" +<<<<<<< HEAD "@asyncapi/specs@^2.11.0": version "2.12.0" resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.12.0.tgz#15534ca9e518b561d33edfdfdbb234f9b274f261" integrity sha512-X4Xkrl+9WXSk5EJhsueIxNx6ymHI5wpkw4ofetV+VRnPLNob/XO4trPSJClrL5hlknxbGADLvlrkI5d3XJ996g== +======= +"@asyncapi/specs@^2.13.0": + version "2.13.0" + resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.13.0.tgz#c0f46d00e8a67c1c9ea445eb3e8bca90f7dca795" + integrity sha512-X0OrxJtzwRH8iLILO/gUTDqjGVPmagmdlgdyuBggYAoGXzF6ZuAws3XCLxtPNve5eA/0V/1puwpUYEGekI22og== +>>>>>>> e5aaf7bb66 (bump dependencies) "@azure/abort-controller@^1.0.0": version "1.0.2" @@ -321,6 +321,7 @@ version "7.16.8" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== +<<<<<<< HEAD "@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": version "7.16.12" @@ -347,27 +348,35 @@ version "7.17.5" resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== +======= + +"@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": + version "7.16.12" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784" + integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: - "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" + "@babel/generator" "^7.16.8" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.2" - "@babel/parser" "^7.17.3" + "@babel/helpers" "^7.16.7" + "@babel/parser" "^7.16.12" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.16.10" + "@babel/types" "^7.16.8" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.1.2" semver "^6.3.0" + source-map "^0.5.0" "@babel/generator@^7.14.0", "@babel/generator@^7.16.0", "@babel/generator@^7.16.8": version "7.16.8" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== +<<<<<<< HEAD dependencies: "@babel/types" "^7.16.8" jsesc "^2.5.1" @@ -377,8 +386,10 @@ version "7.17.3" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.16.8" jsesc "^2.5.1" source-map "^0.5.0" @@ -584,6 +595,7 @@ version "7.16.7" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== +<<<<<<< HEAD dependencies: "@babel/template" "^7.16.7" "@babel/traverse" "^7.16.7" @@ -593,10 +605,12 @@ version "7.17.2" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" "@babel/highlight@^7.0.0", "@babel/highlight@^7.16.7": version "7.16.10" @@ -616,11 +630,14 @@ version "7.16.12" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== +<<<<<<< HEAD "@babel/parser@^7.17.3": version "7.17.3" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -1092,7 +1109,11 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" +<<<<<<< HEAD "@babel/plugin-transform-react-constant-elements@^7.12.1", "@babel/plugin-transform-react-constant-elements@^7.14.5": +======= +"@babel/plugin-transform-react-constant-elements@^7.14.5": +>>>>>>> e5aaf7bb66 (bump dependencies) version "7.16.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz#19e9e4c2df2f6c3e6b3aea11778297d81db8df62" integrity sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ== @@ -1346,6 +1367,7 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" +<<<<<<< HEAD <<<<<<< HEAD "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": ======= @@ -1358,6 +1380,9 @@ "@babel/runtime@^7.7.2": >>>>>>> 76d216e74b (fixups) +======= +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +>>>>>>> e5aaf7bb66 (bump dependencies) version "7.17.2" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== @@ -1399,6 +1424,7 @@ version "7.16.10" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== +<<<<<<< HEAD dependencies: "@babel/code-frame" "^7.16.7" "@babel/generator" "^7.16.8" @@ -1415,15 +1441,17 @@ version "7.17.3" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" + "@babel/generator" "^7.16.8" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.16.7" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.3" - "@babel/types" "^7.17.0" + "@babel/parser" "^7.16.10" + "@babel/types" "^7.16.8" debug "^4.1.0" globals "^11.1.0" @@ -1439,6 +1467,7 @@ version "7.16.8" resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== +<<<<<<< HEAD dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -1447,10 +1476,13 @@ version "7.17.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +<<<<<<< HEAD "@backstage/app-defaults@^0.2.1": version "0.2.1" resolved "https://registry.npmjs.org/@backstage/app-defaults/-/app-defaults-0.2.1.tgz#8a99245cef0bfd4cc1a864d80eee76eec2ed944e" @@ -1487,15 +1519,32 @@ version "0.13.0" resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.13.0.tgz#abeb91522ac7ef7907907ad5bc889803131db209" integrity sha512-Q+0C0LJ8niNQ4TXduUNTycZ2PLMbhKmfgWywunJLO34DZAoFnTWJEAdEYF536YyLciHhLO0dHRUaHY29Sdr+Xg== +======= +"@backstage/catalog-client@^0.7.0": + version "0.7.2" + resolved "https://registry.npmjs.org/@backstage/catalog-client/-/catalog-client-0.7.2.tgz#bcfdb2c210e878fbc5833f18e59feae1e7e48330" + integrity sha512-jeJfi4ekwIffi8ozSzvgdv94DZ2kKNwFVhAP0V+63GF6wIspvGuTIwU2uKYH0v9JXA08lwmAsOGnrrwgS6ragA== + dependencies: + "@backstage/catalog-model" "^0.11.0" + "@backstage/errors" "^0.2.2" + cross-fetch "^3.1.5" + +"@backstage/catalog-model@^0.10.0": + version "0.10.1" + resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.10.1.tgz#dcc3415eb4d4ee3d437355c477e85c7479626b3b" + integrity sha512-c004aQeO9cxtSZZc2iBcE6eoqurQLdj7YUm8mHWs8hEaPTA2UPVHawt+wlt89VywkI89X0wF7BuXV2LKVUfXvw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@backstage/config" "^0.1.15" "@backstage/errors" "^0.2.2" "@backstage/types" "^0.1.3" + "@types/json-schema" "^7.0.5" ajv "^7.0.3" json-schema "^0.4.0" lodash "^4.17.21" uuid "^8.0.0" +<<<<<<< HEAD "@backstage/catalog-model@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-1.0.0.tgz#0aa8694a3182aaf4232725842da751bf5f78bd68" @@ -1674,6 +1723,136 @@ "@backstage/errors" "^0.2.2" "@backstage/theme" "^0.2.15" "@material-table/core" "^3.1.0" +======= +"@backstage/catalog-model@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.11.0.tgz#f02f86fe74305b49fce300e9c221659f9092d1b7" + integrity sha512-DnmbzKZejvxBSQv1LjA3AZIxwmchir2A9L9MzWH9D+pVKIu4AEt2HItf6g+xhpgk+4GJppETsEgrLI+Iyr6QSA== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/errors" "^0.2.2" + "@backstage/types" "^0.1.3" + "@types/json-schema" "^7.0.5" + ajv "^7.0.3" + json-schema "^0.4.0" + lodash "^4.17.21" + uuid "^8.0.0" + +"@backstage/catalog-model@^0.9.7": + version "0.9.10" + resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.9.10.tgz#bd5662e1ad7bd7c9604f3f45d055c99b5b2bb87f" + integrity sha512-KhCjbZKhS5zZhHiGHmBMq6hDGDshMSZOPGXehtdhr6/oW7Ee5fDcOnhMqreCi1Ebm4RIWJhZcRrxO6X1TTi4TQ== + dependencies: + "@backstage/config" "^0.1.13" + "@backstage/errors" "^0.2.0" + "@backstage/types" "^0.1.1" + "@types/json-schema" "^7.0.5" + "@types/yup" "^0.29.13" + ajv "^7.0.3" + json-schema "^0.4.0" + lodash "^4.17.21" + uuid "^8.0.0" + yup "^0.32.9" + +"@backstage/core-components@^0.8.0", "@backstage/core-components@^0.8.9": + version "0.8.10" + resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.8.10.tgz#6f79c46cdf507fc3a0d764848a4a8aa73af7ce93" + integrity sha512-gGyCPPSdgvzYHWMKlxe/H4yFmEYDQuAtaoT7Y/3+pilcJSIQi9d3oV104BDLC94bdkyOWDsA1tT+PGZtd0p/8g== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/core-plugin-api" "^0.7.0" + "@backstage/errors" "^0.2.2" + "@backstage/theme" "^0.2.15" + "@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.57" + "@react-hookz/web" "^12.3.0" + "@types/react-sparklines" "^1.7.0" + "@types/react-text-truncate" "^0.14.0" + ansi-regex "^6.0.1" + classnames "^2.2.6" + d3-selection "^3.0.0" + d3-shape "^3.0.0" + d3-zoom "^3.0.0" + dagre "^0.8.5" + history "^5.0.0" + immer "^9.0.1" + lodash "^4.17.21" + pluralize "^8.0.0" + prop-types "^15.7.2" + qs "^6.9.4" + rc-progress "3.2.4" + react-helmet "6.1.0" + react-hook-form "^7.12.2" + react-markdown "^8.0.0" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-sparklines "^1.7.0" + react-syntax-highlighter "^15.4.5" + react-text-truncate "^0.17.0" + react-use "^17.3.2" + react-virtualized-auto-sizer "^1.0.6" + react-window "^1.8.6" + remark-gfm "^3.0.1" + zen-observable "^0.8.15" + zod "^3.11.6" + +"@backstage/core-plugin-api@^0.6.0", "@backstage/core-plugin-api@^0.6.1": + version "0.6.1" + resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.6.1.tgz#a6fb8110f384ab9405990450956b2c81b88e90b2" + integrity sha512-DtHY0eG2OQ4QAHVb5y8yDUQXZW9Ot7Fsr4Rpe3BbiLpkXA5hZLXPMThOyz1Y79ZOEC5eiyhUlXL1g6P7ylOKMw== + dependencies: + "@backstage/config" "^0.1.14" + "@backstage/types" "^0.1.2" + "@backstage/version-bridge" "^0.1.2" + history "^5.0.0" + prop-types "^15.7.2" + react-router-dom "6.0.0-beta.0" + zen-observable "^0.8.15" + +"@backstage/core-plugin-api@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.7.0.tgz#e53f3aa5bbf074a70fcaf264b04402637008659c" + integrity sha512-SVzrJjvEjWzJgIqfFUjQjqW0RGCzj6zgLULpSgP53GQat70I0wje6E4n0blNU+/q7hpt6PoIT0lgZtqFOJrfYQ== + dependencies: + "@backstage/config" "^0.1.15" + "@backstage/types" "^0.1.3" + "@backstage/version-bridge" "^0.1.2" + history "^5.0.0" + prop-types "^15.7.2" + react-router-dom "6.0.0-beta.0" + zen-observable "^0.8.15" + +"@backstage/integration@^0.7.3": + version "0.7.5" + resolved "https://registry.npmjs.org/@backstage/integration/-/integration-0.7.5.tgz#c68848f35db51705b3287b6fa6a259ae4b17bfbc" + integrity sha512-KUoNQLfPaRqQsdfx04IX4d3EIHbJU3tJxoUjVCCDIAThtep6clhY4uoxXIYTUz+bhERUGGJYhMR+1ryEEtwWhw== + dependencies: + "@backstage/config" "^0.1.15" + "@octokit/auth-app" "^3.4.0" + "@octokit/rest" "^18.5.3" + cross-fetch "^3.1.5" + git-url-parse "^11.6.0" + lodash "^4.17.21" + luxon "^2.0.2" + +"@backstage/plugin-catalog-react@^0.6.5": + version "0.6.15" + resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-0.6.15.tgz#04de88caa4ac2ce2ad000ee34d28b11eda3910b9" + integrity sha512-8JDM0upFD/WpB6Qs8oIQf99E2yaqbf835IEgt6aY7l4lEzUrtW4007VXPMdDqOwVwhVM4PbTIvyIRzkQpcr89A== + dependencies: + "@backstage/catalog-client" "^0.7.0" + "@backstage/catalog-model" "^0.10.0" + "@backstage/core-components" "^0.8.9" + "@backstage/core-plugin-api" "^0.6.1" + "@backstage/errors" "^0.2.1" + "@backstage/integration" "^0.7.3" + "@backstage/plugin-permission-common" "^0.5.0" + "@backstage/plugin-permission-react" "^0.3.1" + "@backstage/types" "^0.1.2" + "@backstage/version-bridge" "^0.1.2" +>>>>>>> e5aaf7bb66 (bump dependencies) "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@material-ui/lab" "4.0.0-alpha.57" @@ -1713,6 +1892,7 @@ resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.9.2.tgz#9a3d79a15039256bbc007e5daa08c983050e0238" integrity sha512-kh0FB0FmjC55W+xSEkKrAc7D6hvbYLY7N1UUd6M4VBghYXD61Y8RrJFKmBM3bAfPgYaryQNjYgA0BsoTo53PJA== dependencies: +<<<<<<< HEAD "@backstage/config" "^1.0.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/errors" "^1.0.0" @@ -2068,6 +2248,26 @@ version "5.0.4" resolved "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.4.tgz#fefffecf73b59dbee7ae905b3c6a2e64c489f0cb" integrity sha512-czayDIrgC8qBnqwClvh9nxjCMem+XZG7xtfdYwq3dxpzA30qGppcI0i088VYug5RCFR+l1N+HUvkujSZuBK65w== +======= + "@babel/runtime" "^7.10.4" + "@changesets/config" "^1.7.0" + "@changesets/get-version-range-type" "^0.3.2" + "@changesets/git" "^1.3.1" + "@changesets/types" "^4.1.0" + "@manypkg/get-packages" "^1.1.3" + detect-indent "^6.0.0" + fs-extra "^7.0.1" + lodash.startcase "^4.4.0" + outdent "^0.5.0" + prettier "^1.19.1" + resolve-from "^5.0.0" + semver "^5.4.1" + +"@changesets/assemble-release-plan@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.1.0.tgz#0fcb18253998e3bc037a554874de43bcc58c4840" + integrity sha512-iYlqffCMhcwZ+6Cv8cimf10OBGYXQKufBI7J6htpRgCV2nT99RKXEjbYOtrXWKQqzu0XxOsk15apSEwjZN0JRw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/runtime" "^7.10.4" "@changesets/config" "^1.6.4" @@ -2096,6 +2296,7 @@ semver "^5.4.1" "@changesets/cli@^2.14.0": +<<<<<<< HEAD version "2.20.0" resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.20.0.tgz#f24dbd38bd4bc47bf083e59b6bb9cbf531465808" integrity sha512-IUYSgZKtS+wXPD5hxfnCfZ1JWCbBI0CRrhxpkgVKcXDwpxiRU8stCwuSuVj14kiYlThuH2zL0/ZuGvhF4r28Gg== @@ -2108,6 +2309,21 @@ "@changesets/get-dependents-graph" "^1.3.0" "@changesets/get-release-plan" "^3.0.5" "@changesets/git" "^1.3.0" +======= + version "2.21.0" + resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.21.0.tgz#b689f91ed908150efc06e0985e6b4cfbd9aea3a3" + integrity sha512-cJXRg28MmF9VbQrlwSjpY4AJA2xZUbXFCpQ3kFmX0IeppO7wknZ2QfocAhIqwM828t8d3R4Zpi5xnvJ/crIcQw== + dependencies: + "@babel/runtime" "^7.10.4" + "@changesets/apply-release-plan" "^5.0.5" + "@changesets/assemble-release-plan" "^5.1.0" + "@changesets/changelog-git" "^0.1.10" + "@changesets/config" "^1.7.0" + "@changesets/errors" "^0.1.4" + "@changesets/get-dependents-graph" "^1.3.1" + "@changesets/get-release-plan" "^3.0.6" + "@changesets/git" "^1.3.1" +>>>>>>> e5aaf7bb66 (bump dependencies) "@changesets/logger" "^0.0.5" "@changesets/pre" "^1.0.9" "@changesets/read" "^0.5.3" @@ -2162,6 +2378,7 @@ fs-extra "^7.0.1" semver "^5.4.1" +<<<<<<< HEAD "@changesets/get-release-plan@^3.0.5": version "3.0.5" resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.5.tgz#c05cff031bba737c8dd236afe97e77b007ee44a3" @@ -2173,6 +2390,19 @@ "@changesets/pre" "^1.0.9" "@changesets/read" "^0.5.3" "@changesets/types" "^4.0.2" +======= +"@changesets/get-release-plan@^3.0.6": + version "3.0.6" + resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.6.tgz#15aac108b9d0f139841562c9372d8cfd738503dc" + integrity sha512-HpPyr8y6xkihy3rONLZ6OtfgYq88NotidPAuS3nwMeZjLHiIVLyejR2+/5q717f6HKcrATxAjTwMAcjl7X/uzA== + dependencies: + "@babel/runtime" "^7.10.4" + "@changesets/assemble-release-plan" "^5.1.0" + "@changesets/config" "^1.7.0" + "@changesets/pre" "^1.0.10" + "@changesets/read" "^0.5.4" + "@changesets/types" "^4.1.0" +>>>>>>> e5aaf7bb66 (bump dependencies) "@manypkg/get-packages" "^1.1.3" "@changesets/get-version-range-type@^0.3.2": @@ -2372,6 +2602,7 @@ "@lezer/common" "^0.15.5" "@lezer/lr" "^0.15.0" +<<<<<<< HEAD <<<<<<< HEAD "@codemirror/legacy-modes@^0.19.0": version "0.19.1" @@ -2458,10 +2689,20 @@ dependencies: "@codemirror/state" "^0.19.0" +======= +"@codemirror/rangeset@^0.19.0": + version "0.19.2" + resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.2.tgz#d7a999e4273c00fecef4aba8535a426073cdcddf" + integrity sha512-5d+X8LtmeZtfFtKrSx57bIHRUpKv2HD0b74clp4fGA7qJLLfYehF6FGkJJxJb8lKsqAga1gdjjWr0jiypmIxoQ== + dependencies: + "@codemirror/state" "^0.19.0" + +>>>>>>> e5aaf7bb66 (bump dependencies) "@codemirror/state@^0.19.0", "@codemirror/state@^0.19.3": version "0.19.6" resolved "https://registry.npmjs.org/@codemirror/state/-/state-0.19.6.tgz#d631f041d39ce41b7891b099fca26cb1fdb9763e" integrity sha512-sqIQZE9VqwQj7D4c2oz9mfLhlT1ElAzGB5lO1lE33BPyrdNy1cJyCIOecT4cn4VeJOFrnjOeu+IftZ3zqdFETw== +<<<<<<< HEAD >>>>>>> f9b03ab02f (fixups) dependencies: "@codemirror/text" "^0.19.0" @@ -2470,6 +2711,15 @@ version "0.19.7" resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.7.tgz#99a9696307b90677f6e3abe29ea6d77c1c0a8db5" integrity sha512-4ExcbKksmU4PIT8s11/dPESgMNLQqlMlbQzRQ1CyMcmygcuQk+58zQ84nv/X17OCUd2ephZ1DKEaHHACifzCiA== +======= + dependencies: + "@codemirror/text" "^0.19.0" + +"@codemirror/stream-parser@^0.19.2": + version "0.19.2" + resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.2.tgz#793428e55aa7b9daa64cb733973e5d5e3d9a2306" + integrity sha512-hBKRQlyu8GUOrY33xZ6/1kAfNZ8ZUm6cX9a7mPx8zAAqnpz/fpksC/qJRrkg1mPMBwxm+JG4fqAwDGJ3gLVniQ== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@codemirror/highlight" "^0.19.0" "@codemirror/language" "^0.19.0" @@ -2478,6 +2728,7 @@ "@lezer/common" "^0.15.0" "@lezer/lr" "^0.15.0" +<<<<<<< HEAD "@codemirror/stream-parser@^0.19.2": version "0.19.2" resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.2.tgz#793428e55aa7b9daa64cb733973e5d5e3d9a2306" @@ -2496,10 +2747,13 @@ resolved "https://registry.npmjs.org/@codemirror/text/-/text-0.19.6.tgz#9adcbd8137f69b75518eacd30ddb16fd67bbac45" integrity sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA== ======= +======= +>>>>>>> e5aaf7bb66 (bump dependencies) "@codemirror/text@^0.19.0": version "0.19.5" resolved "https://registry.npmjs.org/@codemirror/text/-/text-0.19.5.tgz#75033af2476214e79eae22b81ada618815441c18" integrity sha512-Syu5Xc7tZzeUAM/y4fETkT0zgGr48rDG+w4U38bPwSIUr+L9S/7w2wDE1WGNzjaZPz12F6gb1gxWiSTg9ocLow== +<<<<<<< HEAD >>>>>>> f9b03ab02f (fixups) "@codemirror/theme-one-dark@^0.19.1": @@ -2518,11 +2772,14 @@ dependencies: "@codemirror/state" "^0.19.0" "@codemirror/view" "^0.19.0" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) "@codemirror/view@^0.19.0": version "0.19.27" resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.27.tgz#76e5dc19ecb4ce53e9fef1d29245040d7ff64183" integrity sha512-Uz/LecEf7CyvMWaQBlKtbJCYn0hRnEZ2yYvuZVy9YMhmvGmES6ec7FaKw7lDFFOMLwLbBThc9kfw4DCHreHN1w== +<<<<<<< HEAD dependencies: "@codemirror/rangeset" "^0.19.0" "@codemirror/state" "^0.19.3" @@ -2535,8 +2792,10 @@ version "0.19.47" resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.47.tgz#2163c3016d7680bf50dd695c0e3abdaf80f45363" integrity sha512-SfbagKvJQl5dtt+9wYpo9sa3ZkMgUxTq+/hXDf0KVwIx+zu3cJIqfEm9xSx6yXkq7it7RsPGHaPasApNffF/8g== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: - "@codemirror/rangeset" "^0.19.5" + "@codemirror/rangeset" "^0.19.0" "@codemirror/state" "^0.19.3" "@codemirror/text" "^0.19.0" style-mod "^4.0.0" @@ -2660,10 +2919,17 @@ ts-node "^9" tslib "^2" +<<<<<<< HEAD "@eslint/eslintrc@^1.0.5": version "1.0.5" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== +======= +"@eslint/eslintrc@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz#7ce1547a5c46dfe56e1e45c3c9ed18038c721c6a" + integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -2888,6 +3154,7 @@ tslib "~2.3.0" "@graphql-codegen/graphql-modules-preset@^2.3.2": +<<<<<<< HEAD version "2.3.2" resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.3.2.tgz#df88431e4cff656799b1ab0324e0795606162389" integrity sha512-O3PPDQejqf3rF9sHqlrl00M+BSIKJAovFWt2zkDr/D3I/XwntR4QdQDKyY9zTotHfPpgJKyxyMzthpdqPD5XUA== @@ -2895,6 +3162,15 @@ "@graphql-codegen/plugin-helpers" "^2.3.2" "@graphql-codegen/visitor-plugin-common" "2.5.2" "@graphql-tools/utils" "8.5.5" +======= + version "2.3.5" + resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.3.5.tgz#07ef9ef6e66d4fbb76767097a7cc3cace34f8d08" + integrity sha512-y1PcTFr483Imzd346YdmNSvW3FlN4iYj4sRWCRys+WXpiFcXq+D7+1dFZvs75/9bIHoOEeQtusHHuRPy9qJVkA== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.4.0" + "@graphql-codegen/visitor-plugin-common" "2.7.1" + "@graphql-tools/utils" "8.6.1" +>>>>>>> e5aaf7bb66 (bump dependencies) change-case-all "1.0.14" parse-filepath "^1.0.2" tslib "~2.3.0" @@ -2933,16 +3209,50 @@ tslib "~2.3.0" "@graphql-codegen/typescript@^2.4.2": +<<<<<<< HEAD version "2.4.2" resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.2.tgz#a239d5fd8f11140d5d4c81cfae7ff02054b724dc" integrity sha512-8ajWidiFqF1KNAywtb/692SjwTyjzrDHo1sf2Q7Z+rh9qDEIrh83VHB8naT/1CefOvxj3MS6GbcsvJMizaE/AQ== +======= + version "2.4.5" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.5.tgz#80ca7a343511a27cd587c0b220b0a0dd99a4dc4b" + integrity sha512-Ytb8phNHKl/v/wxudsMOAV1dmzIbckWHm2J83PLNOvnu9CGEhgsd67vfe3ZoF95VU2BKSG8BXGa6uL9z2xDmuA== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@graphql-codegen/plugin-helpers" "^2.3.2" "@graphql-codegen/schema-ast" "^2.4.1" +<<<<<<< HEAD "@graphql-codegen/visitor-plugin-common" "2.5.2" auto-bind "~4.0.0" tslib "~2.3.0" +"@graphql-codegen/visitor-plugin-common@2.5.2": + version "2.5.2" + resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.5.2.tgz#90aa4add41e17bca83f1c7c8ad674f2a06065efd" + integrity sha512-qDMraPmumG+vEGAz42/asRkdgIRmQWH5HTc320UX+I6CY6eE/Ey85cgzoqeQGLV8gu4sj3UkNx/3/r79eX4u+Q== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.3.2" + "@graphql-tools/optimize" "^1.0.1" + "@graphql-tools/relay-operation-optimizer" "^6.3.7" + "@graphql-tools/utils" "^8.3.0" +======= + "@graphql-codegen/visitor-plugin-common" "2.7.1" +>>>>>>> e5aaf7bb66 (bump dependencies) + auto-bind "~4.0.0" + change-case-all "1.0.14" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.3.0" + +<<<<<<< HEAD +======= +<<<<<<< HEAD +"@graphql-codegen/visitor-plugin-common@2.7.4": + version "2.7.4" + resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.7.4.tgz#fbc8aec9df0035b8f29fa64a6356cbb02062da5d" + integrity sha512-aaDoEudDD+B7DK/UwDSL2Fzej75N9hNJ3N8FQuTIeDyw6FNGWUxmkjVBLQGlzfnYfK8IYkdfYkrPn3Skq0pVxA== +======= "@graphql-codegen/visitor-plugin-common@2.5.2": version "2.5.2" resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.5.2.tgz#90aa4add41e17bca83f1c7c8ad674f2a06065efd" @@ -2959,6 +3269,24 @@ parse-filepath "^1.0.2" tslib "~2.3.0" +"@graphql-codegen/visitor-plugin-common@2.7.1": + version "2.7.1" + resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.7.1.tgz#bdcded24d1d6f329d32b90704397d6001374b893" + integrity sha512-Ew/+0GwGwL3ZSXS0cYz6lVvE7S5SkbTr7caRpLa4FpAdLGNskCgdA1n6W5tX5c7qsaYstqlxp30hJTfgTsYS6A== +>>>>>>> e5aaf7bb66 (bump dependencies) + dependencies: + "@graphql-codegen/plugin-helpers" "^2.4.0" + "@graphql-tools/optimize" "^1.0.1" + "@graphql-tools/relay-operation-optimizer" "^6.3.7" + "@graphql-tools/utils" "^8.3.0" + auto-bind "~4.0.0" + change-case-all "1.0.14" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.3.0" + +>>>>>>> b6559cd41d (bump dependencies) "@graphql-tools/apollo-engine-loader@^7.0.5": version "7.2.1" resolved "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.2.1.tgz#14e5d0b1032a7d882d22a7533c8969ee3fa797f2" @@ -3079,6 +3407,7 @@ "@graphql-tools/utils" "^8.5.1" tslib "~2.3.0" +<<<<<<< HEAD "@graphql-tools/import@^6.2.6": version "6.3.1" resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz#731c47ab6c6ac9f7994d75c76b6c2fa127d2d483" @@ -3091,6 +3420,12 @@ version "6.6.1" resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.1.tgz#2a7e1ceda10103ffeb8652a48ddc47150b035485" integrity sha512-i9WA6k+erJMci822o9w9DoX+uncVBK60LGGYW8mdbhX0l7wEubUpA000thJ1aarCusYh0u+ZT9qX0HyVPXu25Q== +======= +"@graphql-tools/import@^6.2.6", "@graphql-tools/import@^6.5.7": + version "6.6.6" + resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.6.tgz#a4ff216e6b8a49c392bb8a4378d4e9caf2b303d7" + integrity sha512-a0aVajxqu1MsL8EwavA44Osw20lBOIhq8IM2ZIHFPP62cPAcOB26P+Sq57DHMsSyX5YQ0ab9XPM2o4e1dQhs0w== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@graphql-tools/utils" "8.5.3" resolve-from "5.0.0" @@ -3131,6 +3466,7 @@ <<<<<<< HEAD "@graphql-tools/load@^7.3.0", "@graphql-tools/load@^7.4.1": +<<<<<<< HEAD version "7.5.5" resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.5.tgz#d61e5bdee59b6c8aa9631f74f0b2a70d512e5b31" integrity sha512-qPasit140nwTbMQbFCfZcgaS7q/0+xMQGdkMGU11rtHt6/jMgJIKDUU8/fJGKltNY3EeHlEdVtZmggZD7Rr6bA== @@ -3153,6 +3489,14 @@ dependencies: "@graphql-tools/schema" "8.3.1" "@graphql-tools/utils" "^8.5.1" +======= + version "7.5.1" + resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.1.tgz#8c7f846d2185ddc1d44fdfbf1ed9cb678f69e40b" + integrity sha512-j9XcLYZPZdl/TzzqA83qveJmwcCxgGizt5L1+C1/Z68brTEmQHLdQCOR3Ma3ewESJt6DU05kSTu2raKaunkjRg== + dependencies: + "@graphql-tools/schema" "8.3.1" + "@graphql-tools/utils" "^8.6.0" +>>>>>>> e5aaf7bb66 (bump dependencies) p-limit "3.1.0" tslib "~2.3.0" @@ -3165,6 +3509,7 @@ "@graphql-tools/utils" "^7.7.0" tslib "~2.2.0" +<<<<<<< HEAD <<<<<<< HEAD "@graphql-tools/merge@8.2.6": version "8.2.6" @@ -3185,6 +3530,8 @@ ======= >>>>>>> f9b03ab02f (fixups) +======= +>>>>>>> e5aaf7bb66 (bump dependencies) "@graphql-tools/merge@^8.2.1": version "8.2.1" resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.1.tgz#bf83aa06a0cfc6a839e52a58057a84498d0d51ff" @@ -3245,20 +3592,29 @@ relay-compiler "12.0.0" tslib "~2.3.0" +<<<<<<< HEAD <<<<<<< HEAD "@graphql-tools/schema@8.3.5": version "8.3.5" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz#ebec0c0c7f53e591d34375d6f81d0660852fcaca" integrity sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg== ======= +======= +>>>>>>> e5aaf7bb66 (bump dependencies) "@graphql-tools/schema@8.3.1", "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": version "8.3.1" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74" integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ== +<<<<<<< HEAD >>>>>>> f9b03ab02f (fixups) dependencies: "@graphql-tools/merge" "8.2.6" "@graphql-tools/utils" "8.6.5" +======= + dependencies: + "@graphql-tools/merge" "^8.2.1" + "@graphql-tools/utils" "^8.5.1" +>>>>>>> e5aaf7bb66 (bump dependencies) tslib "~2.3.0" value-or-promise "1.0.11" @@ -3306,7 +3662,11 @@ valid-url "1.0.9" ws "7.4.5" +<<<<<<< HEAD "@graphql-tools/url-loader@^7.0.11": +======= +"@graphql-tools/url-loader@^7.0.11", "@graphql-tools/url-loader@^7.4.2": +>>>>>>> e5aaf7bb66 (bump dependencies) version "7.7.0" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.0.tgz#504f0030c75b61bca4ac07da49e8cd872c316972" integrity sha512-mBBb+aJqI4E0MVEzyfi76Pi/G6lGxGTVt/tP1YtKJly7UnonNoWOtDusdL3zIVAGhGgLsNrLbGhLDbwSd6TV6A== @@ -3331,6 +3691,7 @@ value-or-promise "^1.0.11" ws "^8.3.0" +<<<<<<< HEAD "@graphql-tools/url-loader@^7.4.2": version "7.5.3" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.5.3.tgz#a594be40e3bc68d22f76746356e7f0b8117b7137" @@ -3381,6 +3742,19 @@ version "8.6.5" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.5.tgz#ac04571b03f854c7a938b2ab700516a6c6d32335" integrity sha512-mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA== +======= +"@graphql-tools/utils@8.6.1": + version "8.6.1" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" + integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg== + dependencies: + tslib "~2.3.0" + +"@graphql-tools/utils@8.6.2", "@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.5.3", "@graphql-tools/utils@^8.6.0": + version "8.6.2" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.2.tgz#095408135f091aac68fe18a0a21b708e685500da" + integrity sha512-x1DG0cJgpJtImUlNE780B/dfp8pxvVxOD6UeykFH5rHes26S4kGokbgU8F1IgrJ1vAPm/OVBHtd2kicTsPfwdA== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: tslib "~2.3.0" @@ -4036,24 +4410,6 @@ resolved "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== - -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jsdevtools/ono@^7.1.3": version "7.1.3" resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" @@ -4999,9 +5355,15 @@ integrity sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA== "@microsoft/microsoft-graph-types@^2.6.0": +<<<<<<< HEAD version "2.13.0" resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.13.0.tgz#aa584e4897665df5a9c8869a226264cd6ec5882b" integrity sha512-63FfWBLcyNo8tMP4oPcdqHQvk4ehuWpiUMjVLD7zJXPENIowpdwudP969AALkKzlwsjWImamdivGKd2Zc8Z1Uw== +======= + version "2.15.0" + resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.15.0.tgz#1705ea1ce84c3de4705957392d7f0e3ae465c9f8" + integrity sha512-EyuOpZs55HUoC37Ujrp6IRgE5ghf/wtDrlWuJm7J/DKoB7B/Iek7eXdavTygx2uBeDZ5b4jXXvwl4PiDLlEcsw== +>>>>>>> e5aaf7bb66 (bump dependencies) "@microsoft/tsdoc-config@~0.15.2": version "0.15.2" @@ -5718,6 +6080,7 @@ resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-3.2.1.tgz#84fbf322485aee3a84101e189161f0687779ec8d" integrity sha512-8UiDeDbjCImFSfOegGu13otQ7OdP9FOYpcLjeouppnhs+MPeIEAtYS+jCcBKmi3reyTagC15/KVSRhde1wS1vg== +<<<<<<< HEAD "@roadiehq/backstage-plugin-buildkite@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-2.0.0.tgz#e5da049a2e15c533228e26da1af537b3783fe5de" @@ -5727,6 +6090,17 @@ "@backstage/core-components" "^0.9.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" +======= +"@roadiehq/backstage-plugin-buildkite@^1.3.8": + version "1.3.8" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-1.3.8.tgz#fa91880e7d95a82d8d532f663cc9415c74dc6143" + integrity sha512-eZW826eMTgy7znkNRQzIhi/mlL6ztYRGq/+kThX3JjoHyGfIxEd+GnR58YEeuvs5dy277SJ/9gm3iibhK9T9sQ== + dependencies: + "@backstage/catalog-model" "^0.9.7" + "@backstage/core-components" "^0.8.0" + "@backstage/core-plugin-api" "^0.6.0" + "@backstage/plugin-catalog-react" "^0.6.5" +>>>>>>> e5aaf7bb66 (bump dependencies) "@backstage/theme" "^0.2.6" "@material-ui/core" "^4.12.1" "@material-ui/icons" "^4.11.2" @@ -5737,6 +6111,7 @@ react-router-dom "6.0.0-beta.0" react-use "^17.2.4" +<<<<<<< HEAD "@roadiehq/backstage-plugin-github-insights@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-2.0.0.tgz#1137f4f3ad5744559bf095ee868371f5fd8c60ec" @@ -5747,6 +6122,18 @@ "@backstage/core-plugin-api" "^1.0.0" "@backstage/integration-react" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" +======= +"@roadiehq/backstage-plugin-github-insights@^1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-1.5.0.tgz#9a693be80adc9f3b9cfe5ba615628abde88e121f" + integrity sha512-r2FclGGF/6aTrT6wH5Xq+5ByfVwgCDt83+KINf1ELNuWt5x0nMtguSTyZqJ5n1AdbGybVJZ84dlfbSTa8RTU7g== + dependencies: + "@backstage/catalog-model" "^0.9.7" + "@backstage/core-components" "^0.8.0" + "@backstage/core-plugin-api" "^0.6.0" + "@backstage/integration-react" "^0.1.10" + "@backstage/plugin-catalog-react" "^0.6.5" +>>>>>>> e5aaf7bb66 (bump dependencies) "@backstage/theme" "^0.2.7" "@date-io/core" "2.10.7" "@material-ui/core" "^4.11.0" @@ -5761,6 +6148,7 @@ react-use "^17.2.4" zustand "3.6.9" +<<<<<<< HEAD "@roadiehq/backstage-plugin-github-pull-requests@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.0.0.tgz#99ba670e1bd9bdc954b43901883aaf9832ae8942" @@ -5770,6 +6158,17 @@ "@backstage/core-components" "^0.9.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" +======= +"@roadiehq/backstage-plugin-github-pull-requests@^1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-1.4.0.tgz#3f250c8b13c6b95ec2825f9b7088ea5199054013" + integrity sha512-qrbybOtZdWWWKptGfAvf1vzlwXGcvidWT5Dr6mbibn7GwSxSe4CD58pIEHJzFoT9jLHFGgAn5Uhh2SG/Ek7gbw== + dependencies: + "@backstage/catalog-model" "^0.9.7" + "@backstage/core-components" "^0.8.0" + "@backstage/core-plugin-api" "^0.6.0" + "@backstage/plugin-catalog-react" "^0.6.5" +>>>>>>> e5aaf7bb66 (bump dependencies) "@material-ui/core" "^4.11.0" "@material-ui/icons" "^4.9.1" "@octokit/rest" "^18.5.3" @@ -5782,6 +6181,7 @@ react-router "6.0.0-beta.0" react-use "^17.2.4" +<<<<<<< HEAD "@roadiehq/backstage-plugin-travis-ci@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-2.0.0.tgz#d86eba878bbaa6ada77e9eda932ff25bd9121021" @@ -5791,6 +6191,17 @@ "@backstage/core-components" "^0.9.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" +======= +"@roadiehq/backstage-plugin-travis-ci@^1.3.6": + version "1.3.6" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-1.3.6.tgz#6f45a42bdf39aa6baab56f0c4400990238df1625" + integrity sha512-th+2GaOjkPArDUbTBuhhCz/6WL4gcrVRVAsDHzuSrrJqNtsz6kXdBIHhR/58En16BZ2bnHhRzY87uiUDLjAntA== + dependencies: + "@backstage/catalog-model" "^0.9.7" + "@backstage/core-components" "^0.8.0" + "@backstage/core-plugin-api" "^0.6.0" + "@backstage/plugin-catalog-react" "^0.6.5" +>>>>>>> e5aaf7bb66 (bump dependencies) "@backstage/theme" "^0.2.9" "@material-ui/core" "^4.11.3" "@material-ui/icons" "^4.11.2" @@ -5935,6 +6346,7 @@ dependencies: type-detect "4.0.8" +<<<<<<< HEAD "@sinonjs/commons@^1.7.0": version "1.7.1" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" @@ -5942,6 +6354,8 @@ dependencies: type-detect "4.0.8" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) "@sinonjs/fake-timers@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" @@ -7177,6 +7591,7 @@ resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.4.tgz#f7b5a86ccd843c0ccaddfaedd9ee1081bc1cde3b" integrity sha512-l3xuhmyF2kBldy15SeY6d6HbK2BacEcSK1qTF1ISPtPHr29JH0C1fndz9ExXLKpGl0J6pZi+dGp1i5xesMt60Q== +<<<<<<< HEAD "@types/luxon@^2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.5.tgz#29d3b095d55ee50df8f4cf109b16009334d9828e" @@ -7188,6 +7603,8 @@ integrity sha512-ZuzIc7aN+i2ZDMWIiSmMdubR9EMMSTdEzF6R+FckP4p6xdnOYKqknTo/k+xXQvciSXlNGIwA4OPU5X7JIFzYdA== >>>>>>> 76d216e74b (fixups) +======= +>>>>>>> e5aaf7bb66 (bump dependencies) "@types/mdast@^3.0.0", "@types/mdast@^3.0.3": version "3.0.3" resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" @@ -7411,9 +7828,15 @@ integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== "@types/react-dom@*", "@types/react-dom@>=16.9.0": +<<<<<<< HEAD version "17.0.9" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== +======= + version "17.0.11" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz#e1eadc3c5e86bdb5f7684e00274ae228e7bcc466" + integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@types/react" "*" @@ -7819,7 +8242,11 @@ dependencies: "@types/node" "*" +<<<<<<< HEAD "@types/websocket@1.0.4", "@types/websocket@^1.0.4": +======= +"@types/websocket@^1.0.4": +>>>>>>> e5aaf7bb66 (bump dependencies) version "1.0.4" resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8" integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA== @@ -7903,7 +8330,11 @@ semver "^7.3.5" tsutils "^3.21.0" +<<<<<<< HEAD "@typescript-eslint/experimental-utils@5.9.0", "@typescript-eslint/experimental-utils@^5.0.0": +======= +"@typescript-eslint/experimental-utils@^5.0.0": +>>>>>>> e5aaf7bb66 (bump dependencies) version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz#652762d37d6565ef07af285021b8347b6c79a827" integrity sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g== @@ -7916,6 +8347,7 @@ eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": +<<<<<<< HEAD version "5.9.1" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.1.tgz#b114011010a87e17b3265ca715e16c76a9834cef" integrity sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g== @@ -7937,6 +8369,29 @@ version "5.9.1" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.1.tgz#6c27be89f1a9409f284d95dfa08ee3400166fe69" integrity sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ== +======= + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz#0394ed8f2f849273c0bf4b811994d177112ced5c" + integrity sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg== + dependencies: + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/typescript-estree" "5.13.0" + debug "^4.3.2" + +"@typescript-eslint/scope-manager@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz#cf6aff61ca497cb19f0397eea8444a58f46156b6" + integrity sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA== + dependencies: + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/visitor-keys" "5.13.0" + +"@typescript-eslint/scope-manager@5.14.0": + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" + integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@typescript-eslint/types" "5.9.1" "@typescript-eslint/visitor-keys" "5.9.1" @@ -7994,6 +8449,7 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== +<<<<<<< HEAD "@typescript-eslint/typescript-estree@5.12.0": version "5.12.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz#cabf545fd592722f0e2b4104711e63bf89525cd2" @@ -8007,17 +8463,68 @@ dependencies: "@typescript-eslint/types" "5.9.1" "@typescript-eslint/visitor-keys" "5.9.1" +======= +"@typescript-eslint/scope-manager@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz#02dfef920290c1dcd7b1999455a3eaae7a1a3117" + integrity sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg== + dependencies: + "@typescript-eslint/types" "5.9.0" + "@typescript-eslint/visitor-keys" "5.9.0" + +"@typescript-eslint/type-utils@5.14.0": + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz#711f08105860b12988454e91df433567205a8f0b" + integrity sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw== + dependencies: + "@typescript-eslint/utils" "5.14.0" +>>>>>>> e5aaf7bb66 (bump dependencies) debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" +<<<<<<< HEAD <<<<<<< HEAD "@typescript-eslint/typescript-estree@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" integrity sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ== +======= +"@typescript-eslint/types@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz#da1de4ae905b1b9ff682cab0bed6b2e3be9c04e5" + integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== + +"@typescript-eslint/types@5.14.0": + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" + integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== + +"@typescript-eslint/types@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" + integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== + +"@typescript-eslint/typescript-estree@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz#b37c07b748ff030a3e93d87c842714e020b78141" + integrity sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA== + dependencies: + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/visitor-keys" "5.13.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/typescript-estree@5.14.0": + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" + integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@typescript-eslint/types" "5.16.0" "@typescript-eslint/visitor-keys" "5.16.0" @@ -8027,6 +8534,7 @@ semver "^7.3.5" tsutils "^3.21.0" +<<<<<<< HEAD "@typescript-eslint/utils@5.12.0": version "5.12.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz#92fd3193191621ab863add2f553a7b38b65646af" @@ -8046,6 +8554,25 @@ version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz#42218b459d6d66418a4eb199a382bdc261650679" integrity sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ== +======= +"@typescript-eslint/typescript-estree@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz#0e5c6f03f982931abbfbc3c1b9df5fbf92a3490f" + integrity sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw== + dependencies: + "@typescript-eslint/types" "5.9.0" + "@typescript-eslint/visitor-keys" "5.9.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.14.0": + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4" + integrity sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@types/json-schema" "^7.0.9" "@typescript-eslint/scope-manager" "5.16.0" @@ -8054,6 +8581,7 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" +<<<<<<< HEAD "@typescript-eslint/visitor-keys@5.12.0": version "5.12.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz#1ac9352ed140b07ba144ebf371b743fdf537ec16" @@ -8072,10 +8600,25 @@ version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz#f27dc3b943e6317264c7492e390c6844cd4efbbb" integrity sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g== +======= +"@typescript-eslint/visitor-keys@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz#f45ff55bcce16403b221ac9240fbeeae4764f0fd" + integrity sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g== + dependencies: + "@typescript-eslint/types" "5.13.0" + eslint-visitor-keys "^3.0.0" + +"@typescript-eslint/visitor-keys@5.14.0": + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" + integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@typescript-eslint/types" "5.16.0" eslint-visitor-keys "^3.0.0" +<<<<<<< HEAD "@uiw/react-codemirror@^4.5.1": version "4.5.1" resolved "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.5.1.tgz#f2af4e761f13b729a3ec7c7c858b34432cdf46a7" @@ -8086,6 +8629,15 @@ "@codemirror/state" "^0.19.9" "@codemirror/theme-one-dark" "^0.19.1" "@codemirror/view" "^0.19.45" +======= +"@typescript-eslint/visitor-keys@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" + integrity sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw== + dependencies: + "@typescript-eslint/types" "5.9.0" + eslint-visitor-keys "^3.0.0" +>>>>>>> e5aaf7bb66 (bump dependencies) "@webassemblyjs/ast@1.11.1": version "1.11.1" @@ -8404,17 +8956,23 @@ ajv@^7.0.3: require-from-string "^2.0.2" uri-js "^4.2.2" +<<<<<<< HEAD <<<<<<< HEAD ajv@^8.0.0, ajv@^8.10.0, ajv@^8.8.0: version "8.10.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== ======= +======= +>>>>>>> e5aaf7bb66 (bump dependencies) ajv@^8.0.0, ajv@^8.8.0: version "8.9.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz#738019146638824dea25edcf299dcba1b0e7eb18" integrity sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ== +<<<<<<< HEAD >>>>>>> f9b03ab02f (fixups) +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -8575,6 +9133,7 @@ apollo-server-caching@^3.3.0: dependencies: lru-cache "^6.0.0" +<<<<<<< HEAD <<<<<<< HEAD apollo-server-core@^3.6.4, apollo-server-core@^3.6.5: version "3.6.5" @@ -8586,6 +9145,12 @@ apollo-server-core@^3.6.1: resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.1.tgz#e835198a2eda5bcb61d2a1174d44ecb0ac414d15" integrity sha512-V2Us5x7d+w8dVdyFLxEygMgaQ3KZ6Z59HpaQBNHQ7C5wVZhjUXIsgbehBtfzQbMpyMx0z5/8Z8eIrC4zNoGJDw== >>>>>>> f9b03ab02f (fixups) +======= +apollo-server-core@^3.6.3: + version "3.6.3" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.3.tgz#6b12ffa1af8bc8799930f72360090834915033d1" + integrity sha512-TFJmAlI6vPp1MHOSXqYkE6leAyMekWv/D/3ma11uETkcd3EPjERGmxtTXPJElMVEkOK9BEElYKthCrH7bjYLuw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@apollographql/apollo-tools" "^0.5.1" "@apollographql/graphql-playground-html" "1.6.29" @@ -8631,6 +9196,7 @@ apollo-server-errors@^3.3.0: resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.0.tgz#ac8ceb1400064312f983d8d70195693fbcf2be3c" integrity sha512-9/MNlPZBbEjcCdJcUSbKbVEBT9xZS8GSpX7T/TyzcxHSbsXJszSDSipQNGC+PRKTKAUnv61IONScVyLKEZ5XEQ== +<<<<<<< HEAD <<<<<<< HEAD apollo-server-express@^3.0.0, apollo-server-express@^3.6.4: version "3.6.5" @@ -8642,6 +9208,12 @@ apollo-server-express@^3.0.0, apollo-server-express@^3.6.1: resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.1.tgz#b8bda303e05c551ac76c9c0b26bc651ca1466912" integrity sha512-29imWvRPn5GsQq02Akt0+jejpWzpOIZfUmgoiFm4YB7somvhDNw15Pu7fv4sISK8ehNIDF68IpLd2cpY8sCkYQ== >>>>>>> f9b03ab02f (fixups) +======= +apollo-server-express@^3.0.0, apollo-server-express@^3.6.3: + version "3.6.3" + resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.3.tgz#5daf58bf0bdf0107ded7cd52c7e6ce6cd32c8b44" + integrity sha512-3CjahZ+n+1T7pHH1qW1B6Ns0BzwOMeupAp2u0+M8ruOmE/e7VKn0OSOQQckZ8Z2AcWxWeno9K89fIv3PoSYgYA== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@types/accepts" "^1.3.5" "@types/body-parser" "1.19.2" @@ -8649,6 +9221,7 @@ apollo-server-express@^3.0.0, apollo-server-express@^3.6.1: "@types/express" "4.17.13" "@types/express-serve-static-core" "4.17.27" accepts "^1.3.5" +<<<<<<< HEAD <<<<<<< HEAD apollo-server-core "^3.6.5" apollo-server-types "^3.5.2" @@ -8656,6 +9229,10 @@ apollo-server-express@^3.0.0, apollo-server-express@^3.6.1: apollo-server-core "^3.6.1" apollo-server-types "^3.5.0" >>>>>>> f9b03ab02f (fixups) +======= + apollo-server-core "^3.6.3" + apollo-server-types "^3.5.1" +>>>>>>> e5aaf7bb66 (bump dependencies) body-parser "^1.19.0" cors "^2.8.5" parseurl "^1.3.3" @@ -8691,6 +9268,7 @@ apollo-server-types@^3.5.0: apollo-server-env "^4.2.0" apollo-server@^3.0.0: +<<<<<<< HEAD <<<<<<< HEAD version "3.6.4" resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.6.4.tgz#e1bc966eb7d03944274056af4b17b380f0ac8696" @@ -8706,6 +9284,14 @@ apollo-server@^3.0.0: apollo-server-core "^3.6.1" apollo-server-express "^3.6.1" >>>>>>> f9b03ab02f (fixups) +======= + version "3.6.3" + resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.6.3.tgz#0ba0ddb2835ccf27056d20b6f5b83b0ce9545a79" + integrity sha512-kNvOiDNkIaO+MsfR9v40Vz4ArlDdc9VwVKGJy5dniLW9AoDa/tSF99m8ItfGoMypqlRPMgrNGxkMuToBnvYXNQ== + dependencies: + apollo-server-core "^3.6.3" + apollo-server-express "^3.6.3" +>>>>>>> e5aaf7bb66 (bump dependencies) express "^4.17.1" aproba@^1.0.3: @@ -9056,9 +9642,15 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.840.0, aws-sdk@^2.928.0, aws-sdk@^2.948.0: +<<<<<<< HEAD version "2.1065.0" resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1065.0.tgz#82b6e4e2a6fbccb1767339e309edd4f0daa958e6" integrity sha512-OFvpXoL104dTFKpU14ILcLDPAlDbkJNIKXnnG2pK+2x++CvzIRJeNyERtUuEo7QMUOwq5U4nIQJKSPt5fBC/HA== +======= + version "2.1088.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1088.0.tgz#e8ea761eff2b5c42aca6136c5a01fa9b8066f0a2" + integrity sha512-KtGJTvMPJL6QynasbSMNvz7Onc5ejebY6NzuUvgrw6sNohNJDR/3J/0e016ocQwvEq79MNK4v4EsxNi9eMELtg== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: buffer "4.9.2" events "1.1.1" @@ -9361,12 +9953,16 @@ bdd-lazy-var@^2.6.0: resolved "https://registry.npmjs.org/bdd-lazy-var/-/bdd-lazy-var-2.6.1.tgz#ca03fb36d68c5a507c0ba9a4d53160b899e6b7cb" integrity sha512-X3ADwcFji/IHIrYJhTTpaiWhoOx4pl4whdAx1dmvdeUPsMUb7fVYFvf/Q33VEAEAVkEwi5rgNSZ0Y9oOVeQV+A== +<<<<<<< HEAD before-after-hook@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== before-after-hook@^2.2.0: +======= +before-after-hook@^2.1.0, before-after-hook@^2.2.0: +>>>>>>> e5aaf7bb66 (bump dependencies) version "2.2.2" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== @@ -9972,6 +10568,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" +<<<<<<< HEAD caniuse-lite@^1.0.0: version "1.0.30001282" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" @@ -9981,6 +10578,12 @@ caniuse-lite@^1.0.30001286: version "1.0.30001296" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001296.tgz#d99f0f3bee66544800b93d261c4be55a35f1cec8" integrity sha512-WfrtPEoNSoeATDlf4y3QvkwiELl9GyPLISV5GejTbbQRtQx4LhsXmc9IQ6XCL2d7UxCyEzToEZNMeqR79OUw8Q== +======= +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286: + version "1.0.30001315" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001315.tgz#f1b1efd1171ee1170d52709a7252632dacbd7c77" + integrity sha512-5v7LFQU4Sb/qvkz7JcZkvtSH1Ko+1x2kgo3ocdBeMGZSOFpuE1kkm0kpTwLtWeFrw5qw08ulLxJjVIXIS8MkiQ== +>>>>>>> e5aaf7bb66 (bump dependencies) canvas@^2.6.1: version "2.9.0" @@ -10500,10 +11103,17 @@ color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +<<<<<<< HEAD color-string@^1.5.2, color-string@^1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== +======= +color-string@^1.5.2, color-string@^1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" + integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -10999,11 +11609,14 @@ core-js@^3.4.1: resolved "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== +<<<<<<< HEAD core-js@^3.6.5: version "3.20.3" resolved "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz#c710d0a676e684522f3db4ee84e5e18a9d11d69a" integrity sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -11147,7 +11760,11 @@ cross-fetch@3.1.4: dependencies: node-fetch "2.6.1" +<<<<<<< HEAD cross-fetch@3.1.5, cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.3, cross-fetch@^3.1.4, cross-fetch@^3.1.5: +======= +cross-fetch@3.1.5, cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.3, cross-fetch@^3.1.5: +>>>>>>> e5aaf7bb66 (bump dependencies) version "3.1.5" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -11193,6 +11810,7 @@ cross-undici-fetch@^0.0.20: node-fetch "^2.6.5" undici "^4.9.3" +<<<<<<< HEAD cross-undici-fetch@^0.0.26: version "0.0.26" resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.0.26.tgz#29d93d56609f4d2334f9d5333d23ef7a242842a7" @@ -11207,6 +11825,12 @@ cross-undici-fetch@^0.1.4: version "0.1.13" resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.13.tgz#807d17ce5c524c21bc0a6486e97ecccb901c6529" integrity sha512-nF+g932BrKPoK0RZQKRA9S2IKXeveGPJlaUWXyUEGjjSpAdxBhEHDrMDbiksP2iSNe8O5vn1bN3tTvrd6+yFSg== +======= +cross-undici-fetch@^0.1.4: + version "0.1.25" + resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.25.tgz#8c6826dd0ffbb45fcb1a554be5984e0eaef7f3ba" + integrity sha512-KS6hm/VuRO+3jIrg4uidz3mQ8NWvCbiTTOg3yoH30zuGVUvjqZlnXw66h0kuzyfP21hDkrdIbufXCW6BAQdSNw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: abort-controller "^3.0.0" form-data-encoder "^1.7.1" @@ -11268,12 +11892,12 @@ css-in-js-utils@^2.0.0: isobject "^3.0.1" css-loader@^6.5.1: - version "6.7.1" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e" - integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== + version "6.6.0" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz#c792ad5510bd1712618b49381bd0310574fafbd3" + integrity sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg== dependencies: icss-utils "^5.1.0" - postcss "^8.4.7" + postcss "^8.4.5" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" @@ -11300,6 +11924,7 @@ css-select@^4.1.3: version "4.1.3" resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== +<<<<<<< HEAD dependencies: boolbase "^1.0.0" css-what "^5.0.0" @@ -11322,6 +11947,14 @@ css-tree@^1.1.2: dependencies: mdn-data "2.0.14" source-map "^0.6.1" +======= + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" +>>>>>>> e5aaf7bb66 (bump dependencies) css-tree@^1.1.3: version "1.1.3" @@ -11344,11 +11977,14 @@ css-vendor@^2.0.8: "@babel/runtime" "^7.8.3" is-in-browser "^1.0.2" +<<<<<<< HEAD css-what@^3.2.1: version "3.4.2" resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) css-what@^5.0.0: version "5.1.0" resolved "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" @@ -11924,11 +12560,14 @@ decimal.js-light@^2.4.1: version "2.5.0" resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.0.tgz#ca7faf504c799326df94b0ab920424fdfc125348" integrity sha512-b3VJCbd2hwUpeRGG3Toob+CRo8W22xplipNhP3tN7TSVB/cyMX71P1vM2Xjc9H74uV6dS2hDDmo/rHq8L87Upg== +<<<<<<< HEAD decimal.js@^10.2.0: version "10.2.0" resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) decimal.js@^10.2.1: version "10.3.1" @@ -12160,8 +12799,17 @@ detect-newline@^3.0.0: resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== +<<<<<<< HEAD <<<<<<< HEAD detect-node@^2.0.4, detect-node@^2.1.0: +======= +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +detect-node@^2.1.0: +>>>>>>> e5aaf7bb66 (bump dependencies) version "2.1.0" resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== @@ -12341,6 +12989,7 @@ dom-helpers@^5.0.1: dependencies: "@babel/runtime" "^7.8.7" csstype "^2.6.7" +<<<<<<< HEAD dom-serializer@0: version "0.2.2" @@ -12349,6 +12998,8 @@ dom-serializer@0: dependencies: domelementtype "^2.0.1" entities "^2.0.0" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dom-serializer@^1.0.1: version "1.2.0" @@ -12391,6 +13042,7 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" +<<<<<<< HEAD domhandler@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" @@ -12402,6 +13054,12 @@ domhandler@^4.2.0: version "4.2.2" resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== +======= +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: domelementtype "^2.2.0" @@ -12415,6 +13073,7 @@ dompurify@^2.2.7, dompurify@^2.2.9, dompurify@^2.3.6: resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.3.6.tgz#2e019d7d7617aacac07cbbe3d88ae3ad354cf875" integrity sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg== +<<<<<<< HEAD domutils@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" @@ -12423,6 +13082,8 @@ domutils@^1.7.0: dom-serializer "0" domelementtype "1" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) domutils@^2.5.2, domutils@^2.6.0: version "2.8.0" resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" @@ -12655,17 +13316,23 @@ engine.io@~3.5.0: engine.io-parser "~2.2.0" ws "~7.4.2" +<<<<<<< HEAD <<<<<<< HEAD enhanced-resolve@^5.9.2: version "5.9.2" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9" integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== ======= +======= +>>>>>>> e5aaf7bb66 (bump dependencies) enhanced-resolve@^5.8.3: version "5.8.3" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== +<<<<<<< HEAD >>>>>>> f9b03ab02f (fixups) +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -12731,6 +13398,7 @@ error@^10.4.0: resolved "https://registry.npmjs.org/error/-/error-10.4.0.tgz#6fcf0fd64bceb1e750f8ed9a3dd880f00e46a487" integrity sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw== +<<<<<<< HEAD es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.18.0" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" @@ -12754,6 +13422,9 @@ es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next unbox-primitive "^1.0.0" es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1: +======= +es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.1: +>>>>>>> e5aaf7bb66 (bump dependencies) version "1.19.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -12793,6 +13464,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +<<<<<<< HEAD es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.53" resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" @@ -12829,6 +13501,8 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) esbuild-android-arm64@0.14.22: version "0.14.22" resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz#fb051169a63307d958aec85ad596cfc7d7770303" @@ -13242,11 +13916,19 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^3.1.1" eslint@^8.6.0: +<<<<<<< HEAD version "8.7.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz#22e036842ee5b7cf87b03fe237731675b4d3633c" integrity sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w== dependencies: "@eslint/eslintrc" "^1.0.5" +======= + version "8.10.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz#931be395eb60f900c01658b278e05b6dae47199d" + integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw== + dependencies: + "@eslint/eslintrc" "^1.2.0" +>>>>>>> e5aaf7bb66 (bump dependencies) "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -14632,10 +15314,14 @@ github-from-package@0.0.0: resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= +<<<<<<< HEAD glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: ======= glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.2: >>>>>>> 76d216e74b (fixups) +======= +glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.2: +>>>>>>> e5aaf7bb66 (bump dependencies) version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -14758,9 +15444,15 @@ globby@^7.1.1: slash "^1.0.0" google-auth-library@^7.0.0, google-auth-library@^7.0.2, google-auth-library@^7.6.1: +<<<<<<< HEAD version "7.11.0" resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.11.0.tgz#b63699c65037310a424128a854ba7e736704cbdb" integrity sha512-3S5jn2quRumvh9F/Ubf7GFrIq71HZ5a6vqosgdIu105kkk0WtSqc2jGCRqtWWOLRS8SX3AHACMOEDxhyWAQIcg== +======= + version "7.12.0" + resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.12.0.tgz#7965db6bc20cb31f2df05a08a296bbed6af69426" + integrity sha512-RS/whvFPMoF1hQNxnoVET3DWKPBt1Xgqe2rY0k+Jn7TNhoHlwdnSe7Rlcbo2Nub3Mt2lUVz26X65aDQrWp6x8w== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: arrify "^2.0.0" base64-js "^1.3.0" @@ -14772,7 +15464,11 @@ google-auth-library@^7.0.0, google-auth-library@^7.0.2, google-auth-library@^7.6 jws "^4.0.0" lru-cache "^6.0.0" +<<<<<<< HEAD google-gax@^2.12.0, google-gax@^2.24.1: +======= +google-gax@^2.24.1: +>>>>>>> e5aaf7bb66 (bump dependencies) version "2.28.1" resolved "https://registry.npmjs.org/google-gax/-/google-gax-2.28.1.tgz#99bc234b5769d901d70959d40bd1651729eb4a34" integrity sha512-2Xjd3FrjlVd6Cmw2B2Aicpc/q92SwTpIOvxPUlnRg9w+Do8nu7UR+eQrgoKlo2FIUcUuDTvppvcx8toND0pK9g== @@ -14898,6 +15594,7 @@ graphql-config@^4.1.0: minimatch "3.0.4" string-env-interpolation "1.0.1" +<<<<<<< HEAD graphql-language-service-interface@^2.10.2: version "2.10.2" resolved "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.10.2.tgz#de9386f699e446320256175e215cdc10ccf9f9b7" @@ -14920,6 +15617,12 @@ graphql-language-service-types@^1.8.7: version "1.8.7" resolved "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-1.8.7.tgz#f5e909e6d9334ea2d8d1f7281b695b6f5602c07f" integrity sha512-LP/Mx0nFBshYEyD0Ny6EVGfacJAGVx+qXtlJP4hLzUdBNOGimfDNtMVIdZANBXHXcM41MDgMHTnyEx2g6/Ttbw== +======= +graphql-language-service@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.0.0.tgz#52dad53135f06551eee4c4dc57057c61eb10c460" + integrity sha512-3tbJOApOJk8FQFVV+hKSs3gEWqqt3gQ5l3iEOUl7ofhyTmpRlbkYp+/dVLMF/p29iwZ5a8wqSXl+DDnHI6RMXQ== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: graphql-config "^4.1.0" vscode-languageserver-types "^3.15.1" @@ -15100,7 +15803,11 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +<<<<<<< HEAD has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: +======= +has-symbols@^1.0.1, has-symbols@^1.0.2: +>>>>>>> e5aaf7bb66 (bump dependencies) version "1.0.2" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== @@ -15437,6 +16144,7 @@ http-proxy-agent@^5.0.0: debug "4" http-proxy-middleware@^2.0.0: +<<<<<<< HEAD <<<<<<< HEAD version "2.0.4" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz#03af0f4676d172ae775cb5c33f592f40e1a4e07a" @@ -15446,6 +16154,11 @@ http-proxy-middleware@^2.0.0: resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.2.tgz#94d7593790aad6b3de48164f13792262f656c332" integrity sha512-XtmDN5w+vdFTBZaYhdJAbMqn0DP/EhkUaAeo963mojwpKMMbw6nivtFKw07D7DDOH745L5k0VL0P8KRYNEVF/g== >>>>>>> f9b03ab02f (fixups) +======= + version "2.0.3" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz#5df04f69a89f530c2284cd71eeaa51ba52243289" + integrity sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" @@ -15995,11 +16708,14 @@ is-buffer@^2.0.0: version "2.0.4" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== +<<<<<<< HEAD is-callable@^1.1.4, is-callable@^1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) is-callable@^1.2.4: version "1.2.4" @@ -16020,6 +16736,7 @@ is-ci@^3.0.0, is-ci@^3.0.1: dependencies: ci-info "^3.2.0" +<<<<<<< HEAD is-core-module@^2.1.0, is-core-module@^2.2.0: version "2.8.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" @@ -16028,6 +16745,9 @@ is-core-module@^2.1.0, is-core-module@^2.2.0: has "^1.0.3" is-core-module@^2.8.0: +======= +is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.8.0: +>>>>>>> e5aaf7bb66 (bump dependencies) version "2.8.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -16403,11 +17123,14 @@ is-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== +<<<<<<< HEAD is-string@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) is-string@^1.0.7: version "1.0.7" @@ -18361,6 +19084,20 @@ logform@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/logform/-/logform-2.3.2.tgz#68babe6a74ab09a1fd15a9b1e6cbc7713d41cb5b" integrity sha512-V6JiPThZzTsbVRspNO6TmHkR99oqYTs8fivMBYQkjZj6rxW92KxtDCPE6IkAk1DNBnYKNkjm4jYBm6JDUcyhOA== +<<<<<<< HEAD +======= + dependencies: + colors "1.4.0" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^1.1.0" + triple-beam "^1.3.0" + +logform@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe" + integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: colors "1.4.0" fecha "^4.2.0" @@ -18448,6 +19185,7 @@ lru-cache@^7.3.1: version "7.3.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.3.1.tgz#7702e80694ec2bf19865567a469f2b081fcf53f5" integrity sha512-nX1x4qUrKqwbIAhv4s9et4FIUVzNOpeY07bsjGUy8gwJrXH/wScImSQqXErmo/b2jZY2r0mohbLA9zVj7u1cNw== +<<<<<<< HEAD lru-queue@^0.1.0: version "0.1.0" @@ -18455,6 +19193,8 @@ lru-queue@^0.1.0: integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= dependencies: es5-ext "~0.10.2" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) lunr@^2.3.9: version "2.3.9" @@ -18475,6 +19215,7 @@ macos-release@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== +<<<<<<< HEAD magic-string@^0.25.7: version "0.25.7" @@ -18482,13 +19223,15 @@ magic-string@^0.25.7: integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== dependencies: sourcemap-codec "^1.4.4" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) -magic-string@^0.26.1: - version "0.26.1" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz#ba9b651354fa9512474199acecf9c6dbe93f97fd" - integrity sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg== +magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== dependencies: - sourcemap-codec "^1.4.8" + sourcemap-codec "^1.4.4" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" @@ -19278,10 +20021,10 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== +mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": + version "1.51.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== mime-db@~1.33.0: version "1.33.0" @@ -19296,23 +20039,27 @@ mime-types@2.1.18: mime-db "~1.33.0" mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + version "2.1.34" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== dependencies: - mime-db "1.52.0" + mime-db "1.51.0" mime@1.6.0, mime@^1.3.4: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +<<<<<<< HEAD mime@^2.2.0: version "2.5.2" resolved "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== mime@^2.5.0: +======= +mime@^2.2.0, mime@^2.5.0: +>>>>>>> e5aaf7bb66 (bump dependencies) version "2.6.0" resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -19360,9 +20107,9 @@ min-indent@^1.0.0: integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= mini-css-extract-plugin@^2.4.2: - version "2.6.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz#578aebc7fc14d32c0ad304c2c34f08af44673f5e" - integrity sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w== + version "2.5.3" + resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz#c5c79f9b22ce9b4f164e9492267358dbe35376d9" + integrity sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw== dependencies: schema-utils "^4.0.0" @@ -19390,6 +20137,16 @@ minimatch@5.0.1, minimatch@^5.0.0: dependencies: brace-expansion "^2.0.1" +<<<<<<< HEAD +======= +minimatch@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" + integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== + dependencies: + brace-expansion "^1.1.7" + +>>>>>>> e5aaf7bb66 (bump dependencies) minimist-options@4.1.0, minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -19501,8 +20258,17 @@ mixme@^0.5.1: resolved "https://registry.npmjs.org/mixme/-/mixme-0.5.4.tgz#8cb3bd0cd32a513c161bf1ca99d143f0bcf2eff3" integrity sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw== +<<<<<<< HEAD <<<<<<< HEAD mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: +======= +mkdirp-classic@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" + integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== + +mkdirp-classic@^0.5.3: +>>>>>>> e5aaf7bb66 (bump dependencies) version "0.5.3" resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== @@ -20239,6 +21005,7 @@ npmlog@^6.0.0: gauge "^4.0.0" set-blocking "^2.0.0" +<<<<<<< HEAD nth-check@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -20246,6 +21013,8 @@ nth-check@^1.0.2: dependencies: boolbase "~1.0.0" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) nth-check@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" @@ -20301,16 +21070,15 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +<<<<<<< HEAD object-hash@^2.0.1, object-hash@^2.1.1: +======= +object-hash@^2.0.1, object-hash@^2.1.1, object-hash@^2.2.0: +>>>>>>> e5aaf7bb66 (bump dependencies) version "2.2.0" resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - object-inspect@^1.11.0, object-inspect@^1.12.0, object-inspect@^1.9.0: version "1.12.0" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" @@ -20365,6 +21133,7 @@ object.getownpropertydescriptors@^2.0.3: version "2.1.0" resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== +<<<<<<< HEAD dependencies: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" @@ -20373,10 +21142,11 @@ object.getownpropertydescriptors@^2.1.0: version "2.1.3" resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.19.1" + es-abstract "^1.17.0-next.1" object.hasown@^1.1.0: version "1.1.0" @@ -21778,10 +22548,17 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== +<<<<<<< HEAD postcss@^8.1.0, postcss@^8.4.7: version "8.4.12" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== +======= +postcss@^8.1.0, postcss@^8.4.5: + version "8.4.7" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.7.tgz#f99862069ec4541de386bf57f5660a6c7a0875a8" + integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: nanoid "^3.3.1" picocolors "^1.0.0" @@ -21916,6 +22693,7 @@ prismjs@^1.25.0, prismjs@~1.27.0: resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== +<<<<<<< HEAD ======= prismjs@^1.25.0: version "1.26.0" @@ -21927,12 +22705,17 @@ prismjs@~1.25.0: resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) private@^0.1.8: version "0.1.8" resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +<<<<<<< HEAD >>>>>>> 76d216e74b (fixups) +======= +>>>>>>> e5aaf7bb66 (bump dependencies) proc-log@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" @@ -22460,6 +23243,7 @@ react-helmet@6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" +<<<<<<< HEAD react-hook-form@^7.12.2: version "7.16.1" resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.16.1.tgz#669046df378a71949e5cf8a2398cbe20d5cb27bc" @@ -22469,6 +23253,12 @@ react-hook-form@^7.13.0: version "7.17.4" resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.17.4.tgz#232b6aaccddb91eb4a228ac20b154abd90866fdb" integrity sha512-7XhbCr7d9fDC1TgcK/BUbt7D3q0VJMu7jPErfsa0JrxVjv/nni41xWdJcy0Zb7R+Np8OsCkQ2lMyloAtE3DLiQ== +======= +react-hook-form@^7.12.2, react-hook-form@^7.13.0: + version "7.27.1" + resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.27.1.tgz#fe5fbcb6bf58751f66d9569e998d671480cc57f6" + integrity sha512-N3a7A6zIQ8DJeThisVZGtOUabTbJw+7DHJidmB9w8m3chckv2ZWKb5MHps9d2pPJqmCDoWe53Bos56bYmJms5w== +>>>>>>> e5aaf7bb66 (bump dependencies) react-hot-loader@^4.13.0: version "4.13.0" @@ -22550,16 +23340,22 @@ react-query@^3.34.16: broadcast-channel "^3.4.1" match-sorter "^6.0.2" +<<<<<<< HEAD react-redux@^7.2.0, react-redux@^7.2.4: version "7.2.6" resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.6.tgz#49633a24fe552b5f9caf58feb8a138936ddfe9aa" integrity sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ== ======= +======= +>>>>>>> e5aaf7bb66 (bump dependencies) react-redux@^7.1.1, react-redux@^7.2.4: version "7.2.5" resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.5.tgz#213c1b05aa1187d9c940ddfc0b29450957f6a3b8" integrity sha512-Dt29bNyBsbQaysp6s/dN0gUodcq+dVKKER8Qv82UrpeygwYeX1raTtil7O/fftw/rFqzaf6gJhDZRkkZnn6bjg== +<<<<<<< HEAD >>>>>>> 76d216e74b (fixups) +======= +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/runtime" "^7.12.1" "@types/react-redux" "^7.1.16" @@ -22766,6 +23562,7 @@ read-cmd-shim@^2.0.0: resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== +<<<<<<< HEAD read-package-json-fast@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.1.tgz#c767f6c634873ffb6bb73788191b65559734f555" @@ -22775,6 +23572,9 @@ read-package-json-fast@^2.0.1: npm-normalize-package-bin "^1.0.1" read-package-json-fast@^2.0.2: +======= +read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2: +>>>>>>> e5aaf7bb66 (bump dependencies) version "2.0.3" resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== @@ -23537,6 +24337,7 @@ ret@~0.2.0: resolved "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== +<<<<<<< HEAD retry-request@^4.0.0: version "4.1.3" resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz#d5f74daf261372cff58d08b0a1979b4d7cab0fde" @@ -23545,6 +24346,9 @@ retry-request@^4.0.0: debug "^4.1.1" retry-request@^4.2.2: +======= +retry-request@^4.0.0, retry-request@^4.2.2: +>>>>>>> e5aaf7bb66 (bump dependencies) version "4.2.2" resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" integrity sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg== @@ -23609,13 +24413,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" rollup-plugin-dts@^4.0.1: - version "4.2.0" - resolved "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.2.0.tgz#f7ae4646f5b3aec07560bc341c0dc4a85f8a0dff" - integrity sha512-lx6irWVhz/x4//tIqRhzk4FOqGQ0n37ZM2wpPCn4uafl/EmiV92om7ZdAsq7Bzho6C+Xh5GfsyuP9H+Udv72Lg== + version "4.1.0" + resolved "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.1.0.tgz#63b1e7de3970bb6d50877e60df2150a3892bc49c" + integrity sha512-rriXIm3jdUiYeiAAd1Fv+x2AxK6Kq6IybB2Z/IdoAW95fb4uRUurYsEYKa8L1seedezDeJhy8cfo8FEL9aZzqg== dependencies: - magic-string "^0.26.1" + magic-string "^0.25.7" optionalDependencies: - "@babel/code-frame" "^7.16.7" + "@babel/code-frame" "^7.16.0" rollup-plugin-esbuild@^4.7.2: version "4.7.2" @@ -23666,6 +24470,7 @@ rollup@^0.63.4: "@types/node" "*" rollup@^2.60.2: +<<<<<<< HEAD <<<<<<< HEAD version "2.70.0" resolved "https://registry.npmjs.org/rollup/-/rollup-2.70.0.tgz#17a92e5938e92a251b962352e904c9f558230ec7" @@ -23675,6 +24480,11 @@ rollup@^2.60.2: resolved "https://registry.npmjs.org/rollup/-/rollup-2.67.2.tgz#d95e15f60932ad21e05a870bd0aa0b235d056f04" integrity sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw== >>>>>>> 76d216e74b (fixups) +======= + version "2.70.0" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.70.0.tgz#17a92e5938e92a251b962352e904c9f558230ec7" + integrity sha512-iEzYw+syFxQ0X9RefVwhr8BA2TNJsTaX8L8dhyeyMECDbmiba+8UQzcu+xZdji0+JQ+s7kouQnw+9Oz5M19XKA== +>>>>>>> e5aaf7bb66 (bump dependencies) optionalDependencies: fsevents "~2.3.2" @@ -23714,10 +24524,17 @@ rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.0, rxjs@^6.6.3: dependencies: tslib "^1.9.0" +<<<<<<< HEAD rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.2: version "7.5.2" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b" integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== +======= +rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.1, rxjs@^7.5.2: + version "7.5.5" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: tslib "^2.1.0" @@ -25227,9 +26044,15 @@ swagger-client@^3.17.0: url "~0.11.0" swagger-ui-react@^4.1.3: +<<<<<<< HEAD version "4.1.3" resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.1.3.tgz#a722ecbe54ef237fa9080447a7c708c4c72d846a" integrity sha512-o1AoXUTNH40cxWus0QOeWQ8x9tSIEmrLBrOgAOHDnvWJ1qyjT8PjgHjPbUVjMbja18coyuaAAeUdyLKvLGmlDA== +======= + version "4.6.1" + resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.6.1.tgz#25d0dc380f73fcba00df214f50adc940910f480c" + integrity sha512-NIVzdzzaHnoG6NxK15A0wpd7TiGPpcK4BBh5mgLq6/hCrytjpeQZrkSM1Yf0p1fD7+rkvKcI+b33w/6RCLt3yw== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/runtime-corejs3" "^7.16.3" "@braintree/sanitize-url" "^5.0.2" @@ -25243,7 +26066,10 @@ swagger-ui-react@^4.1.3: js-file-download "^0.4.12" js-yaml "=4.1.0" lodash "^4.17.21" +<<<<<<< HEAD memoizee "^0.4.15" +======= +>>>>>>> e5aaf7bb66 (bump dependencies) prop-types "^15.7.2" randombytes "^2.1.0" react-copy-to-clipboard "5.0.4" @@ -25277,7 +26103,11 @@ swr@^1.1.2: resolved "https://registry.npmjs.org/swr/-/swr-1.2.1.tgz#c21a4fe2139cb1c4630450589b5b5add947a9d41" integrity sha512-1cuWXqJqXcFwbgONGCY4PHZ8v05009JdHsC3CIC6u7d00kgbMswNr1sHnnhseOBxtzVqcCNpOHEgVDciRer45w== +<<<<<<< HEAD symbol-observable@1.2.0, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: +======= +symbol-observable@1.2.0, symbol-observable@^1.0.4, symbol-observable@^1.1.0: +>>>>>>> e5aaf7bb66 (bump dependencies) version "1.2.0" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -26950,9 +27780,9 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5, webpack@^5.66.0: - version "5.70.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz#3461e6287a72b5e6e2f4872700bc8de0d7500e6d" - integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw== + version "5.69.1" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz#8cfd92c192c6a52c99ab00529b5a0d33aa848dc5" + integrity sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -26963,7 +27793,7 @@ webpack@^5, webpack@^5.66.0: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.9.2" + enhanced-resolve "^5.8.3" es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" @@ -27132,7 +27962,11 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" +<<<<<<< HEAD winston-transport@^4.4.2: +======= +winston-transport@^4.4.2, winston-transport@^4.5.0: +>>>>>>> e5aaf7bb66 (bump dependencies) version "4.5.0" resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== @@ -27145,6 +27979,25 @@ winston@^3.2.1: version "3.5.1" resolved "https://registry.npmjs.org/winston/-/winston-3.5.1.tgz#b25cc899d015836dbf8c583dec8c4c4483a0da2e" integrity sha512-tbRtVy+vsSSCLcZq/8nXZaOie/S2tPXPFt4be/Q3vI/WtYwm7rrwidxVw2GRa38FIXcJ1kUM6MOZ9Jmnk3F3UA== +<<<<<<< HEAD +======= + dependencies: + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.3.2" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.4.2" + +winston@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz#be32587a099a292b88c49fac6fa529d478d93fb6" + integrity sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w== +>>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@dabh/diagnostics" "^2.0.2" async "^3.2.3" @@ -27271,16 +28124,27 @@ ws@7.4.5: resolved "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== +<<<<<<< HEAD ws@8.3.0, "ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.2.3, ws@^7.3.1, ws@^7.4.6, ws@^8.3.0: version "7.5.6" resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== +======= +>>>>>>> e5aaf7bb66 (bump dependencies) ws@8.5.0, ws@^8.1.0: version "8.5.0" resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== +<<<<<<< HEAD +======= +"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1, ws@^7.4.6, ws@^8.3.0: + version "7.5.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + +>>>>>>> e5aaf7bb66 (bump dependencies) ws@~7.4.2: version "7.4.6" resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" From 85c18b48e2cef5dab0f497fabddf7c4713046330 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Tue, 15 Mar 2022 10:12:15 +0100 Subject: [PATCH 138/225] re-generate api reports Signed-off-by: Emma Indal --- plugins/stack-overflow-backend/api-report.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/stack-overflow-backend/api-report.md b/plugins/stack-overflow-backend/api-report.md index e8743f1e30..625581def8 100644 --- a/plugins/stack-overflow-backend/api-report.md +++ b/plugins/stack-overflow-backend/api-report.md @@ -8,7 +8,7 @@ import { Config } from '@backstage/config'; import { DocumentCollatorFactory } from '@backstage/search-common'; import { IndexableDocument } from '@backstage/search-common'; -import { Logger as Logger_2 } from 'winston'; +import { Logger } from 'winston'; import { Readable } from 'stream'; // @public @@ -42,7 +42,7 @@ export class StackOverflowQuestionsCollatorFactory export type StackOverflowQuestionsCollatorFactoryOptions = { baseUrl?: string; requestParams: StackOverflowQuestionsRequestParams; - logger: Logger_2; + logger: Logger; }; // @public From 1f84e612e3529d7992c42a1f9f0c6eb13c73b652 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Tue, 15 Mar 2022 16:29:52 +0100 Subject: [PATCH 139/225] update scripts Signed-off-by: Emma Indal --- plugins/stack-overflow/package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 44e2d4197b..b1eefd65a9 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -10,14 +10,14 @@ "types": "dist/index.d.ts" }, "scripts": { - "build": "backstage-cli plugin:build", - "start": "backstage-cli plugin:serve", - "lint": "backstage-cli lint", - "test": "backstage-cli test", + "build": "backstage-cli package start", + "start": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", "diff": "backstage-cli plugin:diff", - "prepack": "backstage-cli prepack", - "postpack": "backstage-cli postpack", - "clean": "backstage-cli clean" + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "clean": "backstage-cli package clean" }, "dependencies": { "@backstage/core-components": "^0.8.8", @@ -41,7 +41,7 @@ "devDependencies": { "@backstage/cli": "^0.15.2", "@backstage/test-utils": "^0.3.0", - "@testing-library/react": "^11.2.5", + "@testing-library/react": "^12.1.3", "@backstage/core-app-api": "^0.5.2", "@backstage/dev-utils": "^0.2.21-next.0", "@testing-library/user-event": "^13.1.8", From 7f647e27d32c615a26741ddf9869c7e6c1f7523b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 10:27:23 +0000 Subject: [PATCH 140/225] build(deps): bump zod from 3.11.6 to 3.14.2 Bumps [zod](https://github.com/colinhacks/zod) from 3.11.6 to 3.14.2. - [Release notes](https://github.com/colinhacks/zod/releases) - [Changelog](https://github.com/colinhacks/zod/blob/master/CHANGELOG.md) - [Commits](https://github.com/colinhacks/zod/compare/v3.11.6...v3.14.2) --- updated-dependencies: - dependency-name: zod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c837b63311..a8a3e247c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25713,9 +25713,9 @@ zip-stream@^4.1.0: readable-stream "^3.6.0" zod@^3.11.6, zod@^3.9.5: - version "3.11.6" - resolved "https://registry.npmjs.org/zod/-/zod-3.11.6.tgz#e43a5e0c213ae2e02aefe7cb2b1a6fa3d7f1f483" - integrity sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg== + version "3.14.2" + resolved "https://registry.npmjs.org/zod/-/zod-3.14.2.tgz#0b4ed79085c471adce0e7f2c0a4fbb5ddc516ba2" + integrity sha512-iF+wrtzz7fQfkmn60PG6XFxaWBhYYKzp2i+nv24WbLUWb2JjymdkHlzBwP0erpc78WotwP5g9AAu7Sk8GWVVNw== zustand@3.6.9: version "3.6.9" From 84409a80dd37925666cd0bae5d547078bbfefe88 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jan 2022 00:14:47 +0100 Subject: [PATCH 141/225] cli: add jest environment detection based on role Signed-off-by: Patrik Oldsberg --- packages/cli/config/jest.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index 1472260e33..5cda03c199 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -36,6 +36,25 @@ const transformIgnorePattern = [ 'typescript', ].join('|'); +// Provides additional config that's based on the role of the target package +function getRoleConfig(role) { + switch (role) { + case 'app': + case 'web-library': + case 'common-library': + case 'plugin-frontend': + case 'plugin-frontend-module': + default: + return { testEnvironment: 'jsdom' }; + case 'cli': + case 'backend': + case 'node-library': + case 'plugin-backend': + case 'plugin-backend-module': + return { testEnvironment: 'node' }; + } +} + async function getProjectConfig(targetPath, displayName) { const configJsPath = path.resolve(targetPath, 'jest.config.js'); const configTsPath = path.resolve(targetPath, 'jest.config.ts'); @@ -50,6 +69,7 @@ async function getProjectConfig(targetPath, displayName) { // All configs are merged together to create the final config, with longer paths taking precedence. // The merging of the configs is shallow, meaning e.g. all transforms are replaced if new ones are defined. const pkgJsonConfigs = []; + let closestPkgJson = undefined; let currentPath = targetPath; // Some sanity check to avoid infinite loop @@ -59,6 +79,9 @@ async function getProjectConfig(targetPath, displayName) { if (exists) { try { const data = fs.readJsonSync(packagePath); + if (!closestPkgJson) { + closestPkgJson = data; + } if (data.jest) { pkgJsonConfigs.unshift(data.jest); } @@ -115,6 +138,8 @@ async function getProjectConfig(targetPath, displayName) { testMatch: ['**/*.test.{js,jsx,ts,tsx,mjs,cjs}'], transformIgnorePatterns: [`/node_modules/(?:${transformIgnorePattern})/`], + + ...getRoleConfig(closestPkgJson?.backstage?.role), }; // Use src/setupTests.ts as the default location for configuring test env From 1f7d4763ab1e3072dd329118936a013e6519742b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 30 Jan 2022 19:07:00 +0100 Subject: [PATCH 142/225] cli: bump to jest 27, remove other jest deps Signed-off-by: Patrik Oldsberg --- .changeset/twelve-buses-nail.md | 7 + packages/backend-common/package.json | 1 - packages/backend-tasks/package.json | 1 - packages/backend-test-utils/package.json | 3 +- packages/cli/package.json | 2 +- yarn.lock | 1202 +++++++++++++--------- 6 files changed, 704 insertions(+), 512 deletions(-) create mode 100644 .changeset/twelve-buses-nail.md diff --git a/.changeset/twelve-buses-nail.md b/.changeset/twelve-buses-nail.md new file mode 100644 index 0000000000..24dd6bbb0b --- /dev/null +++ b/.changeset/twelve-buses-nail.md @@ -0,0 +1,7 @@ +--- +'@backstage/cli': minor +--- + +Bump the version range of `jest` from `^26.0.1` to `^27.4.7`. You can find the complete list of breaking changes [here](https://github.com/facebook/jest/releases/tag/v27.0.0). + +One of the main breaking changes in Jest 27 is that the default test environment is now `node` rather than `jsdom`. However, this is counteracted in the default Jest configuration provided by the Backstage CLI, as it still defaults the environment to `jsdom`. The future addition of the Backstage package `"role"` field will override this default, setting the test environment to the appropriate value for the role. diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index d09187e2d3..a215ce6851 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -108,7 +108,6 @@ "aws-sdk-mock": "^5.2.1", "better-sqlite3": "^7.5.0", "http-errors": "^2.0.0", - "jest": "^26.0.1", "mock-fs": "^5.1.0", "msw": "^0.35.0", "mysql2": "^2.2.5", diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 69613ca087..9f8d9febce 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -51,7 +51,6 @@ "@backstage/backend-test-utils": "^0.1.23-next.0", "@backstage/cli": "^0.16.1-next.0", "@types/cron": "^1.7.3", - "jest": "^26.0.1", "wait-for-expect": "^3.0.2" }, "files": [ diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index ea8800bee3..5ae5153890 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -46,8 +46,7 @@ "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", - "jest": "^26.0.1" + "@backstage/cli": "^0.16.1-next.0" }, "files": [ "dist" diff --git a/packages/cli/package.json b/packages/cli/package.json index 12072e639e..fb6eff9a49 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -85,7 +85,7 @@ "handlebars": "^4.7.3", "html-webpack-plugin": "^5.3.1", "inquirer": "^8.2.0", - "jest": "^26.0.1", + "jest": "^27.4.7", "jest-css-modules": "^2.1.0", "jest-transform-yaml": "^1.0.0", "json-schema": "^0.4.0", diff --git a/yarn.lock b/yarn.lock index c837b63311..e6b1a65863 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: aws4 "^1.11.0" +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + "@apidevtools/json-schema-ref-parser@^9.0.6": version "9.0.6" resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#5d9000a3ac1fd25404da886da6b266adcd99cf1c" @@ -292,7 +299,7 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@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.8.3": version "7.16.7" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== @@ -304,7 +311,12 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== -"@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": +"@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + +"@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5": version "7.16.12" resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784" integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg== @@ -325,7 +337,28 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.14.0", "@babel/generator@^7.16.0", "@babel/generator@^7.16.8": +"@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.17.8" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" + integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.7" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.8" + "@babel/parser" "^7.17.8" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + +"@babel/generator@^7.14.0", "@babel/generator@^7.16.0", "@babel/generator@^7.16.8", "@babel/generator@^7.7.2": version "7.16.8" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== @@ -334,6 +367,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.17.3", "@babel/generator@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" @@ -359,6 +401,16 @@ browserslist "^4.17.5" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": version "7.16.10" resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz#8a6959b9cc818a88815ba3c5474619e9c0f2c21c" @@ -459,6 +511,20 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" @@ -498,6 +564,13 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": version "7.16.0" resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" @@ -541,6 +614,15 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helpers@^7.17.8": + version "7.17.8" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" + integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + "@babel/highlight@^7.0.0", "@babel/highlight@^7.16.7": version "7.16.10" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" @@ -555,11 +637,16 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.3", "@babel/parser@^7.16.7": +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.3", "@babel/parser@^7.16.7": version "7.16.12" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== +"@babel/parser@^7.17.3", "@babel/parser@^7.17.8": + version "7.17.8" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" + integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" @@ -830,7 +917,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.16.7": +"@babel/plugin-syntax-typescript@^7.16.7", "@babel/plugin-syntax-typescript@^7.7.2": version "7.16.7" resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== @@ -1315,7 +1402,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.4.5": +"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": version "7.16.10" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== @@ -1331,6 +1418,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.17.3": + version "7.17.3" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@7.16.0": version "7.16.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" @@ -1347,6 +1450,14 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@babel/types@^7.17.0": + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + "@backstage/catalog-client@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/catalog-client/-/catalog-client-1.0.0.tgz#05f9ee3b771ca17e4800f5116d63bd183fe0c4d6" @@ -1671,14 +1782,6 @@ human-id "^1.0.2" prettier "^1.19.1" -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - "@codemirror/autocomplete@^0.19.0": version "0.19.14" resolved "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.19.14.tgz#5f61b0fced56e7960791063d03b21d11a63f0ec5" @@ -2793,162 +2896,160 @@ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== +"@jest/console@^27.4.6": + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz#0742e6787f682b22bdad56f9db2a8a77f6a86107" + integrity sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" + jest-message-util "^27.4.6" + jest-util "^27.4.2" slash "^3.0.0" -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== +"@jest/core@^27.4.7": + version "27.4.7" + resolved "https://registry.npmjs.org/@jest/core/-/core-27.4.7.tgz#84eabdf42a25f1fa138272ed229bcf0a1b5e6913" + integrity sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg== dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.4.6" + "@jest/reporters" "^27.4.6" + "@jest/test-result" "^27.4.6" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" + emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" + jest-changed-files "^27.4.2" + jest-config "^27.4.7" + jest-haste-map "^27.4.6" + jest-message-util "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-resolve-dependencies "^27.4.6" + jest-runner "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + jest-validate "^27.4.6" + jest-watcher "^27.4.6" + micromatch "^4.0.4" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== +"@jest/environment@^27.4.6": + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.4.6.tgz#1e92885d64f48c8454df35ed9779fbcf31c56d8b" + integrity sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg== dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/fake-timers" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" - jest-mock "^26.6.2" + jest-mock "^27.4.6" -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== +"@jest/fake-timers@^27.4.6": + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz#e026ae1671316dbd04a56945be2fa251204324e8" + integrity sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A== dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" + "@jest/types" "^27.4.2" + "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" + jest-message-util "^27.4.6" + jest-mock "^27.4.6" + jest-util "^27.4.2" -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== +"@jest/globals@^27.4.6": + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.4.6.tgz#3f09bed64b0fd7f5f996920258bd4be8f52f060a" + integrity sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw== dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" + "@jest/environment" "^27.4.6" + "@jest/types" "^27.4.2" + expect "^27.4.6" -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== +"@jest/reporters@^27.4.6": + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz#b53dec3a93baf9b00826abf95b932de919d6d8dd" + integrity sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.4.6" + "@jest/test-result" "^27.4.6" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" graceful-fs "^4.2.4" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" + istanbul-lib-instrument "^5.1.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" + istanbul-reports "^3.1.3" + jest-haste-map "^27.4.6" + jest-resolve "^27.4.6" + jest-util "^27.4.2" + jest-worker "^27.4.6" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" + v8-to-istanbul "^8.1.0" -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== +"@jest/source-map@^27.4.0": + version "27.4.0" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz#2f0385d0d884fb3e2554e8f71f8fa957af9a74b6" + integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== +"@jest/test-result@^27.4.6": + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz#b3df94c3d899c040f602cea296979844f61bdf69" + integrity sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ== dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.4.6" + "@jest/types" "^27.4.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== +"@jest/test-sequencer@^27.4.6": + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz#447339b8a3d7b5436f50934df30854e442a9d904" + integrity sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw== dependencies: - "@jest/test-result" "^26.6.2" + "@jest/test-result" "^27.4.6" graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" + jest-haste-map "^27.4.6" + jest-runtime "^27.4.6" -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== +"@jest/transform@^27.4.6": + version "27.4.6" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz#153621940b1ed500305eacdb31105d415dc30231" + integrity sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" + "@jest/types" "^27.4.2" + babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" + jest-haste-map "^27.4.6" + jest-regex-util "^27.4.0" + jest-util "^27.4.2" + micromatch "^4.0.4" + pirates "^4.0.4" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" @@ -2975,6 +3076,17 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jest/types@^27.4.2", "@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@jimp/bmp@^0.10.3": version "0.10.3" resolved "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.10.3.tgz#79a23678e8389865c62e77b0dccc3e069dfc27f0" @@ -3300,6 +3412,24 @@ resolved "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jsdevtools/ono@^7.1.3": version "7.1.3" resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" @@ -5157,13 +5287,6 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@sinonjs/fake-timers@^7.0.4", "@sinonjs/fake-timers@^7.1.0": version "7.1.2" resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" @@ -5171,6 +5294,13 @@ dependencies: "@sinonjs/commons" "^1.7.0" +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@sinonjs/samsam@^6.0.2": version "6.0.2" resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz#a0117d823260f282c04bff5f8704bdc2ac6910bb" @@ -5509,7 +5639,7 @@ dependencies: "@types/node" "*" -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": +"@types/babel__core@^7.0.0": version "7.1.9" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== @@ -5520,6 +5650,17 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" +"@types/babel__core@^7.1.14": + version "7.1.18" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" + integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__generator@*": version "7.6.1" resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" @@ -6349,10 +6490,10 @@ resolved "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.29.tgz#6ffa33ed1fc8813c469b859681d09707eb40d03c" integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA== -"@types/prettier@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.0.tgz#dc85454b953178cc6043df5208b9e949b54a3bc4" - integrity sha512-/rM+sWiuOZ5dvuVzV37sUuklsbg+JPOP8d+nNFlo2ZtfpzPiPvh1/gc8liWOLBqe+sR+ZM7guPaIcTt6UZTo7Q== +"@types/prettier@^2.1.5": + version "2.4.3" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz#a3c65525b91fca7da00ab1a3ac2b5a2a4afbffbf" + integrity sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w== "@types/prop-types@*", "@types/prop-types@^15.7.3": version "15.7.4" @@ -7468,14 +7609,6 @@ any-promise@^1.0.0: resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -8000,16 +8133,16 @@ babel-core@^7.0.0-bridge.0: resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== +babel-jest@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.6.tgz#4d024e69e241cdf4f396e453a07100f44f7ce314" + integrity sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg== dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.4.0" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -8021,21 +8154,21 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-istanbul@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" + istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== +babel-plugin-jest-hoist@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz#d7831fc0f93573788d80dee7e682482da4c730d6" + integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -8131,12 +8264,12 @@ babel-preset-fbjs@^3.4.0: "@babel/plugin-transform-template-literals" "^7.0.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== +babel-preset-jest@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz#70d0e676a282ccb200fbabd7f415db5fdf393bca" + integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== dependencies: - babel-plugin-jest-hoist "^26.6.2" + babel-plugin-jest-hoist "^27.4.0" babel-preset-current-node-syntax "^1.0.0" babel-runtime@^6.26.0: @@ -8818,7 +8951,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^6.2.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -8856,13 +8989,6 @@ capital-case@^1.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -9072,10 +9198,10 @@ circleci-api@^4.0.0: dependencies: axios "^0.21.1" -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== class-utils@^0.3.5: version "0.3.6" @@ -10960,6 +11086,11 @@ diff-sequences@^26.6.2: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== +diff-sequences@^27.4.0, diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + diff2html@^2.7.0: version "2.12.2" resolved "https://registry.npmjs.org/diff2html/-/diff2html-2.12.2.tgz#356d35f9c87c42ebd11558bedf1c99c5b00886e8" @@ -11290,10 +11421,10 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emittery@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" - integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== emoji-regex@^7.0.1: version "7.0.3" @@ -12101,12 +12232,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: react-use "^17.2.4" zen-observable "^0.8.15" -exec-sh@^0.3.2: - version "0.3.4" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" - integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== - -execa@4.1.0, execa@^4.0.0: +execa@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== @@ -12204,17 +12330,15 @@ expand-template@^2.0.3: resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== +expect@^27.4.6: + version "27.5.1" + resolved "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" express-prom-bundle@^6.3.6: version "6.4.1" @@ -12944,7 +13068,7 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.1.2, fsevents@~2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -13549,11 +13673,6 @@ grouped-queue@^2.0.0: resolved "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz#a2c6713f2171e45db2c300a3a9d7c119d694dac8" integrity sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw== -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - gtoken@^5.0.4: version "5.1.0" resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.1.0.tgz#4ba8d2fc9a8459098f76e7e8fd7beaa39fda9fe4" @@ -15093,14 +15212,20 @@ istanbul-lib-coverage@^3.0.0: resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== -istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== +istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== dependencies: - "@babel/core" "^7.7.5" + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" + istanbul-lib-coverage "^3.2.0" semver "^6.3.0" istanbul-lib-report@^3.0.0: @@ -15121,7 +15246,7 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.0.2: +istanbul-reports@^3.1.3: version "3.1.4" resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== @@ -15151,57 +15276,85 @@ jenkins@^0.28.1: dependencies: papi "^0.29.0" -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== +jest-changed-files@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz#da2547ea47c6e6a5f6ed336151bd2075736eb4a5" + integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" + "@jest/types" "^27.4.2" + execa "^5.0.0" + throat "^6.0.1" -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== +jest-circus@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.6.tgz#d3af34c0eb742a967b1919fbb351430727bcea6c" + integrity sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ== dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.4.6" + "@jest/test-result" "^27.4.6" + "@jest/types" "^27.4.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.4.6" + is-generator-fn "^2.0.0" + jest-each "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + pretty-format "^27.4.6" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.4.7: + version "27.4.7" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.7.tgz#d00e759e55d77b3bcfea0715f527c394ca314e5a" + integrity sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw== + dependencies: + "@jest/core" "^27.4.7" + "@jest/test-result" "^27.4.6" + "@jest/types" "^27.4.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" + jest-config "^27.4.7" + jest-util "^27.4.2" + jest-validate "^27.4.6" prompts "^2.0.1" - yargs "^15.4.1" + yargs "^16.2.0" -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== +jest-config@^27.4.7: + version "27.4.7" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.4.7.tgz#4f084b2acbd172c8b43aa4cdffe75d89378d3972" + integrity sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw== dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.4.6" + "@jest/types" "^27.4.2" + babel-jest "^27.4.6" chalk "^4.0.0" + ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" + jest-circus "^27.4.6" + jest-environment-jsdom "^27.4.6" + jest-environment-node "^27.4.6" + jest-get-type "^27.4.0" + jest-jasmine2 "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-runner "^27.4.6" + jest-util "^27.4.2" + jest-validate "^27.4.6" + micromatch "^4.0.4" + pretty-format "^27.4.6" + slash "^3.0.0" jest-css-modules@^2.1.0: version "2.1.0" @@ -15210,7 +15363,7 @@ jest-css-modules@^2.1.0: dependencies: identity-obj-proxy "3.0.0" -jest-diff@^26.0.0, jest-diff@^26.6.2: +jest-diff@^26.0.0: version "26.6.2" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== @@ -15220,138 +15373,191 @@ jest-diff@^26.0.0, jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== +jest-diff@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz#93815774d2012a2cbb6cf23f84d48c7a2618f98d" + integrity sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.4.0" + jest-get-type "^27.4.0" + pretty-format "^27.4.6" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-docblock@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz#06c78035ca93cbbb84faf8fce64deae79a59f69f" + integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== dependencies: detect-newline "^3.0.0" -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== +jest-each@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.4.6.tgz#e7e8561be61d8cc6dbf04296688747ab186c40ff" + integrity sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" + jest-get-type "^27.4.0" + jest-util "^27.4.2" + pretty-format "^27.4.6" -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== +jest-environment-jsdom@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz#c23a394eb445b33621dfae9c09e4c8021dea7b36" + integrity sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA== dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.4.6" + "@jest/fake-timers" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" + jest-mock "^27.4.6" + jest-util "^27.4.2" + jsdom "^16.6.0" -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== +jest-environment-node@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.6.tgz#ee8cd4ef458a0ef09d087c8cd52ca5856df90242" + integrity sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ== dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.4.6" + "@jest/fake-timers" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" + jest-mock "^27.4.6" + jest-util "^27.4.2" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== +jest-get-type@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" + integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-haste-map@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz#c60b5233a34ca0520f325b7e2cc0a0140ad0862a" + integrity sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" + jest-regex-util "^27.4.0" + jest-serializer "^27.4.0" + jest-util "^27.4.2" + jest-worker "^27.4.6" + micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: - fsevents "^2.1.2" + fsevents "^2.3.2" -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== +jest-jasmine2@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz#109e8bc036cb455950ae28a018f983f2abe50127" + integrity sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw== dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.4.6" + "@jest/source-map" "^27.4.0" + "@jest/test-result" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.6.2" + expect "^27.4.6" is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" + jest-each "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-runtime "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" + pretty-format "^27.4.6" + throat "^6.0.1" -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== +jest-leak-detector@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz#ed9bc3ce514b4c582637088d9faf58a33bd59bf4" + integrity sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA== dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" + jest-get-type "^27.4.0" + pretty-format "^27.4.6" -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== +jest-matcher-utils@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz#53ca7f7b58170638590e946f5363b988775509b8" + integrity sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA== dependencies: chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" + jest-diff "^27.4.6" + jest-get-type "^27.4.0" + pretty-format "^27.4.6" -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== +jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-message-util@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz#9fdde41a33820ded3127465e1a5896061524da31" + integrity sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.4.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" + micromatch "^4.0.4" + pretty-format "^27.4.6" slash "^3.0.0" - stack-utils "^2.0.2" + stack-utils "^2.0.3" -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== dependencies: - "@jest/types" "^26.6.2" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz#77d1ba87fbd33ccb8ef1f061697e7341b7635195" + integrity sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw== + dependencies: + "@jest/types" "^27.4.2" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -15359,121 +15565,126 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== +jest-regex-util@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca" + integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== +jest-resolve-dependencies@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz#fc50ee56a67d2c2183063f6a500cc4042b5e2327" + integrity sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw== dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" + "@jest/types" "^27.4.2" + jest-regex-util "^27.4.0" + jest-snapshot "^27.4.6" -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== +jest-resolve@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz#2ec3110655e86d5bfcfa992e404e22f96b0b5977" + integrity sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" chalk "^4.0.0" graceful-fs "^4.2.4" + jest-haste-map "^27.4.6" jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" + jest-util "^27.4.2" + jest-validate "^27.4.6" + resolve "^1.20.0" + resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== +jest-runner@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.6.tgz#1d390d276ec417e9b4d0d081783584cbc3e24773" + integrity sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg== dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.4.6" + "@jest/environment" "^27.4.6" + "@jest/test-result" "^27.4.6" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" - emittery "^0.7.1" + emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" + jest-docblock "^27.4.0" + jest-environment-jsdom "^27.4.6" + jest-environment-node "^27.4.6" + jest-haste-map "^27.4.6" + jest-leak-detector "^27.4.6" + jest-message-util "^27.4.6" + jest-resolve "^27.4.6" + jest-runtime "^27.4.6" + jest-util "^27.4.2" + jest-worker "^27.4.6" source-map-support "^0.5.6" - throat "^5.0.0" + throat "^6.0.1" -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== +jest-runtime@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz#83ae923818e3ea04463b22f3597f017bb5a1cffa" + integrity sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ== dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" + "@jest/environment" "^27.4.6" + "@jest/fake-timers" "^27.4.6" + "@jest/globals" "^27.4.6" + "@jest/source-map" "^27.4.0" + "@jest/test-result" "^27.4.6" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" chalk "^4.0.0" - cjs-module-lexer "^0.6.0" + cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" - exit "^0.1.2" + execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" + jest-haste-map "^27.4.6" + jest-message-util "^27.4.6" + jest-mock "^27.4.6" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.6" + jest-snapshot "^27.4.6" + jest-util "^27.4.2" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.4.1" -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== +jest-serializer@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz#34866586e1cae2388b7d12ffa2c7819edef5958a" + integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== dependencies: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== +jest-snapshot@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.6.tgz#e2a3b4fff8bdce3033f2373b2e525d8b6871f616" + integrity sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ== dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" + "@jest/transform" "^27.4.6" + "@jest/types" "^27.4.2" "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^26.6.2" + expect "^27.4.6" graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" + jest-diff "^27.4.6" + jest-get-type "^27.4.0" + jest-haste-map "^27.4.6" + jest-matcher-utils "^27.4.6" + jest-message-util "^27.4.6" + jest-util "^27.4.2" natural-compare "^1.4.0" - pretty-format "^26.6.2" + pretty-format "^27.4.6" semver "^7.3.2" jest-transform-yaml@^1.0.0: @@ -15483,41 +15694,41 @@ jest-transform-yaml@^1.0.0: dependencies: js-yaml "4.1.0" -jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== +jest-util@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz#ed95b05b1adfd761e2cda47e0144c6a58e05a621" + integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" + ci-info "^3.2.0" graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" + picomatch "^2.2.3" -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== +jest-validate@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz#efc000acc4697b6cf4fa68c7f3f324c92d0c4f1f" + integrity sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ== dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" + "@jest/types" "^27.4.2" + camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^26.3.0" + jest-get-type "^27.4.0" leven "^3.1.0" - pretty-format "^26.6.2" + pretty-format "^27.4.6" -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== +jest-watcher@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.6.tgz#673679ebeffdd3f94338c24f399b85efc932272d" + integrity sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw== dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/test-result" "^27.4.6" + "@jest/types" "^27.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.6.2" + jest-util "^27.4.2" string-length "^4.0.1" jest-when@^3.1.0: @@ -15525,16 +15736,7 @@ jest-when@^3.1.0: resolved "https://registry.npmjs.org/jest-when/-/jest-when-3.5.1.tgz#33ab6f923661cf878cd08fe9df64b507934603db" integrity sha512-o+HiaIVCg1IC95sMDKHU9G5v5N5l3UHqXvJpf0PgAMThZeQo4Hf5Sgoj+wpCBRGg4/KtzSAZZZEKNiLqE0i4eQ== -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^27.3.1, jest-worker@^27.4.1: +jest-worker@^27.3.1, jest-worker@^27.4.1, jest-worker@^27.4.6: version "27.4.6" resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== @@ -15543,14 +15745,14 @@ jest-worker@^27.3.1, jest-worker@^27.4.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^26.0.1: - version "26.6.3" - resolved "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== +jest@^27.4.7: + version "27.4.7" + resolved "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz#87f74b9026a1592f2da05b4d258e57505f28eca4" + integrity sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg== dependencies: - "@jest/core" "^26.6.3" + "@jest/core" "^27.4.7" import-local "^3.0.2" - jest-cli "^26.6.3" + jest-cli "^27.4.7" jimp@^0.10.3: version "0.10.3" @@ -15715,7 +15917,7 @@ jscodeshift@^0.13.0: temp "^0.8.4" write-file-atomic "^2.3.0" -jsdom@^16.4.0, jsdom@^16.5.2: +jsdom@^16.5.2, jsdom@^16.6.0: version "16.7.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== @@ -17650,7 +17852,7 @@ micromark@^3.0.0: micromark-util-types "^1.0.1" parse-entities "^3.0.0" -micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10: version "3.1.10" resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -17813,7 +18015,7 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.6" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -18358,18 +18560,6 @@ node-modules-regexp@^1.0.0: resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - node-releases@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" @@ -18962,11 +19152,6 @@ p-cancelable@^2.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== -p-each-series@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" - integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== - p-filter@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -19769,6 +19954,11 @@ pirates@^4.0.0, pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" +pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + pixelmatch@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" @@ -20236,6 +20426,24 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" +pretty-format@^27.4.6: + version "27.4.6" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz#1b784d2f53c68db31797b2348fa39b49e31846b7" + integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + printj@~1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" @@ -21685,7 +21893,12 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0: +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0: version "1.21.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== @@ -21880,11 +22093,6 @@ rollup@^2.60.2: optionalDependencies: fsevents "~2.3.2" -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - rtl-css-js@^1.14.0: version "1.14.0" resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d" @@ -21974,21 +22182,6 @@ safe-stable-stringify@^2.2.0, safe-stable-stringify@^2.3.1: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - sanitize-filename@^1.6.1: version "1.6.3" resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" @@ -22305,11 +22498,6 @@ shelljs@^0.8.5: interpret "^1.0.0" rechoir "^0.6.2" -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - shx@^0.3.2: version "0.3.4" resolved "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02" @@ -22850,10 +23038,10 @@ stack-trace@0.0.x: resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= -stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== dependencies: escape-string-regexp "^2.0.0" @@ -23693,10 +23881,10 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== throttle-debounce@^3.0.1: version "3.0.1" @@ -24709,10 +24897,10 @@ v8-compile-cache@^2.0.3: resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== -v8-to-istanbul@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc" - integrity sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA== +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -24903,7 +25091,7 @@ walk-up-path@^1.0.0: resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== -walker@^1.0.7, walker@~1.0.5: +walker@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -25520,7 +25708,7 @@ yargs-parser@^3.2.0: camelcase "^3.0.0" lodash.assign "^4.1.0" -yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: +yargs@^15.1.0, yargs@^15.3.1: version "15.4.1" resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== From 069d69290cca9a442c360d5f52de2297457c02aa Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 30 Jan 2022 21:26:50 +0100 Subject: [PATCH 143/225] tech-radar: fix tests to work with @testing-library/react 12 Signed-off-by: Patrik Oldsberg --- .../src/components/RadarComponent.test.tsx | 4 ++-- .../tech-radar/src/components/RadarPage.test.tsx | 16 ++++++---------- .../tech-radar/src/utils/polyfills/getBBox.ts | 1 + 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/plugins/tech-radar/src/components/RadarComponent.test.tsx b/plugins/tech-radar/src/components/RadarComponent.test.tsx index 38d289cf1e..6b8bd944b8 100644 --- a/plugins/tech-radar/src/components/RadarComponent.test.tsx +++ b/plugins/tech-radar/src/components/RadarComponent.test.tsx @@ -51,7 +51,7 @@ describe('RadarComponent', () => { jest.useFakeTimers(); const errorApi = { post: () => {} }; - const { getByTestId, queryByTestId } = render( + const { getByTestId, findByTestId } = render( { }); expect(getByTestId('progress')).toBeInTheDocument(); - await waitFor(() => queryByTestId('tech-radar-svg')); + await findByTestId('tech-radar-svg'); jest.useRealTimers(); }); diff --git a/plugins/tech-radar/src/components/RadarPage.test.tsx b/plugins/tech-radar/src/components/RadarPage.test.tsx index 490a61ee76..c0ebde17c8 100644 --- a/plugins/tech-radar/src/components/RadarPage.test.tsx +++ b/plugins/tech-radar/src/components/RadarPage.test.tsx @@ -59,7 +59,7 @@ describe('RadarPage', () => { svgProps: { 'data-testid': 'tech-radar-svg' }, }; - const { getByTestId, queryByTestId } = render( + const { getByTestId, findByTestId } = render( wrapInTestApp( @@ -74,7 +74,7 @@ describe('RadarPage', () => { }); expect(getByTestId('progress')).toBeInTheDocument(); - await waitFor(() => queryByTestId('tech-radar-svg')); + await findByTestId('tech-radar-svg'); jest.useRealTimers(); }); @@ -86,7 +86,7 @@ describe('RadarPage', () => { }; jest.spyOn(mockClient, 'load'); - const { getByText, getByTestId } = await renderInTestApp( + const { getByText, findByTestId } = await renderInTestApp( @@ -94,12 +94,10 @@ describe('RadarPage', () => { , ); - await waitFor(() => getByTestId('tech-radar-svg')); - + await expect(findByTestId('tech-radar-svg')).resolves.toBeInTheDocument(); expect( getByText('Pick the recommended technologies for your projects'), ).toBeInTheDocument(); - expect(getByTestId('tech-radar-svg')).toBeInTheDocument(); expect(mockClient.load).toBeCalledWith(undefined); }); @@ -112,7 +110,7 @@ describe('RadarPage', () => { }; jest.spyOn(mockClient, 'load'); - const { getByTestId } = await renderInTestApp( + const { findByTestId } = await renderInTestApp( @@ -120,9 +118,7 @@ describe('RadarPage', () => { , ); - await waitFor(() => getByTestId('tech-radar-svg')); - - expect(getByTestId('tech-radar-svg')).toBeInTheDocument(); + await expect(findByTestId('tech-radar-svg')).resolves.toBeInTheDocument(); expect(mockClient.load).toBeCalledWith('myId'); }); diff --git a/plugins/tech-radar/src/utils/polyfills/getBBox.ts b/plugins/tech-radar/src/utils/polyfills/getBBox.ts index 7102d3d653..6e52995e80 100644 --- a/plugins/tech-radar/src/utils/polyfills/getBBox.ts +++ b/plugins/tech-radar/src/utils/polyfills/getBBox.ts @@ -34,6 +34,7 @@ class GetBBoxPolyfill { Object.defineProperty(window.Element.prototype, 'getBBox', { writable: false, + configurable: true, value: () => ({ x, y, width, height }), }); } From bae9359032d602a6405f38987b0d628112774fed Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Jan 2022 02:23:59 +0100 Subject: [PATCH 144/225] backend-common: silenced and simplified void logger Signed-off-by: Patrik Oldsberg --- .changeset/strange-wasps-whisper.md | 5 +++++ packages/backend-common/src/logging/voidLogger.ts | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 .changeset/strange-wasps-whisper.md diff --git a/.changeset/strange-wasps-whisper.md b/.changeset/strange-wasps-whisper.md new file mode 100644 index 0000000000..bef72e276a --- /dev/null +++ b/.changeset/strange-wasps-whisper.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +The logger returned from `getVoidLogger` is now uses a silenced console transport instead. diff --git a/packages/backend-common/src/logging/voidLogger.ts b/packages/backend-common/src/logging/voidLogger.ts index eb9993fe7f..79077f5c96 100644 --- a/packages/backend-common/src/logging/voidLogger.ts +++ b/packages/backend-common/src/logging/voidLogger.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { PassThrough } from 'stream'; import * as winston from 'winston'; /** @@ -24,6 +23,6 @@ import * as winston from 'winston'; */ export function getVoidLogger(): winston.Logger { return winston.createLogger({ - transports: [new winston.transports.Stream({ stream: new PassThrough() })], + transports: [new winston.transports.Console({ silent: true })], }); } From 6f3ef325a820afc50db8defcebc96f98711b9a70 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 00:59:47 +0100 Subject: [PATCH 145/225] backend-common: update tests to work with Jest 27 Signed-off-by: Patrik Oldsberg --- packages/backend-common/src/reading/AzureUrlReader.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-common/src/reading/AzureUrlReader.test.ts b/packages/backend-common/src/reading/AzureUrlReader.test.ts index 2eb7a60095..bc088d8bc9 100644 --- a/packages/backend-common/src/reading/AzureUrlReader.test.ts +++ b/packages/backend-common/src/reading/AzureUrlReader.test.ts @@ -130,7 +130,7 @@ describe('AzureUrlReader', () => { { url: 'com/a/b/blob/master/path/to/c.yaml', config: createConfig(), - error: 'Invalid URL: com/a/b/blob/master/path/to/c.yaml', + error: 'Invalid URL', }, { url: '', From 219058fdb7861b4ae06d7ff494ed4c1744637fb2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 10:48:15 +0100 Subject: [PATCH 146/225] shortcuts: update test to work with jest 27 Signed-off-by: Patrik Oldsberg --- .../src/api/LocalStoredShortcuts.test.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts b/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts index a1f7d04d3b..c8401e8b1a 100644 --- a/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts +++ b/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts @@ -21,19 +21,22 @@ import { LocalStoredShortcuts } from './LocalStoredShortcuts'; import { ShortcutApi } from './ShortcutApi'; describe('LocalStoredShortcuts', () => { - // eslint-disable-next-line jest/no-done-callback - it('should observe shortcuts', async done => { + it('should observe shortcuts', async () => { const shortcutApi: ShortcutApi = new LocalStoredShortcuts( MockStorageApi.create(), ); const shortcut: Shortcut = { id: 'id', title: 'title', url: '/url' }; await shortcutApi.add(shortcut); - shortcutApi.shortcut$().subscribe(data => { - expect(data).toEqual( - expect.arrayContaining([{ ...shortcut, id: expect.anything() }]), - ); - done(); + + await new Promise(resolve => { + const subscription = shortcutApi.shortcut$().subscribe(data => { + expect(data).toEqual( + expect.arrayContaining([{ ...shortcut, id: expect.anything() }]), + ); + subscription.unsubscribe(); + resolve(); + }); }); }); From 364bb0da0322a3ae44fd606e3b34a88eaa6a75c1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 11:09:48 +0100 Subject: [PATCH 147/225] analytics-module-ga: make tests work with Jest 27 Signed-off-by: Patrik Oldsberg --- .../AnalyticsApi/GoogleAnalytics.test.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/analytics-module-ga/src/apis/implementations/AnalyticsApi/GoogleAnalytics.test.ts b/plugins/analytics-module-ga/src/apis/implementations/AnalyticsApi/GoogleAnalytics.test.ts index a4f7195fec..8a5182534d 100644 --- a/plugins/analytics-module-ga/src/apis/implementations/AnalyticsApi/GoogleAnalytics.test.ts +++ b/plugins/analytics-module-ga/src/apis/implementations/AnalyticsApi/GoogleAnalytics.test.ts @@ -220,7 +220,7 @@ describe('GoogleAnalytics', () => { }); // Wait for any/all promises involved to settle. - await new Promise(resolve => setImmediate(resolve)); + await new Promise(resolve => setTimeout(resolve)); // A pageview should have been fired immediately. const [command, data] = ReactGA.testModeAPI.calls[1]; @@ -251,7 +251,7 @@ describe('GoogleAnalytics', () => { }); // Wait for any/all promises involved to settle. - await new Promise(resolve => setImmediate(resolve)); + await new Promise(resolve => setTimeout(resolve)); // A pageview should have been fired immediately. const [command, data] = ReactGA.testModeAPI.calls[1]; @@ -290,7 +290,7 @@ describe('GoogleAnalytics', () => { }); // Wait for any/all promises involved to settle. - await new Promise(resolve => setImmediate(resolve)); + await new Promise(resolve => setTimeout(resolve)); // User ID should have been set after the pageview. const [setCommand, setData] = ReactGA.testModeAPI.calls[2]; @@ -318,7 +318,7 @@ describe('GoogleAnalytics', () => { }); // Wait for any/all promises involved to settle. - await new Promise(resolve => setImmediate(resolve)); + await new Promise(resolve => setTimeout(resolve)); // A pageview should have been fired immediately. const [command, data] = ReactGA.testModeAPI.calls[1]; @@ -369,7 +369,7 @@ describe('GoogleAnalytics', () => { }); // Wait for any/all promises involved to settle. - await new Promise(resolve => setImmediate(resolve)); + await new Promise(resolve => setTimeout(resolve)); // User ID should have been set first. const [setCommand, setData] = ReactGA.testModeAPI.calls[1]; From 850e0ebbe347e79183ab929cc2bc67736e9d1b01 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Mar 2022 14:01:35 +0100 Subject: [PATCH 148/225] search-backend-node: update runPeriodically test to work with jest 27 Signed-off-by: Patrik Oldsberg --- plugins/search-backend-node/src/runPeriodically.test.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/search-backend-node/src/runPeriodically.test.ts b/plugins/search-backend-node/src/runPeriodically.test.ts index 4d8e991b9e..0f2ee44b8d 100644 --- a/plugins/search-backend-node/src/runPeriodically.test.ts +++ b/plugins/search-backend-node/src/runPeriodically.test.ts @@ -18,7 +18,11 @@ import { runPeriodically } from './runPeriodically'; jest.useFakeTimers(); describe('runPeriodically', () => { - const flushPromises = () => new Promise(setImmediate); + const flushPromises = async () => { + const promise = new Promise(resolve => process.nextTick(resolve)); + jest.runAllTicks(); + await promise; + }; const advanceTimersByTime = async (time: number) => { jest.advanceTimersByTime(time); // Advancing the time with jest doesn't run all promises, but only sync code From 89daaa3508460c9e3c7fe11af1c956e2a19b92e9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 00:11:24 +0100 Subject: [PATCH 149/225] kubernetes-backend: fix Jest 27 test incompatibility Signed-off-by: Patrik Oldsberg --- plugins/kubernetes-backend/package.json | 3 +-- .../AwsIamKubernetesAuthTranslator.test.ts | 23 +++++++++++-------- yarn.lock | 5 ---- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 22e88b9609..9682d879b4 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -61,8 +61,7 @@ "@backstage/cli": "^0.16.1-next.0", "@types/aws4": "^1.5.1", "supertest": "^6.1.3", - "aws-sdk-mock": "^5.2.1", - "bdd-lazy-var": "^2.6.0" + "aws-sdk-mock": "^5.2.1" }, "files": [ "dist", diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts index 7806160e58..2696587e69 100644 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts @@ -16,7 +16,6 @@ import AWS from 'aws-sdk'; import AWSMock from 'aws-sdk-mock'; import { AwsIamKubernetesAuthTranslator } from './AwsIamKubernetesAuthTranslator'; -import { get, def } from 'bdd-lazy-var'; describe('AwsIamKubernetesAuthTranslator tests', () => { let role: any = undefined; @@ -48,7 +47,7 @@ describe('AwsIamKubernetesAuthTranslator tests', () => { jest.resetAllMocks(); }); - def('subject', () => { + function executeTranslation() { AWSMock.mock('STS', 'assumeRole', (_params: any, callback: Function) => { callback(null, assumeResponse); }); @@ -71,7 +70,7 @@ describe('AwsIamKubernetesAuthTranslator tests', () => { mockedCredentials = undefined; return response; - }); + } it('returns a signed url for AWS credentials', async () => { // These credentials are not real. @@ -81,8 +80,8 @@ describe('AwsIamKubernetesAuthTranslator tests', () => { 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', ); - const subject = await get('subject'); - expect(subject.serviceAccountToken).toBeDefined(); + const response = await executeTranslation(); + expect(response.serviceAccountToken).toBeDefined(); }); describe('When the role is assumed', () => { @@ -96,15 +95,17 @@ describe('AwsIamKubernetesAuthTranslator tests', () => { describe('When the role is valid', () => { it('returns a signed url for AWS credentials', async () => { - const subject = await get('subject'); - expect(subject.serviceAccountToken).toBeDefined(); + const response = await executeTranslation(); + expect(response.serviceAccountToken).toBeDefined(); }); }); describe('When the role is invalid', () => { it('returns the original AWS credentials', async () => { assumeResponse = undefined; - await expect(get('subject')).rejects.toThrow(/Unable to assume role:/); + await expect(executeTranslation()).rejects.toThrow( + /Unable to assume role:/, + ); }); }); }); @@ -112,7 +113,9 @@ describe('AwsIamKubernetesAuthTranslator tests', () => { describe('When no AWS creds are available', () => { it('throws unable to get AWS credentials', async () => { mockedCredentials = new Error(); - await expect(get('subject')).rejects.toThrow('No AWS credentials found.'); + await expect(executeTranslation()).rejects.toThrow( + 'No AWS credentials found.', + ); }); }); @@ -123,7 +126,7 @@ describe('AwsIamKubernetesAuthTranslator tests', () => { 'AKIAIOSFODNN7EXAMPLE', undefinedSecret, ); - await expect(get('subject')).rejects.toThrow( + await expect(executeTranslation()).rejects.toThrow( 'Invalid AWS credentials found.', ); }); diff --git a/yarn.lock b/yarn.lock index e6b1a65863..f9656214a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8367,11 +8367,6 @@ bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: dependencies: tweetnacl "^0.14.3" -bdd-lazy-var@^2.6.0: - version "2.6.1" - resolved "https://registry.npmjs.org/bdd-lazy-var/-/bdd-lazy-var-2.6.1.tgz#ca03fb36d68c5a507c0ba9a4d53160b899e6b7cb" - integrity sha512-X3ADwcFji/IHIrYJhTTpaiWhoOx4pl4whdAx1dmvdeUPsMUb7fVYFvf/Q33VEAEAVkEwi5rgNSZ0Y9oOVeQV+A== - before-after-hook@^2.1.0, before-after-hook@^2.2.0: version "2.2.2" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" From 14e3bacfd4941c9730796bccf9fa1b83f80fc8ce Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 10:10:41 +0100 Subject: [PATCH 150/225] backend-tasks: update tests to work with Jest 27 Signed-off-by: Patrik Oldsberg --- .../src/tasks/PluginTaskSchedulerImpl.test.ts | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts index 95a9729018..11a54b9a39 100644 --- a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts +++ b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts @@ -17,10 +17,10 @@ import { getVoidLogger } from '@backstage/backend-common'; import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils'; import { Duration } from 'luxon'; -import waitForExpect from 'wait-for-expect'; import { migrateBackendTasks } from '../database/migrateBackendTasks'; import { PluginTaskSchedulerImpl } from './PluginTaskSchedulerImpl'; import { ConflictError, NotFoundError } from '@backstage/errors'; +import { AbortSignal } from 'node-abort-controller'; jest.useFakeTimers(); @@ -48,6 +48,7 @@ describe('PluginTaskManagerImpl', () => { const { manager } = await init(databaseId); const fn = jest.fn(); + const promise = new Promise(resolve => fn.mockImplementation(resolve)); await manager.scheduleTask({ id: 'task1', timeout: Duration.fromMillis(5000), @@ -55,9 +56,8 @@ describe('PluginTaskManagerImpl', () => { fn, }); - await waitForExpect(() => { - expect(fn).toBeCalled(); - }); + await promise; + expect(fn).toHaveBeenCalledWith(expect.any(AbortSignal)); }, 60_000, ); @@ -68,6 +68,7 @@ describe('PluginTaskManagerImpl', () => { const { manager } = await init(databaseId); const fn = jest.fn(); + const promise = new Promise(resolve => fn.mockImplementation(resolve)); await manager.scheduleTask({ id: 'task2', timeout: Duration.fromMillis(5000), @@ -75,9 +76,8 @@ describe('PluginTaskManagerImpl', () => { fn, }); - await waitForExpect(() => { - expect(fn).toBeCalled(); - }); + await promise; + expect(fn).toHaveBeenCalledWith(expect.any(AbortSignal)); }, 60_000, ); @@ -90,6 +90,7 @@ describe('PluginTaskManagerImpl', () => { const { manager } = await init(databaseId); const fn = jest.fn(); + const promise = new Promise(resolve => fn.mockImplementation(resolve)); await manager.scheduleTask({ id: 'task1', timeout: Duration.fromMillis(5000), @@ -101,9 +102,8 @@ describe('PluginTaskManagerImpl', () => { await manager.triggerTask('task1'); jest.advanceTimersByTime(5000); - await waitForExpect(() => { - expect(fn).toBeCalled(); - }); + await promise; + expect(fn).toHaveBeenCalledWith(expect.any(AbortSignal)); }, 60_000, ); @@ -158,6 +158,7 @@ describe('PluginTaskManagerImpl', () => { const { manager } = await init(databaseId); const fn = jest.fn(); + const promise = new Promise(resolve => fn.mockImplementation(resolve)); await manager .createScheduledTaskRunner({ timeout: Duration.fromMillis(5000), @@ -168,9 +169,8 @@ describe('PluginTaskManagerImpl', () => { fn, }); - await waitForExpect(() => { - expect(fn).toBeCalled(); - }); + await promise; + expect(fn).toHaveBeenCalledWith(expect.any(AbortSignal)); }, 60_000, ); From 13d3f49793a577f82cc98df37054630f8795349c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 10:18:21 +0100 Subject: [PATCH 151/225] auth-backend: update FirestoreKeyStore tests to work with Jest 27 Signed-off-by: Patrik Oldsberg --- .../auth-backend/src/identity/FirestoreKeyStore.test.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/auth-backend/src/identity/FirestoreKeyStore.test.ts b/plugins/auth-backend/src/identity/FirestoreKeyStore.test.ts index a7192ed4ab..6a3ce87f82 100644 --- a/plugins/auth-backend/src/identity/FirestoreKeyStore.test.ts +++ b/plugins/auth-backend/src/identity/FirestoreKeyStore.test.ts @@ -44,6 +44,8 @@ jest.mock('@google-cloud/firestore', () => ({ Firestore: jest.fn().mockImplementation(() => firestoreMock), })); +jest.useFakeTimers('legacy'); + describe('FirestoreKeyStore', () => { const key = { kid: '123', @@ -69,11 +71,6 @@ describe('FirestoreKeyStore', () => { beforeEach(() => { jest.clearAllMocks(); - jest.useFakeTimers(); - }); - - afterEach(() => { - jest.useRealTimers(); }); it('can create an instance without settings', async () => { From 0041b2ec26e3b8fc2eecb5d258456dfebf059094 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 10:19:24 +0100 Subject: [PATCH 152/225] tech-insights-backend: update FactRetrieverEngine tests to work with Jest 27 Signed-off-by: Patrik Oldsberg --- .../src/service/fact/FactRetrieverEngine.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts index 1881606ede..a1b4ee1c82 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts @@ -28,7 +28,7 @@ import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils'; import { TaskScheduler } from '@backstage/backend-tasks'; import waitForExpect from 'wait-for-expect'; -jest.useFakeTimers(); +jest.useFakeTimers('legacy'); const testFactRetriever: FactRetriever = { id: 'test_factretriever', @@ -145,7 +145,7 @@ describe('FactRetrieverEngine', () => { } it.each(databases.eachSupportedId())( - 'Should update fact retriever schemas on initialization', + 'Should update fact retriever schemas on initialization with %s', async databaseId => { const schemaAssertionCallback = jest.fn((def: FactSchemaDefinition) => { expect(def.id).toEqual('test_factretriever'); @@ -170,7 +170,7 @@ describe('FactRetrieverEngine', () => { ); it.each(databases.eachSupportedId())( - 'Should insert facts when scheduled step is run', + 'Should insert facts when scheduled step is run with %s', async databaseId => { function insertCallback({ facts, From 231d24d5aa2dccdb8bfa5bf4c0778ae9aa153b08 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 12:16:36 +0100 Subject: [PATCH 153/225] backend-tasks: fix TaskWorker retry test Signed-off-by: Patrik Oldsberg --- .../backend-tasks/src/tasks/TaskWorker.test.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/backend-tasks/src/tasks/TaskWorker.test.ts b/packages/backend-tasks/src/tasks/TaskWorker.test.ts index 793e679c39..4cdd3e973e 100644 --- a/packages/backend-tasks/src/tasks/TaskWorker.test.ts +++ b/packages/backend-tasks/src/tasks/TaskWorker.test.ts @@ -22,6 +22,7 @@ import { migrateBackendTasks } from '../database/migrateBackendTasks'; import { DbTasksRow, DB_TASKS_TABLE } from '../database/tables'; import { TaskWorker } from './TaskWorker'; import { TaskSettingsV2 } from './types'; +import { AbortSignal } from 'node-abort-controller'; describe('TaskWorker', () => { const logger = getVoidLogger(); @@ -124,7 +125,15 @@ describe('TaskWorker', () => { const knex = await databases.init(databaseId); await migrateBackendTasks(knex); - const fn = jest.fn().mockRejectedValue(new Error('failed')); + const fn = jest.fn(); + const promise = new Promise(resolve => { + fn.mockImplementation(() => { + if (fn.mock.calls.length === 3) { + resolve(); + } + throw new Error('failed'); + }); + }); const settings: TaskSettingsV2 = { version: 2, initialDelayDuration: undefined, @@ -135,9 +144,9 @@ describe('TaskWorker', () => { const worker = new TaskWorker('task1', fn, knex, logger); worker.start(settings); - waitForExpect(() => { - expect(fn).toBeCalledTimes(3); - }); + await promise; + expect(fn).toBeCalledTimes(3); + expect(fn).toBeCalledWith(expect.any(AbortSignal)); }, 60_000, ); From af67adafed0538af7f8e8e8ff25cffab7c6a5265 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 12:59:49 +0100 Subject: [PATCH 154/225] cli: update package role environment mapping in jest config Signed-off-by: Patrik Oldsberg --- packages/cli/config/jest.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index 5cda03c199..6618790a72 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -39,18 +39,18 @@ const transformIgnorePattern = [ // Provides additional config that's based on the role of the target package function getRoleConfig(role) { switch (role) { - case 'app': + case 'frontend': case 'web-library': case 'common-library': - case 'plugin-frontend': - case 'plugin-frontend-module': + case 'frontend-plugin': + case 'frontend-plugin-module': default: return { testEnvironment: 'jsdom' }; case 'cli': case 'backend': case 'node-library': - case 'plugin-backend': - case 'plugin-backend-module': + case 'backend-plugin': + case 'backend-plugin-module': return { testEnvironment: 'node' }; } } From 45f22fa5aa91504d228439fbea1490704cf89f5a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 13:00:15 +0100 Subject: [PATCH 155/225] cli: bump jest a little bit further Signed-off-by: Patrik Oldsberg --- packages/cli/package.json | 2 +- yarn.lock | 743 ++++++++++++++++++-------------------- 2 files changed, 358 insertions(+), 387 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index fb6eff9a49..a2ef979218 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -85,7 +85,7 @@ "handlebars": "^4.7.3", "html-webpack-plugin": "^5.3.1", "inquirer": "^8.2.0", - "jest": "^27.4.7", + "jest": "^27.5.1", "jest-css-modules": "^2.1.0", "jest-transform-yaml": "^1.0.0", "json-schema": "^0.4.0", diff --git a/yarn.lock b/yarn.lock index f9656214a0..237b8356ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2896,158 +2896,158 @@ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^27.4.6": - version "27.4.6" - resolved "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz#0742e6787f682b22bdad56f9db2a8a77f6a86107" - integrity sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA== +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.4.6" - jest-util "^27.4.2" + jest-message-util "^27.5.1" + jest-util "^27.5.1" slash "^3.0.0" -"@jest/core@^27.4.7": - version "27.4.7" - resolved "https://registry.npmjs.org/@jest/core/-/core-27.4.7.tgz#84eabdf42a25f1fa138272ed229bcf0a1b5e6913" - integrity sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg== +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== dependencies: - "@jest/console" "^27.4.6" - "@jest/reporters" "^27.4.6" - "@jest/test-result" "^27.4.6" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.4.2" - jest-config "^27.4.7" - jest-haste-map "^27.4.6" - jest-message-util "^27.4.6" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.6" - jest-resolve-dependencies "^27.4.6" - jest-runner "^27.4.6" - jest-runtime "^27.4.6" - jest-snapshot "^27.4.6" - jest-util "^27.4.2" - jest-validate "^27.4.6" - jest-watcher "^27.4.6" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" micromatch "^4.0.4" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.4.6": - version "27.4.6" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.4.6.tgz#1e92885d64f48c8454df35ed9779fbcf31c56d8b" - integrity sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg== +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== dependencies: - "@jest/fake-timers" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.4.6" + jest-mock "^27.5.1" -"@jest/fake-timers@^27.4.6": - version "27.4.6" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz#e026ae1671316dbd04a56945be2fa251204324e8" - integrity sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A== +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^27.4.6" - jest-mock "^27.4.6" - jest-util "^27.4.2" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" -"@jest/globals@^27.4.6": - version "27.4.6" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.4.6.tgz#3f09bed64b0fd7f5f996920258bd4be8f52f060a" - integrity sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw== +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== dependencies: - "@jest/environment" "^27.4.6" - "@jest/types" "^27.4.2" - expect "^27.4.6" + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" -"@jest/reporters@^27.4.6": - version "27.4.6" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz#b53dec3a93baf9b00826abf95b932de919d6d8dd" - integrity sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ== +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.4.6" - "@jest/test-result" "^27.4.6" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" istanbul-lib-instrument "^5.1.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-haste-map "^27.4.6" - jest-resolve "^27.4.6" - jest-util "^27.4.2" - jest-worker "^27.4.6" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/source-map@^27.4.0": - version "27.4.0" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz#2f0385d0d884fb3e2554e8f71f8fa957af9a74b6" - integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== dependencies: callsites "^3.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" source-map "^0.6.0" -"@jest/test-result@^27.4.6": - version "27.4.6" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz#b3df94c3d899c040f602cea296979844f61bdf69" - integrity sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ== +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== dependencies: - "@jest/console" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.4.6": - version "27.4.6" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz#447339b8a3d7b5436f50934df30854e442a9d904" - integrity sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw== +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== dependencies: - "@jest/test-result" "^27.4.6" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.6" - jest-runtime "^27.4.6" + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" -"@jest/transform@^27.4.6": - version "27.4.6" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz#153621940b1ed500305eacdb31105d415dc30231" - integrity sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw== +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.6" - jest-regex-util "^27.4.0" - jest-util "^27.4.2" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -3076,7 +3076,7 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^27.4.2", "@jest/types@^27.5.1": +"@jest/types@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== @@ -8133,18 +8133,18 @@ babel-core@^7.0.0-bridge.0: resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== -babel-jest@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.6.tgz#4d024e69e241cdf4f396e453a07100f44f7ce314" - integrity sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg== +babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== dependencies: - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.4.0" + babel-preset-jest "^27.5.1" chalk "^4.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" slash "^3.0.0" babel-plugin-dynamic-import-node@^2.3.3: @@ -8165,10 +8165,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz#d7831fc0f93573788d80dee7e682482da4c730d6" - integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -8264,12 +8264,12 @@ babel-preset-fbjs@^3.4.0: "@babel/plugin-transform-template-literals" "^7.0.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" -babel-preset-jest@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz#70d0e676a282ccb200fbabd7f415db5fdf393bca" - integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== dependencies: - babel-plugin-jest-hoist "^27.4.0" + babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" babel-runtime@^6.26.0: @@ -11081,7 +11081,7 @@ diff-sequences@^26.6.2: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff-sequences@^27.4.0, diff-sequences@^27.5.1: +diff-sequences@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== @@ -12325,7 +12325,7 @@ expand-template@^2.0.3: resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^27.4.6: +expect@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== @@ -15271,85 +15271,87 @@ jenkins@^0.28.1: dependencies: papi "^0.29.0" -jest-changed-files@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz#da2547ea47c6e6a5f6ed336151bd2075736eb4a5" - integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.6.tgz#d3af34c0eb742a967b1919fbb351430727bcea6c" - integrity sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ== +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== dependencies: - "@jest/environment" "^27.4.6" - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.4.6" + expect "^27.5.1" is-generator-fn "^2.0.0" - jest-each "^27.4.6" - jest-matcher-utils "^27.4.6" - jest-message-util "^27.4.6" - jest-runtime "^27.4.6" - jest-snapshot "^27.4.6" - jest-util "^27.4.2" - pretty-format "^27.4.6" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.4.7: - version "27.4.7" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.7.tgz#d00e759e55d77b3bcfea0715f527c394ca314e5a" - integrity sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw== +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== dependencies: - "@jest/core" "^27.4.7" - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" chalk "^4.0.0" exit "^0.1.2" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^27.4.7" - jest-util "^27.4.2" - jest-validate "^27.4.6" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" prompts "^2.0.1" yargs "^16.2.0" -jest-config@^27.4.7: - version "27.4.7" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.4.7.tgz#4f084b2acbd172c8b43aa4cdffe75d89378d3972" - integrity sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw== +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== dependencies: "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.4.6" - "@jest/types" "^27.4.2" - babel-jest "^27.4.6" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.1" - graceful-fs "^4.2.4" - jest-circus "^27.4.6" - jest-environment-jsdom "^27.4.6" - jest-environment-node "^27.4.6" - jest-get-type "^27.4.0" - jest-jasmine2 "^27.4.6" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.6" - jest-runner "^27.4.6" - jest-util "^27.4.2" - jest-validate "^27.4.6" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" micromatch "^4.0.4" - pretty-format "^27.4.6" + parse-json "^5.2.0" + pretty-format "^27.5.1" slash "^3.0.0" + strip-json-comments "^3.1.1" jest-css-modules@^2.1.0: version "2.1.0" @@ -15368,16 +15370,6 @@ jest-diff@^26.0.0: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-diff@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz#93815774d2012a2cbb6cf23f84d48c7a2618f98d" - integrity sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.6" - jest-diff@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" @@ -15388,124 +15380,109 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-docblock@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz#06c78035ca93cbbb84faf8fce64deae79a59f69f" - integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== dependencies: detect-newline "^3.0.0" -jest-each@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.4.6.tgz#e7e8561be61d8cc6dbf04296688747ab186c40ff" - integrity sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA== +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" chalk "^4.0.0" - jest-get-type "^27.4.0" - jest-util "^27.4.2" - pretty-format "^27.4.6" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" -jest-environment-jsdom@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz#c23a394eb445b33621dfae9c09e4c8021dea7b36" - integrity sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA== +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== dependencies: - "@jest/environment" "^27.4.6" - "@jest/fake-timers" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.4.6" - jest-util "^27.4.2" + jest-mock "^27.5.1" + jest-util "^27.5.1" jsdom "^16.6.0" -jest-environment-node@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.6.tgz#ee8cd4ef458a0ef09d087c8cd52ca5856df90242" - integrity sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ== +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== dependencies: - "@jest/environment" "^27.4.6" - "@jest/fake-timers" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.4.6" - jest-util "^27.4.2" + jest-mock "^27.5.1" + jest-util "^27.5.1" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-get-type@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" - integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== - jest-get-type@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-haste-map@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz#c60b5233a34ca0520f325b7e2cc0a0140ad0862a" - integrity sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ== +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.4.0" - jest-serializer "^27.4.0" - jest-util "^27.4.2" - jest-worker "^27.4.6" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz#109e8bc036cb455950ae28a018f983f2abe50127" - integrity sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw== +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== dependencies: - "@jest/environment" "^27.4.6" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.4.6" + expect "^27.5.1" is-generator-fn "^2.0.0" - jest-each "^27.4.6" - jest-matcher-utils "^27.4.6" - jest-message-util "^27.4.6" - jest-runtime "^27.4.6" - jest-snapshot "^27.4.6" - jest-util "^27.4.2" - pretty-format "^27.4.6" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" throat "^6.0.1" -jest-leak-detector@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz#ed9bc3ce514b4c582637088d9faf58a33bd59bf4" - integrity sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA== +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== dependencies: - jest-get-type "^27.4.0" - pretty-format "^27.4.6" - -jest-matcher-utils@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz#53ca7f7b58170638590e946f5363b988775509b8" - integrity sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA== - dependencies: - chalk "^4.0.0" - jest-diff "^27.4.6" - jest-get-type "^27.4.0" - pretty-format "^27.4.6" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" jest-matcher-utils@^27.5.1: version "27.5.1" @@ -15517,21 +15494,6 @@ jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-message-util@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz#9fdde41a33820ded3127465e1a5896061524da31" - integrity sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.4.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - pretty-format "^27.4.6" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-message-util@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" @@ -15547,12 +15509,12 @@ jest-message-util@^27.5.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz#77d1ba87fbd33ccb8ef1f061697e7341b7635195" - integrity sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw== +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -15560,126 +15522,125 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca" - integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== -jest-resolve-dependencies@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz#fc50ee56a67d2c2183063f6a500cc4042b5e2327" - integrity sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw== +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== dependencies: - "@jest/types" "^27.4.2" - jest-regex-util "^27.4.0" - jest-snapshot "^27.4.6" + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" -jest-resolve@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz#2ec3110655e86d5bfcfa992e404e22f96b0b5977" - integrity sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw== +jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.6" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" jest-pnp-resolver "^1.2.2" - jest-util "^27.4.2" - jest-validate "^27.4.6" + jest-util "^27.5.1" + jest-validate "^27.5.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.6.tgz#1d390d276ec417e9b4d0d081783584cbc3e24773" - integrity sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg== +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== dependencies: - "@jest/console" "^27.4.6" - "@jest/environment" "^27.4.6" - "@jest/test-result" "^27.4.6" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.4.0" - jest-environment-jsdom "^27.4.6" - jest-environment-node "^27.4.6" - jest-haste-map "^27.4.6" - jest-leak-detector "^27.4.6" - jest-message-util "^27.4.6" - jest-resolve "^27.4.6" - jest-runtime "^27.4.6" - jest-util "^27.4.2" - jest-worker "^27.4.6" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz#83ae923818e3ea04463b22f3597f017bb5a1cffa" - integrity sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ== +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== dependencies: - "@jest/environment" "^27.4.6" - "@jest/fake-timers" "^27.4.6" - "@jest/globals" "^27.4.6" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.6" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.6" - jest-message-util "^27.4.6" - jest-mock "^27.4.6" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.6" - jest-snapshot "^27.4.6" - jest-util "^27.4.2" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-serializer@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz#34866586e1cae2388b7d12ffa2c7819edef5958a" - integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== dependencies: "@types/node" "*" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" -jest-snapshot@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.6.tgz#e2a3b4fff8bdce3033f2373b2e525d8b6871f616" - integrity sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ== +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.4.6" - graceful-fs "^4.2.4" - jest-diff "^27.4.6" - jest-get-type "^27.4.0" - jest-haste-map "^27.4.6" - jest-matcher-utils "^27.4.6" - jest-message-util "^27.4.6" - jest-util "^27.4.2" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" natural-compare "^1.4.0" - pretty-format "^27.4.6" + pretty-format "^27.5.1" semver "^7.3.2" jest-transform-yaml@^1.0.0: @@ -15689,41 +15650,41 @@ jest-transform-yaml@^1.0.0: dependencies: js-yaml "4.1.0" -jest-util@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz#ed95b05b1adfd761e2cda47e0144c6a58e05a621" - integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz#efc000acc4697b6cf4fa68c7f3f324c92d0c4f1f" - integrity sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ== +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^27.4.0" + jest-get-type "^27.5.1" leven "^3.1.0" - pretty-format "^27.4.6" + pretty-format "^27.5.1" -jest-watcher@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.6.tgz#673679ebeffdd3f94338c24f399b85efc932272d" - integrity sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw== +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== dependencies: - "@jest/test-result" "^27.4.6" - "@jest/types" "^27.4.2" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.4.2" + jest-util "^27.5.1" string-length "^4.0.1" jest-when@^3.1.0: @@ -15731,7 +15692,7 @@ jest-when@^3.1.0: resolved "https://registry.npmjs.org/jest-when/-/jest-when-3.5.1.tgz#33ab6f923661cf878cd08fe9df64b507934603db" integrity sha512-o+HiaIVCg1IC95sMDKHU9G5v5N5l3UHqXvJpf0PgAMThZeQo4Hf5Sgoj+wpCBRGg4/KtzSAZZZEKNiLqE0i4eQ== -jest-worker@^27.3.1, jest-worker@^27.4.1, jest-worker@^27.4.6: +jest-worker@^27.3.1, jest-worker@^27.4.1: version "27.4.6" resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== @@ -15740,14 +15701,23 @@ jest-worker@^27.3.1, jest-worker@^27.4.1, jest-worker@^27.4.6: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.4.7: - version "27.4.7" - resolved "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz#87f74b9026a1592f2da05b4d258e57505f28eca4" - integrity sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg== +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: - "@jest/core" "^27.4.7" + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== + dependencies: + "@jest/core" "^27.5.1" import-local "^3.0.2" - jest-cli "^27.4.7" + jest-cli "^27.5.1" jimp@^0.10.3: version "0.10.3" @@ -19480,6 +19450,16 @@ parse-json@^5.0.0: json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + parse-package-name@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" @@ -20421,15 +20401,6 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^27.4.6: - version "27.4.6" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz#1b784d2f53c68db31797b2348fa39b49e31846b7" - integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - pretty-format@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" From e9530e06b6c3764370b700838b5174f19cc83f67 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 13:09:16 +0100 Subject: [PATCH 156/225] tech-insights-backend: fix test database setup Signed-off-by: Patrik Oldsberg --- .../src/service/persistence/TechInsightsDatabase.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.test.ts b/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.test.ts index 0b81ad490f..c69432d070 100644 --- a/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.test.ts +++ b/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.test.ts @@ -116,10 +116,11 @@ const additionalFacts = [ ]; describe('Tech Insights database', () => { + const databases = TestDatabases.create(); let store: TechInsightsStore; let testDbClient: Knex; beforeAll(async () => { - testDbClient = await TestDatabases.create().init('SQLITE_3'); + testDbClient = await databases.init('SQLITE_3'); store = ( await initializePersistenceContext(testDbClient, { From 9e1efd4d99e9213ce5458ccc1b3d83d1cd0ef2a0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 13:17:33 +0100 Subject: [PATCH 157/225] scaffolder-backend: update tests to work with Jest 27 Signed-off-by: Patrik Oldsberg --- .../src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts | 3 +++ .../src/scaffolder/tasks/StorageTaskBroker.test.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts index 61df2a167d..0ef0846ddb 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts @@ -25,6 +25,9 @@ import { ConfigReader } from '@backstage/config'; import { TaskContext, TaskSecrets } from './types'; import { TaskSpec } from '@backstage/plugin-scaffolder-common'; +// The Stream module is lazy loaded, so make sure it's in the module cache before mocking fs +void winston.transports.Stream; + const realFiles = Object.fromEntries( [ resolvePackagePath( diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts index 4cac2206fb..bb375e5a0f 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts @@ -187,7 +187,7 @@ describe('StorageTaskBroker', () => { .mockRejectedValue(new Error('nah m8')); const intervalId = setInterval(() => { - broker.vacuumTasks({ timeoutS: 2 }).catch(fail); + broker.vacuumTasks({ timeoutS: 2 }); }, 500); for (;;) { From e2cfd5384712707131fa0f41953b4ec0564853a0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 13:17:59 +0100 Subject: [PATCH 158/225] techdocs: update client test to work with jsdom environment Signed-off-by: Patrik Oldsberg --- plugins/techdocs/src/client.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/techdocs/src/client.test.ts b/plugins/techdocs/src/client.test.ts index 71ad57d12a..8236b93c55 100644 --- a/plugins/techdocs/src/client.test.ts +++ b/plugins/techdocs/src/client.test.ts @@ -221,7 +221,7 @@ describe('TechDocsStorageClient', () => { const promise = storageApi.syncEntityDocs(mockEntity).then(); // flush the event loop - await new Promise(setImmediate); + await new Promise(r => setTimeout(r)); const instance = MockedEventSource.mock .instances[0] as jest.Mocked; @@ -248,7 +248,7 @@ describe('TechDocsStorageClient', () => { const promise = storageApi.syncEntityDocs(mockEntity).then(); // flush the event loop - await new Promise(setImmediate); + await new Promise(r => setTimeout(r)); const instance = MockedEventSource.mock .instances[0] as jest.Mocked; From 447e87092ac9cbecd2cac80ee9b06b2c7df71f6d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 14:07:03 +0100 Subject: [PATCH 159/225] backend-tasks: refactor TaskWorker retry test Signed-off-by: Patrik Oldsberg --- .../src/tasks/TaskWorker.test.ts | 21 +++++------------- .../backend-tasks/src/tasks/TaskWorker.ts | 22 ++++++++----------- 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/packages/backend-tasks/src/tasks/TaskWorker.test.ts b/packages/backend-tasks/src/tasks/TaskWorker.test.ts index 4cdd3e973e..f235c58973 100644 --- a/packages/backend-tasks/src/tasks/TaskWorker.test.ts +++ b/packages/backend-tasks/src/tasks/TaskWorker.test.ts @@ -22,7 +22,6 @@ import { migrateBackendTasks } from '../database/migrateBackendTasks'; import { DbTasksRow, DB_TASKS_TABLE } from '../database/tables'; import { TaskWorker } from './TaskWorker'; import { TaskSettingsV2 } from './types'; -import { AbortSignal } from 'node-abort-controller'; describe('TaskWorker', () => { const logger = getVoidLogger(); @@ -125,28 +124,20 @@ describe('TaskWorker', () => { const knex = await databases.init(databaseId); await migrateBackendTasks(knex); - const fn = jest.fn(); - const promise = new Promise(resolve => { - fn.mockImplementation(() => { - if (fn.mock.calls.length === 3) { - resolve(); - } - throw new Error('failed'); - }); - }); + const fn = jest.fn().mockRejectedValue(new Error('failed')); const settings: TaskSettingsV2 = { version: 2, initialDelayDuration: undefined, cadence: '* * * * * *', timeoutAfterDuration: Duration.fromMillis(60000).toISO(), }; - - const worker = new TaskWorker('task1', fn, knex, logger); + const checkFrequency = Duration.fromObject({ milliseconds: 100 }); + const worker = new TaskWorker('task1', fn, knex, logger, checkFrequency); worker.start(settings); - await promise; - expect(fn).toBeCalledTimes(3); - expect(fn).toBeCalledWith(expect.any(AbortSignal)); + await waitForExpect(() => { + expect(fn).toBeCalledTimes(3); + }); }, 60_000, ); diff --git a/packages/backend-tasks/src/tasks/TaskWorker.ts b/packages/backend-tasks/src/tasks/TaskWorker.ts index 84f45a7fe6..edec453a69 100644 --- a/packages/backend-tasks/src/tasks/TaskWorker.ts +++ b/packages/backend-tasks/src/tasks/TaskWorker.ts @@ -24,7 +24,7 @@ import { TaskFunction, TaskSettingsV2, taskSettingsV2Schema } from './types'; import { delegateAbortController, nowPlus, sleep } from './util'; import { CronTime } from 'cron'; -const WORK_CHECK_FREQUENCY = Duration.fromObject({ seconds: 5 }); +const DEFAULT_WORK_CHECK_FREQUENCY = Duration.fromObject({ seconds: 5 }); /** * Performs the actual work of a task. @@ -32,17 +32,13 @@ const WORK_CHECK_FREQUENCY = Duration.fromObject({ seconds: 5 }); * @private */ export class TaskWorker { - private readonly taskId: string; - private readonly fn: TaskFunction; - private readonly knex: Knex; - private readonly logger: Logger; - - constructor(taskId: string, fn: TaskFunction, knex: Knex, logger: Logger) { - this.taskId = taskId; - this.fn = fn; - this.knex = knex; - this.logger = logger; - } + constructor( + private readonly taskId: string, + private readonly fn: TaskFunction, + private readonly knex: Knex, + private readonly logger: Logger, + private readonly workCheckFrequency: Duration = DEFAULT_WORK_CHECK_FREQUENCY, + ) {} async start(settings: TaskSettingsV2, options?: { signal?: AbortSignal }) { try { @@ -63,7 +59,7 @@ export class TaskWorker { break; } - await sleep(WORK_CHECK_FREQUENCY, options?.signal); + await sleep(this.workCheckFrequency, options?.signal); } this.logger.info(`Task worker finished: ${this.taskId}`); } catch (e) { From 0d81070d5803506c9566767eb9af31fcea855d76 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 14:24:23 +0100 Subject: [PATCH 160/225] catalog-backend: update PlaceholderProcessor test to work with Jest 27 Signed-off-by: Patrik Oldsberg --- .../src/modules/core/PlaceholderProcessor.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts index 7bfc66276e..adff97336e 100644 --- a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts +++ b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts @@ -345,7 +345,7 @@ describe('PlaceholderProcessor', () => { }, ), ).rejects.toThrow( - 'Placeholder $text could not form a URL out of ./a/b/catalog-info.yaml and ../c/catalog-info.yaml, TypeError: Invalid base URL: ./a/b/catalog-info.yaml', + /^Placeholder \$text could not form a URL out of \.\/a\/b\/catalog-info\.yaml and \.\.\/c\/catalog-info\.yaml, TypeError \[ERR_INVALID_URL\]/, ); expect(read).not.toBeCalled(); From aeb17a21e66e4311d7b401ece9df82a445167187 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 14:51:58 +0100 Subject: [PATCH 161/225] cli: update Jest 27 changeset + make node env default Signed-off-by: Patrik Oldsberg --- .changeset/twelve-buses-nail.md | 6 ++++-- .github/styles/vocab.txt | 1 + packages/cli/config/jest.js | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.changeset/twelve-buses-nail.md b/.changeset/twelve-buses-nail.md index 24dd6bbb0b..ddeb7f1413 100644 --- a/.changeset/twelve-buses-nail.md +++ b/.changeset/twelve-buses-nail.md @@ -2,6 +2,8 @@ '@backstage/cli': minor --- -Bump the version range of `jest` from `^26.0.1` to `^27.4.7`. You can find the complete list of breaking changes [here](https://github.com/facebook/jest/releases/tag/v27.0.0). +**BREAKING**: Bump the version range of `jest` from `^26.0.1` to `^27.5.1`. You can find the complete list of breaking changes [here](https://github.com/facebook/jest/releases/tag/v27.0.0). -One of the main breaking changes in Jest 27 is that the default test environment is now `node` rather than `jsdom`. However, this is counteracted in the default Jest configuration provided by the Backstage CLI, as it still defaults the environment to `jsdom`. The future addition of the Backstage package `"role"` field will override this default, setting the test environment to the appropriate value for the role. +We strongly recommend to have completed the [package role migration](https://backstage.io/docs/tutorials/package-role-migration) before upgrading to this version, as the package roles are used to automatically determine the testing environment for each package. If you instead want to set an explicit test environment for each package, you can do so for example in the `"jest"` section in `package.json`. The default test environment for all packages is now `node`, which is also the new Jest default. + +Note that one of the breaking changes of Jest 27 is that the `jsdom` environment no longer includes `setImmediate` and `clearImmediate`, which means you might need to update some of your frontend packages. Another notable change is that `jest.useFakeTimers` now defaults to the `'modern'` implementation, which also mocks microtasks. diff --git a/.github/styles/vocab.txt b/.github/styles/vocab.txt index 3910caccc6..c9382b1fd0 100644 --- a/.github/styles/vocab.txt +++ b/.github/styles/vocab.txt @@ -170,6 +170,7 @@ memoized microservice microservices microsite +microtasks middleware minikube Minikube diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index 6618790a72..6b9201559b 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -44,13 +44,13 @@ function getRoleConfig(role) { case 'common-library': case 'frontend-plugin': case 'frontend-plugin-module': - default: return { testEnvironment: 'jsdom' }; case 'cli': case 'backend': case 'node-library': case 'backend-plugin': case 'backend-plugin-module': + default: return { testEnvironment: 'node' }; } } From c2c9570a470f2df4c572ced1fa731d85d9fb96f3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 24 Mar 2022 19:44:25 +0100 Subject: [PATCH 162/225] search-backend-module-elasticsearch: remove explicit jest environment Signed-off-by: Patrik Oldsberg --- plugins/search-backend-module-elasticsearch/package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 0b35de5a43..3124762879 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -42,8 +42,5 @@ "dist", "config.d.ts" ], - "jest": { - "testEnvironment": "node" - }, "configSchema": "config.d.ts" } From 9712a8a507417beafe9fe470a0a0fad5de731706 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 25 Mar 2022 11:27:49 +0100 Subject: [PATCH 163/225] tech-insights-backend: refactor FactRetrieverEngine to avoid waitForExpect Signed-off-by: Patrik Oldsberg --- .../service/fact/FactRetrieverEngine.test.ts | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts index a1b4ee1c82..0617c0aedd 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts @@ -26,9 +26,8 @@ import { DatabaseManager, getVoidLogger } from '@backstage/backend-common'; import { ConfigReader } from '@backstage/config'; import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils'; import { TaskScheduler } from '@backstage/backend-tasks'; -import waitForExpect from 'wait-for-expect'; -jest.useFakeTimers('legacy'); +jest.useFakeTimers(); const testFactRetriever: FactRetriever = { id: 'test_factretriever', @@ -193,7 +192,14 @@ describe('FactRetrieverEngine', () => { }); } - engine = await createEngine(databaseId, insertCallback, () => {}); + const handler = jest.fn(); + engine = await createEngine( + databaseId, + insertCallback, + () => {}, + undefined, + { ...testFactRetriever, handler }, + ); await engine.schedule(); const job: FactRetrieverRegistration = engine.getJobRegistration( testFactRetriever.id, @@ -203,13 +209,15 @@ describe('FactRetrieverEngine', () => { await engine.triggerJob(job.factRetriever.id); jest.advanceTimersByTime(5000); - await waitForExpect(() => { - expect(testFactRetriever.handler).toHaveBeenCalledWith( - expect.objectContaining({ - entityFilter: testFactRetriever.entityFilter, - }), - ); - }); + const handlerParam = await new Promise(resolve => + handler.mockImplementation(resolve), + ); + + await expect(handlerParam).toEqual( + expect.objectContaining({ + entityFilter: testFactRetriever.entityFilter, + }), + ); }, 60_000, ); From 7321c1f9447a139f072231ae887eb03ff1a08667 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 25 Mar 2022 11:32:22 +0100 Subject: [PATCH 164/225] workflows: tweak e2e test paths Signed-off-by: Patrik Oldsberg --- .github/workflows/verify_e2e-techdocs.yml | 7 ++----- .github/workflows/verify_e2e-windows.yml | 1 + 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml index 02f3653b82..b9dfdc23eb 100644 --- a/.github/workflows/verify_e2e-techdocs.yml +++ b/.github/workflows/verify_e2e-techdocs.yml @@ -2,14 +2,11 @@ name: E2E Test Techdocs on: pull_request: paths: + - 'yarn.lock' + - '.github/workflows/verify_e2e-techdocs.yml' - 'packages/techdocs-cli/**' - 'packages/techdocs-cli-embedded-app/**' - 'plugins/techdocs/**' - paths-ignore: - - '.changeset/**' - - 'contrib/**' - - 'docs/**' - - 'microsite/**' concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index bc6bc8a698..8dc621ebf7 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -5,6 +5,7 @@ name: E2E Test Windows on: pull_request: paths: + - 'yarn.lock' - '.github/workflows/verify_e2e-windows.yml' - 'packages/cli/**' - 'packages/e2e-test/**' From d7f4e45fe17b511531d6204289078539f069fb19 Mon Sep 17 00:00:00 2001 From: Simone Fumagalli Date: Fri, 25 Mar 2022 11:40:59 +0100 Subject: [PATCH 165/225] Added info about scopes needed by the token Signed-off-by: Simone Fumagalli --- docs/integrations/gitlab/locations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/gitlab/locations.md b/docs/integrations/gitlab/locations.md index 965d183a9d..a71fc9bcba 100644 --- a/docs/integrations/gitlab/locations.md +++ b/docs/integrations/gitlab/locations.md @@ -28,7 +28,7 @@ can list the GitLab providers you want to fetch data from. Each entry is a structure with up to four elements: - `host`: The host of the GitLab instance, e.g. `gitlab.company.com`. -- `token` (optional): An authentication token as expected by GitLab. If this is +- `token` (optional): An authentication token as expected by GitLab. The token need at least `api`, `read_repository` and `write_repository` scopes. If this is not supplied, anonymous access will be used. - `apiBaseUrl` (optional): The URL of the GitLab API. For self-hosted installations, it is commonly at `https:///api/v4`. For gitlab.com, this From 65d2457711d642d5b91fa3951d76e8e86bc862ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 12:07:26 +0000 Subject: [PATCH 166/225] build(deps): bump aws-sdk from 2.1095.0 to 2.1100.0 Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.1095.0 to 2.1100.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.1095.0...v2.1100.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 237b8356ac..d698269f9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8067,9 +8067,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.840.0, aws-sdk@^2.928.0, aws-sdk@^2.948.0: - version "2.1095.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1095.0.tgz#7847493b09a326a0613010ed9db53302f760edf6" - integrity sha512-OrZq2pTDsnfOJYsAdRlw+NXTGLQYqWldSZR3HugW8JT4JPWyFZrgB2yPP2ElFHX+4J4SZg5QvkAXl/7s9gLTgA== + version "2.1100.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1100.0.tgz#20bbabc12fbc316067ba02af66bf371a455af9e3" + integrity sha512-StLSQCYFmFPxjoMntIb+8jUZ0vzmq3xkrwG5e/4qU1bSGWCmhhjvz6c+4j38AnIy8MFV1+tV8RArbhLUEV2dGw== dependencies: buffer "4.9.2" events "1.1.1" From 13fcb3e6badd9c3fe97a53110c7fb61b5fa48351 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 25 Mar 2022 13:10:45 +0100 Subject: [PATCH 167/225] docs/local-dev: add note about jest config selecting the env Signed-off-by: Patrik Oldsberg --- docs/local-dev/cli-build-system.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/local-dev/cli-build-system.md b/docs/local-dev/cli-build-system.md index 91f4668f4e..9245cea7ff 100644 --- a/docs/local-dev/cli-build-system.md +++ b/docs/local-dev/cli-build-system.md @@ -521,7 +521,9 @@ The built-in configuration brings a couple of benefits and features. The most important one being a baseline transformer and module configuration that enables support for the listed [loaders](#loaders) within tests. It will also automatically detect and use `src/setupTests.ts` if it exists, and provides a -coverage configuration that works well with our selected transpilers. +coverage configuration that works well with our selected transpilers. The configuration +will also detect the appropriate Jest environment for each package role, running +`web-libraries` with the `"jsdom"` environment, `node-libraries` with `"node"`, and so on. The configuration also takes a project-wide approach, with the expectation most if not all packages within a monorepo will use the same base configuration. This From c7abdb3bb68c1d07ac82d432c5e1ede9ea075f9c Mon Sep 17 00:00:00 2001 From: jv Date: Fri, 25 Mar 2022 13:15:39 +0100 Subject: [PATCH 168/225] Added Agorapulse to the adopters list Signed-off-by: jv --- ADOPTERS.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index bce16dec9d..ac9139a7ed 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -107,4 +107,6 @@ _If you're using Backstage in your organization, please try to add your company | [VIA](https://www.via.com.br) | [@vagnerguedes](https://github.com/vagnerguedes) | Centralized Developer Experience portal - Software catalog and documentation platform, software templates, techdocs, scaffolding, self-service infrastructure | | [Surevine](https://www.surevine.com/) | [@DJDANNY123](https://github.com/djdanny123) | Developer portal for software catalog, discovery and a view of the technologies we are using across the organisation, we are looking to explore how we can enrich our entities in Backstage by integrating a software bill of materials. | | [Bonial International GmbH](https://www.bonial.com/) | [@pjungermann](https://github.com/pjungermann) | Centralized developer portal with software catalog, tech docs, templates, and more. | -| [Beez Innovation Labs Pvt. Ltd](https://www.beezlabs.com/) | [Karthikeyan Venkatesan](https://github.com/karthikeyan23) | Developer portal with software catalog, scaffolding, tech docs, templates, and infra. | +| [Beez Innovation Labs Pvt. Ltd](https://www.beezlabs.com/) | [Karthikeyan Venkatesan](https://github.com/karthikeyan23) | Developer portal with software catalog, scaffolding, tech docs, templates, and infra. | +| [Agorapulse](https://www.agorapulse.com/) | [@jvdrean](https://github.com/jvdrean) | Developer portal with software catalog, documentation, monitoring, runbooks, tech radar and more. | + From 07c0610557eeb81ef29d8242e389225c3796fa32 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 25 Mar 2022 10:06:37 +0100 Subject: [PATCH 169/225] feedback fixes Signed-off-by: Emma Indal --- plugins/stack-overflow-backend/.eslintrc.js | 4 +- plugins/stack-overflow-backend/README.md | 3 +- plugins/stack-overflow-backend/api-report.md | 4 +- plugins/stack-overflow-backend/config.d.ts | 28 + plugins/stack-overflow-backend/package.json | 11 +- .../StackOverflowQuestionsCollatorFactory.ts | 14 +- plugins/stack-overflow/.eslintrc.js | 4 +- plugins/stack-overflow/README.md | 4 +- plugins/stack-overflow/config.d.ts | 28 + plugins/stack-overflow/package.json | 37 +- .../home/StackOverflowQuestions/Content.tsx | 6 +- yarn.lock | 4179 +++-------------- 12 files changed, 792 insertions(+), 3530 deletions(-) create mode 100644 plugins/stack-overflow-backend/config.d.ts create mode 100644 plugins/stack-overflow/config.d.ts diff --git a/plugins/stack-overflow-backend/.eslintrc.js b/plugins/stack-overflow-backend/.eslintrc.js index 16a033dbc6..e2a53a6ad2 100644 --- a/plugins/stack-overflow-backend/.eslintrc.js +++ b/plugins/stack-overflow-backend/.eslintrc.js @@ -1,3 +1 @@ -module.exports = { - extends: [require.resolve('@backstage/cli/config/eslint.backend')], -}; +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/stack-overflow-backend/README.md b/plugins/stack-overflow-backend/README.md index e980f1f806..f2eaf660c2 100644 --- a/plugins/stack-overflow-backend/README.md +++ b/plugins/stack-overflow-backend/README.md @@ -32,7 +32,8 @@ When you have your `packages/backend/src/plugins/search.ts` file ready to make m ```ts indexBuilder.addCollator({ defaultRefreshIntervalSeconds: 600, - factory: StackOverflowQuestionsCollatorFactory.fromConfig(config, { + factory: StackOverflowQuestionsCollatorFactory.fromConfig(env.config, { + logger: env.logger, requestParams: { tagged: ['backstage'], site: 'stackoverflow', diff --git a/plugins/stack-overflow-backend/api-report.md b/plugins/stack-overflow-backend/api-report.md index 625581def8..fc4c610d3e 100644 --- a/plugins/stack-overflow-backend/api-report.md +++ b/plugins/stack-overflow-backend/api-report.md @@ -6,8 +6,8 @@ /// import { Config } from '@backstage/config'; -import { DocumentCollatorFactory } from '@backstage/search-common'; -import { IndexableDocument } from '@backstage/search-common'; +import { DocumentCollatorFactory } from '@backstage/plugin-search-common'; +import { IndexableDocument } from '@backstage/plugin-search-common'; import { Logger } from 'winston'; import { Readable } from 'stream'; diff --git a/plugins/stack-overflow-backend/config.d.ts b/plugins/stack-overflow-backend/config.d.ts new file mode 100644 index 0000000000..7e7211ca33 --- /dev/null +++ b/plugins/stack-overflow-backend/config.d.ts @@ -0,0 +1,28 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export interface Config { + /** + * Configuration options for the stack overflow plugin + */ + stackoverflow: { + /** + * The base url of the Stack Overflow API used for the plugin + * @visibility backend + */ + baseUrl: string; + }; +} diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index e97eb0dcce..bf8c000f44 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -33,13 +33,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/search-common": "^0.3.1", - "@backstage/config": "^0.1.15", - "qs": "^6.10.3", + "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/config": "^1.0.0", + "qs": "^6.9.4", "cross-fetch": "^3.1.5", - "winston": "^3.6.0" + "winston": "^3.2.1" }, "files": [ - "dist" + "dist", + "config" ] } diff --git a/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts b/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts index 89b63b09c5..98fc86c2ea 100644 --- a/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts +++ b/plugins/stack-overflow-backend/src/search/StackOverflowQuestionsCollatorFactory.ts @@ -17,7 +17,7 @@ import { IndexableDocument, DocumentCollatorFactory, -} from '@backstage/search-common'; +} from '@backstage/plugin-search-common'; import { Config } from '@backstage/config'; import { Readable } from 'stream'; import fetch from 'cross-fetch'; @@ -77,7 +77,9 @@ export class StackOverflowQuestionsCollatorFactory config: Config, options: StackOverflowQuestionsCollatorFactoryOptions, ) { - const baseUrl = config.getString('stackoverflow.baseUrl'); + const baseUrl = + config.getOptionalString('stackoverflow.baseUrl') || + 'https://api.stackexchange.com/2.2'; return new StackOverflowQuestionsCollatorFactory({ ...options, baseUrl }); } @@ -91,9 +93,11 @@ export class StackOverflowQuestionsCollatorFactory `No stackoverflow.baseUrl configured in your app-config.yaml`, ); } - const params = this.requestParams - ? `?${qs.stringify(this.requestParams, { arrayFormat: 'comma' })}` - : ''; + const params = qs.stringify(this.requestParams, { + arrayFormat: 'comma', + addQueryPrefix: true, + }); + const res = await fetch(`${this.baseUrl}/questions${params}`); const data = await res.json(); diff --git a/plugins/stack-overflow/.eslintrc.js b/plugins/stack-overflow/.eslintrc.js index 13573efa9c..e2a53a6ad2 100644 --- a/plugins/stack-overflow/.eslintrc.js +++ b/plugins/stack-overflow/.eslintrc.js @@ -1,3 +1 @@ -module.exports = { - extends: [require.resolve('@backstage/cli/config/eslint')], -}; +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/stack-overflow/README.md b/plugins/stack-overflow/README.md index 9925605a83..6beb843c7d 100644 --- a/plugins/stack-overflow/README.md +++ b/plugins/stack-overflow/README.md @@ -29,8 +29,8 @@ When you have your `packages/app/src/components/search/SearchPage.tsx` file read case 'stack-overflow': return ( ); ``` diff --git a/plugins/stack-overflow/config.d.ts b/plugins/stack-overflow/config.d.ts new file mode 100644 index 0000000000..811893231e --- /dev/null +++ b/plugins/stack-overflow/config.d.ts @@ -0,0 +1,28 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export interface Config { + /** + * Configuration options for the stack overflow plugin + */ + stackoverflow: { + /** + * The base url of the Stack Overflow API used for the plugin + * @visibility frontend + */ + baseUrl: string; + }; +} diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index b1eefd65a9..9c83ed4856 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -9,6 +9,9 @@ "main": "dist/index.esm.js", "types": "dist/index.d.ts" }, + "backstage": { + "role": "frontend-plugin" + }, "scripts": { "build": "backstage-cli package start", "start": "backstage-cli package build", @@ -20,16 +23,16 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.8.8", - "@backstage/plugin-home": "^0.4.15", - "@backstage/core-plugin-api": "^0.6.0", - "@backstage/search-common": "^0.2.2", - "@backstage/config": "^0.1.13", - "@backstage/theme": "^0.2.14", + "@backstage/core-components": "^0.9.3-next.0", + "@backstage/plugin-home": "^0.4.20-next.0", + "@backstage/core-plugin-api": "^1.0.0", + "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/config": "^1.0.0", + "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", - "qs": "^6.10.3", - "cross-fetch": "^3.0.6", + "qs": "^6.9.4", + "cross-fetch": "^3.1.5", "lodash": "^4.17.21", "react-use": "^17.2.4", "@testing-library/jest-dom": "^5.10.1" @@ -39,18 +42,18 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.15.2", - "@backstage/test-utils": "^0.3.0", + "@backstage/cli": "^0.16.1-next.0", + "@backstage/test-utils": "^1.0.1-next.0", "@testing-library/react": "^12.1.3", - "@backstage/core-app-api": "^0.5.2", - "@backstage/dev-utils": "^0.2.21-next.0", + "@backstage/core-app-api": "^1.0.1-next.0", + "@backstage/dev-utils": "^1.0.1-next.0", "@testing-library/user-event": "^13.1.8", - "@types/jest": "*", - "@types/node": "*", - "msw": "^0.35.0", - "cross-fetch": "^3.0.6" + "@types/jest": "^26.0.7", + "@types/node": "^14.14.32", + "msw": "^0.35.0" }, "files": [ - "dist" + "dist", + "config" ] } diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx index cf74de05f9..c347399474 100644 --- a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx +++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx @@ -41,12 +41,14 @@ import { export const Content = (props: StackOverflowQuestionsContentProps) => { const { requestParams } = props; const configApi = useApi(configApiRef); - const baseUrl = configApi.getOptionalString('stackoverflow.baseUrl'); + const baseUrl = + configApi.getOptionalString('stackoverflow.baseUrl') || + 'https://api.stackexchange.com/2.2'; const { value, loading, error } = useAsync(async (): Promise< StackOverflowQuestion[] > => { - const params = requestParams ? `?${qs.stringify(requestParams)}` : ''; + const params = qs.stringify(requestParams, { addQueryPrefix: true }); const response = await fetch(`${baseUrl}/questions${params}`); const data = await response.json(); return data.items; diff --git a/yarn.lock b/yarn.lock index bd1b3cc1b2..164e39e98d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -97,17 +97,10 @@ openapi-sampler "^1.1.0" use-resize-observer "^7.0.0" -<<<<<<< HEAD -"@asyncapi/specs@^2.11.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.12.0.tgz#15534ca9e518b561d33edfdfdbb234f9b274f261" - integrity sha512-X4Xkrl+9WXSk5EJhsueIxNx6ymHI5wpkw4ofetV+VRnPLNob/XO4trPSJClrL5hlknxbGADLvlrkI5d3XJ996g== -======= "@asyncapi/specs@^2.13.0": version "2.13.0" resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.13.0.tgz#c0f46d00e8a67c1c9ea445eb3e8bca90f7dca795" integrity sha512-X0OrxJtzwRH8iLILO/gUTDqjGVPmagmdlgdyuBggYAoGXzF6ZuAws3XCLxtPNve5eA/0V/1puwpUYEGekI22og== ->>>>>>> e5aaf7bb66 (bump dependencies) "@azure/abort-controller@^1.0.0": version "1.0.2" @@ -121,7 +114,7 @@ resolved "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz#dcccebb88406e5c76e0e1d52e8cc4c43a68b3ee7" integrity sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg== -"@azure/core-auth@^1.1.3", "@azure/core-auth@^1.3.0": +"@azure/core-auth@^1.3.0": version "1.3.2" resolved "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.3.2.tgz#6a2c248576c26df365f6c7881ca04b7f6d08e3d0" integrity sha512-7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA== @@ -142,36 +135,36 @@ "@azure/logger" "^1.0.0" tslib "^2.2.0" -"@azure/core-http@^1.2.0": - version "1.2.2" - resolved "https://registry.npmjs.org/@azure/core-http/-/core-http-1.2.2.tgz#a6f7717184fd2657d3acabd1d64dfdc0bd531ce3" - integrity sha512-9eu2OcbR7e44gqBy4U1Uv8NTWgLIMwKXMEGgO2MahsJy5rdTiAhs5fJHQffPq8uX2MFh21iBODwO9R/Xlov88A== +"@azure/core-http@^2.0.0": + version "2.2.4" + resolved "https://registry.npmjs.org/@azure/core-http/-/core-http-2.2.4.tgz#df5a5b4138dbbc4299879f2fc6f257d0a5f0401e" + integrity sha512-QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-auth" "^1.1.3" - "@azure/core-tracing" "1.0.0-preview.9" + "@azure/core-asynciterator-polyfill" "^1.0.0" + "@azure/core-auth" "^1.3.0" + "@azure/core-tracing" "1.0.0-preview.13" "@azure/logger" "^1.0.0" - "@opentelemetry/api" "^0.10.2" "@types/node-fetch" "^2.5.0" - "@types/tunnel" "^0.0.1" - form-data "^3.0.0" - node-fetch "^2.6.0" + "@types/tunnel" "^0.0.3" + form-data "^4.0.0" + node-fetch "^2.6.7" process "^0.11.10" tough-cookie "^4.0.0" - tslib "^2.0.0" + tslib "^2.2.0" tunnel "^0.0.6" uuid "^8.3.0" xml2js "^0.4.19" -"@azure/core-lro@^1.0.2": - version "1.0.3" - resolved "https://registry.npmjs.org/@azure/core-lro/-/core-lro-1.0.3.tgz#1ddfb4ecdb81ce87b5f5d972ffe2acbbc46e524e" - integrity sha512-Py2crJ84qx1rXkzIwfKw5Ni4WJuzVU7KAF6i1yP3ce8fbynUeu8eEWS4JGtSQgU7xv02G55iPDROifmSDbxeHA== +"@azure/core-lro@^2.2.0": + version "2.2.4" + resolved "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.4.tgz#42fbf4ae98093c59005206a4437ddcd057c57ca1" + integrity sha512-e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-http" "^1.2.0" - events "^3.0.0" - tslib "^2.0.0" + "@azure/core-tracing" "1.0.0-preview.13" + "@azure/logger" "^1.0.0" + tslib "^2.2.0" "@azure/core-paging@^1.1.1": version "1.1.3" @@ -195,15 +188,6 @@ tslib "^2.2.0" uuid "^8.3.0" -"@azure/core-tracing@1.0.0-preview.10": - version "1.0.0-preview.10" - resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.10.tgz#e7060272145dddad4486765030d1b037cd52a8ea" - integrity sha512-iIwjtMwQnsxB7cYkugMx+s4W1nfy3+pT/ceo+uW1fv4YDgYe84nh+QP0fEC9IH/3UATLSWbIBemdMHzk2APUrw== - dependencies: - "@opencensus/web-types" "0.0.7" - "@opentelemetry/api" "^0.10.2" - tslib "^2.0.0" - "@azure/core-tracing@1.0.0-preview.13": version "1.0.0-preview.13" resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz#55883d40ae2042f6f1e12b17dd0c0d34c536d644" @@ -212,15 +196,6 @@ "@opentelemetry/api" "^1.0.1" tslib "^2.2.0" -"@azure/core-tracing@1.0.0-preview.9": - version "1.0.0-preview.9" - resolved "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.9.tgz#84f3b85572013f9d9b85e1e5d89787aa180787eb" - integrity sha512-zczolCLJ5QG42AEPQ+Qg9SRYNUyB+yZ5dzof4YEc+dyWczO9G2sBqbAjLB7IqrsdHN2apkiB2oXeDKCsq48jug== - dependencies: - "@opencensus/web-types" "0.0.7" - "@opentelemetry/api" "^0.10.2" - tslib "^2.0.0" - "@azure/core-util@^1.0.0-beta.1": version "1.0.0-beta.1" resolved "https://registry.npmjs.org/@azure/core-util/-/core-util-1.0.0-beta.1.tgz#2efd2c74b4b0a38180369f50fe274a3c4cd36e98" @@ -229,9 +204,9 @@ tslib "^2.0.0" "@azure/identity@^2.0.1": - version "2.0.3" - resolved "https://registry.npmjs.org/@azure/identity/-/identity-2.0.3.tgz#286e7b145b29bee009ef10f3c2900122dcc1c947" - integrity sha512-MFW2QS5dWm2U8MDTSm0sHo7pcAQtQtJhKVVcN5wA2ownHzmHluXTGFK4WdFiXzUInhZtqYA5CH+OGHTGs6DTBA== + version "2.0.4" + resolved "https://registry.npmjs.org/@azure/identity/-/identity-2.0.4.tgz#f5cfde0daf1b9ebaaff3ed6c504f50d7d7c939a5" + integrity sha512-ZgFubAsmo7dji63NLPaot6O7pmDfceAUPY57uphSCr0hmRj+Cakqb4SUz5SohCHFtscrhcmejRU903Fowz6iXg== dependencies: "@azure/abort-controller" "^1.0.0" "@azure/core-auth" "^1.3.0" @@ -278,30 +253,37 @@ dependencies: debug "^4.1.1" -"@azure/msal-node@^1.1.0", "@azure/msal-node@^1.3.0": - version "1.4.0" - resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.4.0.tgz#660685804fbdc533b10cc699f16323e27ec582c6" - integrity sha512-Ek6hqOFUi5QEAxZ55awM8y1N+9SzS9Qh8ijF4RDLtFuHzqP7xXmMnVC1lae45FlH55DUOo7dg/smuDJnb4kw6g== +"@azure/msal-common@^6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-6.1.0.tgz#00b0c625d10f4c8e48e7b48a353f7d8d20a5ceca" + integrity sha512-IGjAHttOgKDPQr0Qxx1NjABR635ZNuN7LHjxI0Y7SEA2thcaRGTccy+oaXTFabM/rZLt4F2VrPKUX4BnR9hW9g== dependencies: - "@azure/msal-common" "^5.2.0" + debug "^4.1.1" + +"@azure/msal-node@^1.1.0", "@azure/msal-node@^1.3.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.7.0.tgz#9026971b1fd953f15bfddde9c43e180356a80d77" + integrity sha512-qDkW+Z4b0SGkkYrM1x+0s5WJ3z96vgiNZ20iwpmtCUHVfSrDiGFB8s8REKVaz7JZJi2L1s0vQRbUahly8EoGnw== + dependencies: + "@azure/msal-common" "^6.1.0" axios "^0.21.4" + https-proxy-agent "^5.0.0" jsonwebtoken "^8.5.1" uuid "^8.3.0" "@azure/storage-blob@^12.5.0": - version "12.5.0" - resolved "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.5.0.tgz#1ddd8837d9a15ebe355e795375d13b406f2cb496" - integrity sha512-DgoefgODst2IPkkQsNdhtYdyJgSsAZC1pEujO6aD5y7uFy5GnzhYliobSrp204jYRyK5XeJ9iiePmy/SPtTbLA== + version "12.9.0" + resolved "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.9.0.tgz#4cbd8b4c7a47dd064867430db892f4ef2d8f17ab" + integrity sha512-ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg== dependencies: "@azure/abort-controller" "^1.0.0" - "@azure/core-http" "^1.2.0" - "@azure/core-lro" "^1.0.2" + "@azure/core-http" "^2.0.0" + "@azure/core-lro" "^2.2.0" "@azure/core-paging" "^1.1.1" - "@azure/core-tracing" "1.0.0-preview.10" + "@azure/core-tracing" "1.0.0-preview.13" "@azure/logger" "^1.0.0" - "@opentelemetry/api" "^0.10.2" events "^3.0.0" - tslib "^2.0.0" + tslib "^2.2.0" "@babel/code-frame@7.0.0": version "7.0.0" @@ -321,7 +303,6 @@ version "7.16.8" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== -<<<<<<< HEAD "@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": version "7.16.12" @@ -344,50 +325,10 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.12.3": - version "7.17.5" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" - integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== -======= - -"@babel/core@^7.1.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.15.5", "@babel/core@^7.7.5": - version "7.16.12" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784" - integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg== ->>>>>>> e5aaf7bb66 (bump dependencies) - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.12" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.10" - "@babel/types" "^7.16.8" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - "@babel/generator@^7.14.0", "@babel/generator@^7.16.0", "@babel/generator@^7.16.8": version "7.16.8" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== -<<<<<<< HEAD - dependencies: - "@babel/types" "^7.16.8" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.17.3": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" - integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/types" "^7.16.8" jsesc "^2.5.1" @@ -595,18 +536,6 @@ version "7.16.7" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== -<<<<<<< HEAD - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helpers@^7.17.2": - version "7.17.2" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" - integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/template" "^7.16.7" "@babel/traverse" "^7.16.7" @@ -630,14 +559,6 @@ version "7.16.12" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== -<<<<<<< HEAD - -"@babel/parser@^7.17.3": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" - integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -1109,11 +1030,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -<<<<<<< HEAD -"@babel/plugin-transform-react-constant-elements@^7.12.1", "@babel/plugin-transform-react-constant-elements@^7.14.5": -======= "@babel/plugin-transform-react-constant-elements@^7.14.5": ->>>>>>> e5aaf7bb66 (bump dependencies) version "7.16.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz#19e9e4c2df2f6c3e6b3aea11778297d81db8df62" integrity sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ== @@ -1227,7 +1144,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.15.6": +"@babel/preset-env@^7.15.6": version "7.16.11" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== @@ -1327,7 +1244,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.14.5": +"@babel/preset-react@^7.14.5": version "7.16.7" resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== @@ -1359,37 +1276,15 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.11.2", "@babel/runtime-corejs3@^7.16.3": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz#ea533d96eda6fdc76b1812248e9fbd0c11d4a1a7" - integrity sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg== +"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.11.2", "@babel/runtime-corejs3@^7.16.8": + version "7.17.2" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13" + integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg== dependencies: core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" -<<<<<<< HEAD -<<<<<<< HEAD -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": -======= -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" - integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.7.2": ->>>>>>> 76d216e74b (fixups) -======= -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": ->>>>>>> e5aaf7bb66 (bump dependencies) - version "7.17.2" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" - integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.17.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.17.7" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.7.tgz#a5f3328dc41ff39d803f311cfe17703418cf9825" integrity sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA== @@ -1424,25 +1319,6 @@ version "7.16.10" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== -<<<<<<< HEAD - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.10" - "@babel/types" "^7.16.8" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3": - version "7.17.3" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" - integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/code-frame" "^7.16.7" "@babel/generator" "^7.16.8" @@ -1467,45 +1343,10 @@ version "7.16.8" resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== -<<<<<<< HEAD dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" -"@babel/types@^7.12.6", "@babel/types@^7.17.0": - version "7.17.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -<<<<<<< HEAD -"@backstage/app-defaults@^0.2.1": - version "0.2.1" - resolved "https://registry.npmjs.org/@backstage/app-defaults/-/app-defaults-0.2.1.tgz#8a99245cef0bfd4cc1a864d80eee76eec2ed944e" - integrity sha512-4KjcvUqnUADCTIcRrc87VcwgtZmfAqusvhSIleo8jEXQ+kIddoah/1P6ttsWiECaFvnvJ9ERhprsvJIK119zkw== - dependencies: - "@backstage/core-app-api" "^0.6.0" - "@backstage/core-components" "^0.9.1" - "@backstage/core-plugin-api" "^0.8.0" - "@backstage/plugin-permission-react" "^0.3.3" - "@backstage/theme" "^0.2.15" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - react-router-dom "6.0.0-beta.0" - -"@backstage/catalog-client@^0.9.0": - version "0.9.0" - resolved "https://registry.npmjs.org/@backstage/catalog-client/-/catalog-client-0.9.0.tgz#3e1024fab13fd8e2000d33833d2463ea9be5df9d" - integrity sha512-mr2wrb+7uAPczOOYt07C4AbXIeX0mu+Iw6RPDNg67GvPvQVcbKCrjth9VEj8rScFGmJAn66ZcronbcZSS0MJww== - dependencies: - "@backstage/catalog-model" "^0.13.0" - "@backstage/errors" "^0.2.2" - cross-fetch "^3.1.5" - "@backstage/catalog-client@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/catalog-client/-/catalog-client-1.0.0.tgz#05f9ee3b771ca17e4800f5116d63bd183fe0c4d6" @@ -1515,36 +1356,6 @@ "@backstage/errors" "^1.0.0" cross-fetch "^3.1.5" -"@backstage/catalog-model@^0.13.0": - version "0.13.0" - resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.13.0.tgz#abeb91522ac7ef7907907ad5bc889803131db209" - integrity sha512-Q+0C0LJ8niNQ4TXduUNTycZ2PLMbhKmfgWywunJLO34DZAoFnTWJEAdEYF536YyLciHhLO0dHRUaHY29Sdr+Xg== -======= -"@backstage/catalog-client@^0.7.0": - version "0.7.2" - resolved "https://registry.npmjs.org/@backstage/catalog-client/-/catalog-client-0.7.2.tgz#bcfdb2c210e878fbc5833f18e59feae1e7e48330" - integrity sha512-jeJfi4ekwIffi8ozSzvgdv94DZ2kKNwFVhAP0V+63GF6wIspvGuTIwU2uKYH0v9JXA08lwmAsOGnrrwgS6ragA== - dependencies: - "@backstage/catalog-model" "^0.11.0" - "@backstage/errors" "^0.2.2" - cross-fetch "^3.1.5" - -"@backstage/catalog-model@^0.10.0": - version "0.10.1" - resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.10.1.tgz#dcc3415eb4d4ee3d437355c477e85c7479626b3b" - integrity sha512-c004aQeO9cxtSZZc2iBcE6eoqurQLdj7YUm8mHWs8hEaPTA2UPVHawt+wlt89VywkI89X0wF7BuXV2LKVUfXvw== ->>>>>>> e5aaf7bb66 (bump dependencies) - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/errors" "^0.2.2" - "@backstage/types" "^0.1.3" - "@types/json-schema" "^7.0.5" - ajv "^7.0.3" - json-schema "^0.4.0" - lodash "^4.17.21" - uuid "^8.0.0" - -<<<<<<< HEAD "@backstage/catalog-model@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-1.0.0.tgz#0aa8694a3182aaf4232725842da751bf5f78bd68" @@ -1558,122 +1369,7 @@ lodash "^4.17.21" uuid "^8.0.0" -"@backstage/cli@^0.13.2-next.0": - version "0.13.2" - resolved "https://registry.npmjs.org/@backstage/cli/-/cli-0.13.2.tgz#1ef427e847116822f9c3964aa2803a1abc419c91" - integrity sha512-GI1v5kkpfqu5X+aNcXLY5lX3BtiIBk0Tm+jyWSitOzFa/rw6QnFPieAw8F72jC92OTV08FVKEaJIt/Qg3eUNkA== - dependencies: - "@backstage/cli-common" "^0.1.6" - "@backstage/config" "^0.1.13" - "@backstage/config-loader" "^0.9.3" - "@backstage/errors" "^0.2.0" - "@backstage/release-manifests" "^0.0.1" - "@backstage/types" "^0.1.1" - "@hot-loader/react-dom" "^16.13.0" - "@manypkg/get-packages" "^1.1.3" - "@octokit/request" "^5.4.12" - "@rollup/plugin-commonjs" "^21.0.1" - "@rollup/plugin-json" "^4.1.0" - "@rollup/plugin-node-resolve" "^13.0.0" - "@rollup/plugin-yaml" "^3.1.0" - "@spotify/eslint-config-base" "^12.0.0" - "@spotify/eslint-config-react" "^12.0.0" - "@spotify/eslint-config-typescript" "^12.0.0" - "@sucrase/jest-plugin" "^2.1.1" - "@sucrase/webpack-loader" "^2.0.0" - "@svgr/plugin-jsx" "6.2.x" - "@svgr/plugin-svgo" "6.2.x" - "@svgr/rollup" "5.5.x" - "@svgr/webpack" "5.5.x" - "@types/webpack-env" "^1.15.2" - "@typescript-eslint/eslint-plugin" "^5.9.0" - "@typescript-eslint/parser" "^5.9.0" - "@yarnpkg/lockfile" "^1.1.0" - bfj "^7.0.2" - buffer "^6.0.3" - chalk "^4.0.0" - chokidar "^3.3.1" - commander "^6.1.0" - css-loader "^6.5.1" - diff "^5.0.0" - esbuild "^0.14.10" - esbuild-loader "^2.18.0" - eslint "^8.6.0" - eslint-config-prettier "^8.3.0" - eslint-formatter-friendly "^7.0.0" - eslint-plugin-import "^2.25.4" - eslint-plugin-jest "^25.3.4" - eslint-plugin-jsx-a11y "^6.5.1" - eslint-plugin-monorepo "^0.3.2" - eslint-plugin-react "^7.28.0" - eslint-plugin-react-hooks "^4.3.0" - eslint-webpack-plugin "^2.6.0" - express "^4.17.1" - fork-ts-checker-webpack-plugin "^7.0.0-alpha.8" - fs-extra "9.1.0" - glob "^7.1.7" - handlebars "^4.7.3" - html-webpack-plugin "^5.3.1" - inquirer "^8.2.0" - jest "^26.0.1" - jest-css-modules "^2.1.0" - jest-transform-yaml "^1.0.0" - json-schema "^0.4.0" - lodash "^4.17.21" - mini-css-extract-plugin "^2.4.2" - minimatch "3.0.4" - node-libs-browser "^2.2.1" - npm-packlist "^3.0.0" - ora "^5.3.0" - postcss "^8.1.0" - process "^0.11.10" - react-dev-utils "^12.0.0-next.60" - react-hot-loader "^4.13.0" - recursive-readdir "^2.2.2" - replace-in-file "^6.0.0" - rollup "^2.60.2" - rollup-plugin-dts "^4.0.1" - rollup-plugin-esbuild "^4.7.2" - rollup-plugin-peer-deps-external "^2.2.2" - rollup-plugin-postcss "^4.0.0" - rollup-pluginutils "^2.8.2" - run-script-webpack-plugin "^0.0.11" - semver "^7.3.2" - style-loader "^3.3.1" - sucrase "^3.20.2" - tar "^6.1.2" - terser-webpack-plugin "^5.1.3" - util "^0.12.3" - webpack "^5.66.0" - webpack-dev-server "^4.7.3" - webpack-node-externals "^3.0.0" - yaml "^1.10.0" - yml-loader "^2.1.0" - yn "^4.0.0" - zod "^3.11.6" - -"@backstage/config-loader@^0.9.3": - version "0.9.7" - resolved "https://registry.npmjs.org/@backstage/config-loader/-/config-loader-0.9.7.tgz#b056f592b8ec1b21007eb9193ec595a9da3fb1b9" - integrity sha512-dt+z5MSRG4qGYPsmlxZioEpXpf4/6R6wD7NJodcV5JbXd109sPALwwxMG4KLDuBvhJnKlJmOK1ZhQGe/11jHjA== - dependencies: - "@backstage/cli-common" "^0.1.8" - "@backstage/config" "^0.1.15" - "@backstage/errors" "^0.2.2" - "@backstage/types" "^0.1.3" - "@types/json-schema" "^7.0.6" - ajv "^7.0.3" - chokidar "^3.5.2" - fs-extra "10.0.1" - json-schema "^0.4.0" - json-schema-merge-allof "^0.8.1" - json-schema-traverse "^1.0.0" - node-fetch "^2.6.7" - typescript-json-schema "^0.52.0" - yaml "^1.9.2" - yup "^0.32.9" - -"@backstage/config@^0.1.13", "@backstage/config@^0.1.14", "@backstage/config@^0.1.15": +"@backstage/config@^0.1.15": version "0.1.15" resolved "https://registry.npmjs.org/@backstage/config/-/config-0.1.15.tgz#4bad122ad861be5bd61a60639f92d2494fa245c5" integrity sha512-eNJEYYSEu9MkrkBYiMpUBWEc3Bu64YgB9pZZGCMW7/9350tV2wbylEdoBJHslilJlJhiUyTXBckn8Ua7DOH7rw== @@ -1681,218 +1377,11 @@ "@backstage/types" "^0.1.3" lodash "^4.17.21" -"@backstage/core-app-api@^0.5.2", "@backstage/core-app-api@^0.5.4": - version "0.5.4" - resolved "https://registry.npmjs.org/@backstage/core-app-api/-/core-app-api-0.5.4.tgz#9ee39828fdcba64a4eea20e9fe3da58c56c053d5" - integrity sha512-qH9XQpY8M3yMKUvu+pcAxOUwrazGaA3L1bbzRzCALjmjmve37k9AY3Wd89toGAzqOqwn6OhBfUg+y3kqj44fOw== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/core-plugin-api" "^0.7.0" - "@backstage/types" "^0.1.3" - "@backstage/version-bridge" "^0.1.2" - "@types/prop-types" "^15.7.3" - prop-types "^15.7.2" - react-router-dom "6.0.0-beta.0" - react-use "^17.2.4" - zen-observable "^0.8.15" - zod "^3.11.6" - -"@backstage/core-app-api@^0.6.0": - version "0.6.0" - resolved "https://registry.npmjs.org/@backstage/core-app-api/-/core-app-api-0.6.0.tgz#691f0586d97682f1af67828ab2c67014397a530a" - integrity sha512-v1t1w/U/JHjm9eZupPmJpKH5WB0vysEFxRo6/Ia77VP6ZcPxszG4IG+d+S3Km5fM3lu4oosGiz+RaKUTLrttBA== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/core-plugin-api" "^0.8.0" - "@backstage/types" "^0.1.3" - "@backstage/version-bridge" "^0.1.2" - "@types/prop-types" "^15.7.3" - prop-types "^15.7.2" - react-router-dom "6.0.0-beta.0" - react-use "^17.2.4" - zen-observable "^0.8.15" - zod "^3.11.6" - -"@backstage/core-components@^0.8.8": - version "0.8.10" - resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.8.10.tgz#6f79c46cdf507fc3a0d764848a4a8aa73af7ce93" - integrity sha512-gGyCPPSdgvzYHWMKlxe/H4yFmEYDQuAtaoT7Y/3+pilcJSIQi9d3oV104BDLC94bdkyOWDsA1tT+PGZtd0p/8g== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/core-plugin-api" "^0.7.0" - "@backstage/errors" "^0.2.2" - "@backstage/theme" "^0.2.15" - "@material-table/core" "^3.1.0" -======= -"@backstage/catalog-model@^0.11.0": - version "0.11.0" - resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.11.0.tgz#f02f86fe74305b49fce300e9c221659f9092d1b7" - integrity sha512-DnmbzKZejvxBSQv1LjA3AZIxwmchir2A9L9MzWH9D+pVKIu4AEt2HItf6g+xhpgk+4GJppETsEgrLI+Iyr6QSA== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/errors" "^0.2.2" - "@backstage/types" "^0.1.3" - "@types/json-schema" "^7.0.5" - ajv "^7.0.3" - json-schema "^0.4.0" - lodash "^4.17.21" - uuid "^8.0.0" - -"@backstage/catalog-model@^0.9.7": - version "0.9.10" - resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.9.10.tgz#bd5662e1ad7bd7c9604f3f45d055c99b5b2bb87f" - integrity sha512-KhCjbZKhS5zZhHiGHmBMq6hDGDshMSZOPGXehtdhr6/oW7Ee5fDcOnhMqreCi1Ebm4RIWJhZcRrxO6X1TTi4TQ== - dependencies: - "@backstage/config" "^0.1.13" - "@backstage/errors" "^0.2.0" - "@backstage/types" "^0.1.1" - "@types/json-schema" "^7.0.5" - "@types/yup" "^0.29.13" - ajv "^7.0.3" - json-schema "^0.4.0" - lodash "^4.17.21" - uuid "^8.0.0" - yup "^0.32.9" - -"@backstage/core-components@^0.8.0", "@backstage/core-components@^0.8.9": - version "0.8.10" - resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.8.10.tgz#6f79c46cdf507fc3a0d764848a4a8aa73af7ce93" - integrity sha512-gGyCPPSdgvzYHWMKlxe/H4yFmEYDQuAtaoT7Y/3+pilcJSIQi9d3oV104BDLC94bdkyOWDsA1tT+PGZtd0p/8g== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/core-plugin-api" "^0.7.0" - "@backstage/errors" "^0.2.2" - "@backstage/theme" "^0.2.15" - "@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.57" - "@react-hookz/web" "^12.3.0" - "@types/react-sparklines" "^1.7.0" - "@types/react-text-truncate" "^0.14.0" - ansi-regex "^6.0.1" - classnames "^2.2.6" - d3-selection "^3.0.0" - d3-shape "^3.0.0" - d3-zoom "^3.0.0" - dagre "^0.8.5" - history "^5.0.0" - immer "^9.0.1" - lodash "^4.17.21" - pluralize "^8.0.0" - prop-types "^15.7.2" - qs "^6.9.4" - rc-progress "3.2.4" - react-helmet "6.1.0" - react-hook-form "^7.12.2" - react-markdown "^8.0.0" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - react-sparklines "^1.7.0" - react-syntax-highlighter "^15.4.5" - react-text-truncate "^0.17.0" - react-use "^17.3.2" - react-virtualized-auto-sizer "^1.0.6" - react-window "^1.8.6" - remark-gfm "^3.0.1" - zen-observable "^0.8.15" - zod "^3.11.6" - -"@backstage/core-plugin-api@^0.6.0", "@backstage/core-plugin-api@^0.6.1": - version "0.6.1" - resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.6.1.tgz#a6fb8110f384ab9405990450956b2c81b88e90b2" - integrity sha512-DtHY0eG2OQ4QAHVb5y8yDUQXZW9Ot7Fsr4Rpe3BbiLpkXA5hZLXPMThOyz1Y79ZOEC5eiyhUlXL1g6P7ylOKMw== - dependencies: - "@backstage/config" "^0.1.14" - "@backstage/types" "^0.1.2" - "@backstage/version-bridge" "^0.1.2" - history "^5.0.0" - prop-types "^15.7.2" - react-router-dom "6.0.0-beta.0" - zen-observable "^0.8.15" - -"@backstage/core-plugin-api@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.7.0.tgz#e53f3aa5bbf074a70fcaf264b04402637008659c" - integrity sha512-SVzrJjvEjWzJgIqfFUjQjqW0RGCzj6zgLULpSgP53GQat70I0wje6E4n0blNU+/q7hpt6PoIT0lgZtqFOJrfYQ== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/types" "^0.1.3" - "@backstage/version-bridge" "^0.1.2" - history "^5.0.0" - prop-types "^15.7.2" - react-router-dom "6.0.0-beta.0" - zen-observable "^0.8.15" - -"@backstage/integration@^0.7.3": - version "0.7.5" - resolved "https://registry.npmjs.org/@backstage/integration/-/integration-0.7.5.tgz#c68848f35db51705b3287b6fa6a259ae4b17bfbc" - integrity sha512-KUoNQLfPaRqQsdfx04IX4d3EIHbJU3tJxoUjVCCDIAThtep6clhY4uoxXIYTUz+bhERUGGJYhMR+1ryEEtwWhw== - dependencies: - "@backstage/config" "^0.1.15" - "@octokit/auth-app" "^3.4.0" - "@octokit/rest" "^18.5.3" - cross-fetch "^3.1.5" - git-url-parse "^11.6.0" - lodash "^4.17.21" - luxon "^2.0.2" - -"@backstage/plugin-catalog-react@^0.6.5": - version "0.6.15" - resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-0.6.15.tgz#04de88caa4ac2ce2ad000ee34d28b11eda3910b9" - integrity sha512-8JDM0upFD/WpB6Qs8oIQf99E2yaqbf835IEgt6aY7l4lEzUrtW4007VXPMdDqOwVwhVM4PbTIvyIRzkQpcr89A== - dependencies: - "@backstage/catalog-client" "^0.7.0" - "@backstage/catalog-model" "^0.10.0" - "@backstage/core-components" "^0.8.9" - "@backstage/core-plugin-api" "^0.6.1" - "@backstage/errors" "^0.2.1" - "@backstage/integration" "^0.7.3" - "@backstage/plugin-permission-common" "^0.5.0" - "@backstage/plugin-permission-react" "^0.3.1" - "@backstage/types" "^0.1.2" - "@backstage/version-bridge" "^0.1.2" ->>>>>>> e5aaf7bb66 (bump dependencies) - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.57" - "@react-hookz/web" "^12.3.0" - "@types/react-sparklines" "^1.7.0" - "@types/react-text-truncate" "^0.14.0" - ansi-regex "^6.0.1" - classnames "^2.2.6" - d3-selection "^3.0.0" - d3-shape "^3.0.0" - d3-zoom "^3.0.0" - dagre "^0.8.5" - history "^5.0.0" - immer "^9.0.1" - lodash "^4.17.21" - pluralize "^8.0.0" - prop-types "^15.7.2" - qs "^6.9.4" - rc-progress "3.2.4" - react-helmet "6.1.0" - react-hook-form "^7.12.2" - react-markdown "^8.0.0" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - react-sparklines "^1.7.0" - react-syntax-highlighter "^15.4.5" - react-text-truncate "^0.17.0" - react-use "^17.3.2" - react-virtualized-auto-sizer "^1.0.6" - react-window "^1.8.6" - remark-gfm "^3.0.1" - zen-observable "^0.8.15" - zod "^3.11.6" - -"@backstage/core-components@^0.9.0", "@backstage/core-components@^0.9.1", "@backstage/core-components@^0.9.2": +"@backstage/core-components@^0.9.0", "@backstage/core-components@^0.9.2": version "0.9.2" resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.9.2.tgz#9a3d79a15039256bbc007e5daa08c983050e0238" integrity sha512-kh0FB0FmjC55W+xSEkKrAc7D6hvbYLY7N1UUd6M4VBghYXD61Y8RrJFKmBM3bAfPgYaryQNjYgA0BsoTo53PJA== dependencies: -<<<<<<< HEAD "@backstage/config" "^1.0.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/errors" "^1.0.0" @@ -1932,94 +1421,6 @@ zen-observable "^0.8.15" zod "^3.11.6" -"@backstage/core-plugin-api@^0.6.0": - version "0.6.1" - resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.6.1.tgz#a6fb8110f384ab9405990450956b2c81b88e90b2" - integrity sha512-DtHY0eG2OQ4QAHVb5y8yDUQXZW9Ot7Fsr4Rpe3BbiLpkXA5hZLXPMThOyz1Y79ZOEC5eiyhUlXL1g6P7ylOKMw== - dependencies: - "@backstage/config" "^0.1.14" - "@backstage/types" "^0.1.2" - "@backstage/version-bridge" "^0.1.2" - history "^5.0.0" - prop-types "^15.7.2" - react-router-dom "6.0.0-beta.0" - zen-observable "^0.8.15" - -"@backstage/core-plugin-api@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.7.0.tgz#e53f3aa5bbf074a70fcaf264b04402637008659c" - integrity sha512-SVzrJjvEjWzJgIqfFUjQjqW0RGCzj6zgLULpSgP53GQat70I0wje6E4n0blNU+/q7hpt6PoIT0lgZtqFOJrfYQ== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/types" "^0.1.3" - "@backstage/version-bridge" "^0.1.2" - history "^5.0.0" - prop-types "^15.7.2" - react-router-dom "6.0.0-beta.0" - zen-observable "^0.8.15" - -"@backstage/core-plugin-api@^0.8.0": - version "0.8.0" - resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.8.0.tgz#e2096bff679183168a7f9b47ed27c50a01970e32" - integrity sha512-hHTrh0lui7TAUnLdqyvNznBuoh3PNEwHnlWCcnp2wfvLc7syG5bjnzorATknCixIiWsPfod5qtSSNeO4hQoFVQ== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/types" "^0.1.3" - "@backstage/version-bridge" "^0.1.2" - history "^5.0.0" - prop-types "^15.7.2" - react-router-dom "6.0.0-beta.0" - zen-observable "^0.8.15" - -"@backstage/dev-utils@^0.2.21-next.0": - version "0.2.25" - resolved "https://registry.npmjs.org/@backstage/dev-utils/-/dev-utils-0.2.25.tgz#c841fc845dcb01e22b55ac93d12ab057cc48bd2e" - integrity sha512-MbatjRFaA5SIILSXBt+oq3S90dgGr9VZHKIqEX5voWK25dyGgUMxeb8M9rlJmaOQIdeUnHLl64Zqnt1dkukl0A== - dependencies: - "@backstage/app-defaults" "^0.2.1" - "@backstage/catalog-model" "^0.13.0" - "@backstage/core-app-api" "^0.6.0" - "@backstage/core-components" "^0.9.1" - "@backstage/core-plugin-api" "^0.8.0" - "@backstage/integration-react" "^0.1.25" - "@backstage/plugin-catalog-react" "^0.9.0" - "@backstage/test-utils" "^0.3.0" - "@backstage/theme" "^0.2.15" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@testing-library/jest-dom" "^5.10.1" - "@testing-library/react" "^11.2.5" - "@testing-library/user-event" "^13.1.8" - react-hot-loader "^4.13.0" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - react-use "^17.2.4" - zen-observable "^0.8.15" - -"@backstage/errors@^0.2.0", "@backstage/errors@^0.2.2": - version "0.2.2" - resolved "https://registry.npmjs.org/@backstage/errors/-/errors-0.2.2.tgz#2113e0bc859e645b8b59bfcb435f7535739b02f8" - integrity sha512-s6Ru3NL4oFiHwNsMY1uiwqNKuOu9KQWkpse3adWZsDu1fCQKOw2omQ2qBHZ4Uj1xJ6x9Ye0yNTJ4vfHfdwiaEg== - dependencies: - "@backstage/types" "^0.1.3" - cross-fetch "^3.1.5" - serialize-error "^8.0.1" - -"@backstage/integration-react@^0.1.25": - version "0.1.25" - resolved "https://registry.npmjs.org/@backstage/integration-react/-/integration-react-0.1.25.tgz#ebbdd30d66e1d210b7cd33a682ad2be0d5ea5fc0" - integrity sha512-WI0UuXcX3m1OotfvqCVtQgyish9Gk+YkLVyrwWbzHFZ0isbT2I2i6VD/iau1X55oZpaubxLZ5CzYzA4QcAdm4w== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/core-components" "^0.9.1" - "@backstage/core-plugin-api" "^0.8.0" - "@backstage/integration" "^0.8.0" - "@backstage/theme" "^0.2.15" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.57" - react-use "^17.2.4" - "@backstage/integration-react@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/integration-react/-/integration-react-1.0.0.tgz#8075e65c6b5387631d27a9c242e7a4fff6f92417" @@ -2035,19 +1436,6 @@ "@material-ui/lab" "4.0.0-alpha.57" react-use "^17.2.4" -"@backstage/integration@^0.8.0": - version "0.8.0" - resolved "https://registry.npmjs.org/@backstage/integration/-/integration-0.8.0.tgz#d74131ad347272b4935973aa4bd098fad9548ce6" - integrity sha512-GfNJRdcU7NMFjVqUSJOFRRrqEjKRGmgsL+s3TDtqmqqji7XPttTKD43+Ou50hRf0dkIETe5m1XHr1Fd5ksMt9A== - dependencies: - "@backstage/config" "^0.1.15" - "@octokit/auth-app" "^3.4.0" - "@octokit/rest" "^18.5.3" - cross-fetch "^3.1.5" - git-url-parse "^11.6.0" - lodash "^4.17.21" - luxon "^2.0.2" - "@backstage/integration@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/integration/-/integration-1.0.0.tgz#e307cfddea014bfb0eb2281a5ae25ea0b742e9cf" @@ -2061,33 +1449,6 @@ lodash "^4.17.21" luxon "^2.0.2" -"@backstage/plugin-catalog-react@^0.9.0": - version "0.9.0" - resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-0.9.0.tgz#ff8c09ec455655fadb2c2fafd578908138b858bc" - integrity sha512-qSiz/q7B/IlkHkx3Tcrbokm+jIOPMGjSzxdnKWv5c6KcqF+XLiVr6TavLWcAjaxk81skF8N3RCDG68tA1lL0HA== - dependencies: - "@backstage/catalog-client" "^0.9.0" - "@backstage/catalog-model" "^0.13.0" - "@backstage/core-components" "^0.9.1" - "@backstage/core-plugin-api" "^0.8.0" - "@backstage/errors" "^0.2.2" - "@backstage/integration" "^0.8.0" - "@backstage/plugin-permission-common" "^0.5.2" - "@backstage/plugin-permission-react" "^0.3.3" - "@backstage/types" "^0.1.3" - "@backstage/version-bridge" "^0.1.2" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.57" - classnames "^2.2.6" - jwt-decode "^3.1.0" - lodash "^4.17.21" - qs "^6.9.4" - react-router "6.0.0-beta.0" - react-use "^17.2.4" - yaml "^1.10.0" - zen-observable "^0.8.15" - "@backstage/plugin-catalog-react@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.0.0.tgz#4f42c070ffe5c9690e45a5288e18bacd8d4e0e66" @@ -2116,124 +1477,11 @@ yaml "^1.10.0" zen-observable "^0.8.15" -"@backstage/plugin-home@^0.4.15": - version "0.4.19" - resolved "https://registry.npmjs.org/@backstage/plugin-home/-/plugin-home-0.4.19.tgz#a68a594557db8afdc76c2b08de7457d65258d597" - integrity sha512-yDu+m2zWGMqUaXZwuZWQdE8/ENdLdcobvt8q1lP/+eUXG1yO3BuBcqlss+cPkdO0d0LeW1WoJZZ20ZpYLUJ+6w== - dependencies: - "@backstage/catalog-model" "^1.0.0" - "@backstage/core-components" "^0.9.2" - "@backstage/core-plugin-api" "^1.0.0" - "@backstage/plugin-catalog-react" "^1.0.0" - "@backstage/plugin-search" "^0.7.4" - "@backstage/theme" "^0.2.15" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.57" - lodash "^4.17.21" - react-router "6.0.0-beta.0" - react-use "^17.2.4" - -"@backstage/plugin-search-common@^0.3.2": - version "0.3.2" - resolved "https://registry.npmjs.org/@backstage/plugin-search-common/-/plugin-search-common-0.3.2.tgz#15984ba4c14f8a9119168e8c79344ef8101863dc" - integrity sha512-7vcpRo+5MB/QW/M77zPfcqxw0LzcQCHNXql0uxF+qBwVPJSHz9QB+YBuzGyaAlqfm5UPFXuweLQGqtoB+0DMLg== - dependencies: - "@backstage/plugin-permission-common" "^0.5.3" - "@backstage/types" "^1.0.0" - -"@backstage/plugin-search@^0.7.4": - version "0.7.4" - resolved "https://registry.npmjs.org/@backstage/plugin-search/-/plugin-search-0.7.4.tgz#d6571da128342d122f80253a756ece0a702967f9" - integrity sha512-mZBNJ78pAbdRyHdSAzSInPT74XcE+FvemmDXZnXShugVuWvIsDt3j7S/UQdQcOINQkEOuo/MqDbuWqkxQFW98w== - dependencies: - "@backstage/catalog-model" "^1.0.0" - "@backstage/config" "^1.0.0" - "@backstage/core-components" "^0.9.2" - "@backstage/core-plugin-api" "^1.0.0" - "@backstage/errors" "^1.0.0" - "@backstage/plugin-catalog-react" "^1.0.0" - "@backstage/plugin-search-common" "^0.3.2" - "@backstage/theme" "^0.2.15" - "@backstage/types" "^1.0.0" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.57" - qs "^6.9.4" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - react-text-truncate "^0.18.0" - react-use "^17.2.4" - -"@backstage/release-manifests@^0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@backstage/release-manifests/-/release-manifests-0.0.1.tgz#c84ef4c21d5d96c644fb9595106c6203b86ecf5c" - integrity sha512-FPB7Uvx5ajz9d+XoloCR4ZaJ4QoTlf6lYoyfSy5u0VjVZrqaPQsRAROYbXKhj+bOnH4zmLdaZsRndY/sGkvNNQ== - dependencies: - cross-fetch "^3.0.6" - -"@backstage/search-common@^0.2.2": - version "0.2.4" - resolved "https://registry.npmjs.org/@backstage/search-common/-/search-common-0.2.4.tgz#2fc8a13bebad14a8aad0594988e6f566bc30ec15" - integrity sha512-1h9lelwN5XRqvxAsm3QLCt3ONrSRLgQyoh2cssQ1bbUr9zR+pveeeCZ824jRfMVHF0xIJZ2YJGTtaZ9vF+77fQ== - dependencies: - "@backstage/plugin-permission-common" "^0.5.1" - "@backstage/types" "^0.1.3" - -"@backstage/test-utils@^0.2.4": - version "0.2.6" - resolved "https://registry.npmjs.org/@backstage/test-utils/-/test-utils-0.2.6.tgz#d271268196c1ec8804cdea240763032cdb36987d" - integrity sha512-vkWBWQxuFDEIrGVSXVdJzxYyGi7m+AVehbECeLFz7XIwPq4fkhOrGDCw1Ovkmp9IFLTysQBe2p0fI0Az7Xu38w== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/core-app-api" "^0.5.4" - "@backstage/core-plugin-api" "^0.7.0" - "@backstage/plugin-permission-common" "^0.5.1" - "@backstage/plugin-permission-react" "^0.3.2" - "@backstage/theme" "^0.2.15" - "@backstage/types" "^0.1.3" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.11.2" - "@testing-library/jest-dom" "^5.10.1" - "@testing-library/react" "^11.2.5" - "@testing-library/user-event" "^13.1.8" - cross-fetch "^3.1.5" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - zen-observable "^0.8.15" - -"@backstage/test-utils@^0.3.0": - version "0.3.0" - resolved "https://registry.npmjs.org/@backstage/test-utils/-/test-utils-0.3.0.tgz#9c47efd97cdfa3809fe8493a39795a59373d00bd" - integrity sha512-UmJE0dZhtZGKcl58Yru2whEApamY71eJaC4uV0APySUjh0Z39pPxOOkM8a9VKH0/oafqoS4LXUJ4vGDzmy11UQ== - dependencies: - "@backstage/config" "^0.1.15" - "@backstage/core-app-api" "^0.6.0" - "@backstage/core-plugin-api" "^0.8.0" - "@backstage/plugin-permission-common" "^0.5.2" - "@backstage/plugin-permission-react" "^0.3.3" - "@backstage/theme" "^0.2.15" - "@backstage/types" "^0.1.3" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.11.2" - "@testing-library/jest-dom" "^5.10.1" - "@testing-library/react" "^11.2.5" - "@testing-library/user-event" "^13.1.8" - cross-fetch "^3.1.5" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - zen-observable "^0.8.15" - -"@backstage/types@^0.1.1", "@backstage/types@^0.1.2", "@backstage/types@^0.1.3": +"@backstage/types@^0.1.3": version "0.1.3" resolved "https://registry.npmjs.org/@backstage/types/-/types-0.1.3.tgz#6613d8cbdf97d42d31cd1e66a833df533e7ccf14" integrity sha512-fJVi4oVrlO+G3PRv1fYSll9/X4pE11HLnkI//Geare9sP6wSfp/2zXpLYfKVsG0e24jOl7Swkc8lwLkQ90zMaQ== -"@backstage/version-bridge@^0.1.2": - version "0.1.2" - resolved "https://registry.npmjs.org/@backstage/version-bridge/-/version-bridge-0.1.2.tgz#a24f42e0f383d497576f8c9d43851c6538345c03" - integrity sha512-hwThlwfVCXaHva6IBakbHlWt3c1ev3KIwukpBlU3tDgi6tTvG8tPDe2aRwz7zzPHZRtgEw6JPvjA9gn9vSPbzQ== - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -2244,11 +1492,11 @@ resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-5.0.2.tgz#b23080fa35520e993a8a37a0f5bca26aa4650a48" integrity sha512-NBEJlHWrhQucLhZGHtSxM2loSaNUMajC7KOYJLyfcdW/6goVoff2HoYI3bz8YCDN0wKGbxtUL0gx2dvHpvnWlw== -"@changesets/apply-release-plan@^5.0.4": - version "5.0.4" - resolved "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.4.tgz#fefffecf73b59dbee7ae905b3c6a2e64c489f0cb" - integrity sha512-czayDIrgC8qBnqwClvh9nxjCMem+XZG7xtfdYwq3dxpzA30qGppcI0i088VYug5RCFR+l1N+HUvkujSZuBK65w== -======= +"@changesets/apply-release-plan@^5.0.5": + version "5.0.5" + resolved "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.5.tgz#d67b1e022c876d18d887f3c475a3abcad9944b68" + integrity sha512-CxL9dkhzjHiVmXCyHgsLCQj7i/coFTMv/Yy0v6BC5cIWZkQml+lf7zvQqAcFXwY7b54HxRWZPku02XFB53Q0Uw== + dependencies: "@babel/runtime" "^7.10.4" "@changesets/config" "^1.7.0" "@changesets/get-version-range-type" "^0.3.2" @@ -2267,49 +1515,22 @@ version "5.1.0" resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.1.0.tgz#0fcb18253998e3bc037a554874de43bcc58c4840" integrity sha512-iYlqffCMhcwZ+6Cv8cimf10OBGYXQKufBI7J6htpRgCV2nT99RKXEjbYOtrXWKQqzu0XxOsk15apSEwjZN0JRw== ->>>>>>> e5aaf7bb66 (bump dependencies) - dependencies: - "@babel/runtime" "^7.10.4" - "@changesets/config" "^1.6.4" - "@changesets/get-version-range-type" "^0.3.2" - "@changesets/git" "^1.3.0" - "@changesets/types" "^4.0.2" - "@manypkg/get-packages" "^1.1.3" - detect-indent "^6.0.0" - fs-extra "^7.0.1" - lodash.startcase "^4.4.0" - outdent "^0.5.0" - prettier "^1.19.1" - resolve-from "^5.0.0" - semver "^5.4.1" - -"@changesets/assemble-release-plan@^5.0.5": - version "5.0.5" - resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.5.tgz#60e4adc9bf458dd6ec38dee78d8f1bbeddfe3936" - integrity sha512-ejCVSM4I1jgaNi30we3/qltj2NQtS68w7C3H8Gvb6ZOvbIpAW/Tr0uMmPgRj4Vzkez5+fx0If02AvOdssz1btA== dependencies: "@babel/runtime" "^7.10.4" "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.0" - "@changesets/types" "^4.0.2" + "@changesets/get-dependents-graph" "^1.3.1" + "@changesets/types" "^4.1.0" "@manypkg/get-packages" "^1.1.3" semver "^5.4.1" +"@changesets/changelog-git@^0.1.10": + version "0.1.10" + resolved "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.1.10.tgz#df616e92671082a7976381280b4af98ff3a7067d" + integrity sha512-4t7zqPOv3aDZp4Y+AyDhiOG2ypaUXDpOz+MT1wOk3uSZNv78AaDByam0hdk5kfYuH1RlMecWU4/U5lO1ZL5eaA== + dependencies: + "@changesets/types" "^4.1.0" + "@changesets/cli@^2.14.0": -<<<<<<< HEAD - version "2.20.0" - resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.20.0.tgz#f24dbd38bd4bc47bf083e59b6bb9cbf531465808" - integrity sha512-IUYSgZKtS+wXPD5hxfnCfZ1JWCbBI0CRrhxpkgVKcXDwpxiRU8stCwuSuVj14kiYlThuH2zL0/ZuGvhF4r28Gg== - dependencies: - "@babel/runtime" "^7.10.4" - "@changesets/apply-release-plan" "^5.0.4" - "@changesets/assemble-release-plan" "^5.0.5" - "@changesets/config" "^1.6.4" - "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.0" - "@changesets/get-release-plan" "^3.0.5" - "@changesets/git" "^1.3.0" -======= version "2.21.0" resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.21.0.tgz#b689f91ed908150efc06e0985e6b4cfbd9aea3a3" integrity sha512-cJXRg28MmF9VbQrlwSjpY4AJA2xZUbXFCpQ3kFmX0IeppO7wknZ2QfocAhIqwM828t8d3R4Zpi5xnvJ/crIcQw== @@ -2323,12 +1544,11 @@ "@changesets/get-dependents-graph" "^1.3.1" "@changesets/get-release-plan" "^3.0.6" "@changesets/git" "^1.3.1" ->>>>>>> e5aaf7bb66 (bump dependencies) "@changesets/logger" "^0.0.5" - "@changesets/pre" "^1.0.9" - "@changesets/read" "^0.5.3" - "@changesets/types" "^4.0.2" - "@changesets/write" "^0.1.6" + "@changesets/pre" "^1.0.10" + "@changesets/read" "^0.5.4" + "@changesets/types" "^4.1.0" + "@changesets/write" "^0.1.7" "@manypkg/get-packages" "^1.1.3" "@types/is-ci" "^3.0.0" "@types/semver" "^6.0.0" @@ -2347,15 +1567,15 @@ term-size "^2.1.0" tty-table "^2.8.10" -"@changesets/config@^1.6.4": - version "1.6.4" - resolved "https://registry.npmjs.org/@changesets/config/-/config-1.6.4.tgz#c904c84f067b49c09b378618b751089dd29ed0b7" - integrity sha512-WWa8eR8GzS/p2atLc/+5UEDn7fsRCZ+/sShLkB/3efVbTkSTB1PwoKwQRXLYXM1DY289T7UnJT4HLZA3Gcreww== +"@changesets/config@^1.7.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@changesets/config/-/config-1.7.0.tgz#18353f88ea8153d7f1fb7c321a3fe8667035eddb" + integrity sha512-Ctk6ZO5Ay6oZ95bbKXyA2a1QG0jQUePaGCY6BKkZtUG4PgysesfmiQOPgOY5OsRMt8exJeo6l+DJ75YiKmh0rQ== dependencies: "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.0" + "@changesets/get-dependents-graph" "^1.3.1" "@changesets/logger" "^0.0.5" - "@changesets/types" "^4.0.2" + "@changesets/types" "^4.1.0" "@manypkg/get-packages" "^1.1.3" fs-extra "^7.0.1" micromatch "^4.0.2" @@ -2367,30 +1587,17 @@ dependencies: extendable-error "^0.1.5" -"@changesets/get-dependents-graph@^1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.3.0.tgz#892bbb63406911baac1f77a31303620492d466ec" - integrity sha512-4VHQWEluWySPgDdkL94YNxrEjDb9nwNFw515sWDmVrlfpQN5qaP1hdaotrp4mJm4ky85t4cTlrWSP+CTY7IDbw== +"@changesets/get-dependents-graph@^1.3.1": + version "1.3.1" + resolved "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.3.1.tgz#f1ebadbd4e17bb2b987c4542a588e0ee9f2e829a" + integrity sha512-HwUs8U0XK/ZqCQon1/80jJEyswS8JVmTiHTZslrTpuavyhhhxrSpO1eVCdKgaVHBRalOw3gRzdS3uzkmqYsQSQ== dependencies: - "@changesets/types" "^4.0.2" + "@changesets/types" "^4.1.0" "@manypkg/get-packages" "^1.1.3" chalk "^2.1.0" fs-extra "^7.0.1" semver "^5.4.1" -<<<<<<< HEAD -"@changesets/get-release-plan@^3.0.5": - version "3.0.5" - resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.5.tgz#c05cff031bba737c8dd236afe97e77b007ee44a3" - integrity sha512-67td3LA1RTJpY5Q+wJaTTRtAjZ2suAhDfj3VRjFv0gCgUPXs8rNx17n9UPbegPTQjeTS1r7hVRVifycmT0fQtA== - dependencies: - "@babel/runtime" "^7.10.4" - "@changesets/assemble-release-plan" "^5.0.5" - "@changesets/config" "^1.6.4" - "@changesets/pre" "^1.0.9" - "@changesets/read" "^0.5.3" - "@changesets/types" "^4.0.2" -======= "@changesets/get-release-plan@^3.0.6": version "3.0.6" resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.6.tgz#15aac108b9d0f139841562c9372d8cfd738503dc" @@ -2402,7 +1609,6 @@ "@changesets/pre" "^1.0.10" "@changesets/read" "^0.5.4" "@changesets/types" "^4.1.0" ->>>>>>> e5aaf7bb66 (bump dependencies) "@manypkg/get-packages" "^1.1.3" "@changesets/get-version-range-type@^0.3.2": @@ -2410,14 +1616,14 @@ resolved "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz#8131a99035edd11aa7a44c341cbb05e668618c67" integrity sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg== -"@changesets/git@^1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@changesets/git/-/git-1.3.0.tgz#7f62e1983552efecb738054db5178eef77f41241" - integrity sha512-Ydj4lWX33d2PCDaTXOMSbyTjgk1go1V6EyXjKTmOV7nB/qvgKdDZLSt+AexKWKp3Ac2FTrtVnl9G5gMNVYNmuQ== +"@changesets/git@^1.3.1": + version "1.3.1" + resolved "https://registry.npmjs.org/@changesets/git/-/git-1.3.1.tgz#e86b4d2b28acdf9bc8949031027a9ac12420b99e" + integrity sha512-yg60QUi38VA0XGXdBy9SRYJhs8xJHE97Z1CaB/hFyByBlh5k1i+avFNBvvw66MsoT/aiml6y9scIG6sC8R5mfg== dependencies: "@babel/runtime" "^7.10.4" "@changesets/errors" "^0.1.4" - "@changesets/types" "^4.0.2" + "@changesets/types" "^4.1.0" "@manypkg/get-packages" "^1.1.3" is-subdir "^1.1.1" spawndamnit "^2.0.0" @@ -2429,51 +1635,51 @@ dependencies: chalk "^2.1.0" -"@changesets/parse@^0.3.11": - version "0.3.11" - resolved "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.11.tgz#b53485f36152e6e9a097b56fc46cafb6705ce2b5" - integrity sha512-w5/X8KijcCrvv5lHimXIBR9o35c78niiBoesBjBUlWeifwPz0DHc/lzVYJKRkA5w0BGqft6T/9hKI68GaYj5wA== +"@changesets/parse@^0.3.12": + version "0.3.12" + resolved "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.12.tgz#60569bb39ad4ffe47fc01d431613ce5c42e6590f" + integrity sha512-FOBz2L1dT9PcvyQU1Qp2sQ0B4Jw7EgRDAKFVzAQwhzXqCq03TcE7vgKU6VSksCJAioMYDowdVVHNnv/Uak6yZQ== dependencies: - "@changesets/types" "^4.0.2" + "@changesets/types" "^4.1.0" js-yaml "^3.13.1" -"@changesets/pre@^1.0.9": - version "1.0.9" - resolved "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.9.tgz#f1a0efea42733c25ef4a782377b2ac61023bd1b7" - integrity sha512-F3+qMun89KlynecBD15fEpwGT/KxbYb3WGeut6w1xhZb0u7V/jdcPy9b+kJ2xmBqFZLn1WteWIP96IjxS57H7A== +"@changesets/pre@^1.0.10": + version "1.0.10" + resolved "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.10.tgz#e677031f271cdab8443b21e0b3cda036a3919c30" + integrity sha512-cZC1C1wTSC17/TcTWivAQ4LAXz5jEYDuy3UeZiBz1wnTTzMHyTHLLwJi60juhl4hawXunDLw0mwZkcpS8Ivitg== dependencies: "@babel/runtime" "^7.10.4" "@changesets/errors" "^0.1.4" - "@changesets/types" "^4.0.2" + "@changesets/types" "^4.1.0" "@manypkg/get-packages" "^1.1.3" fs-extra "^7.0.1" -"@changesets/read@^0.5.3": - version "0.5.3" - resolved "https://registry.npmjs.org/@changesets/read/-/read-0.5.3.tgz#5afb14ee0e806751c255e94fe8742843a9b12487" - integrity sha512-zoj5NjNR4AhiGXz6aHTxsBLojChHgDOSbz6VfAVxMKX7tF7UhyNYptG2VEbSjxeamNKABx6k1pkM2IyVVlOcbQ== +"@changesets/read@^0.5.4": + version "0.5.4" + resolved "https://registry.npmjs.org/@changesets/read/-/read-0.5.4.tgz#c6dc6ab00c4f70f2ce6766433d92eebde1b00e7a" + integrity sha512-12dTx+p5ztFs9QgJDGHRHR6HzTIbHct9S4lK2I/i6Qkz1cNfAPVIbdoMCdbPIWeLank9muMUjiiFmCWJD7tQIg== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/git" "^1.3.0" + "@changesets/git" "^1.3.1" "@changesets/logger" "^0.0.5" - "@changesets/parse" "^0.3.11" - "@changesets/types" "^4.0.2" + "@changesets/parse" "^0.3.12" + "@changesets/types" "^4.1.0" chalk "^2.1.0" fs-extra "^7.0.1" p-filter "^2.1.0" -"@changesets/types@^4.0.1", "@changesets/types@^4.0.2": - version "4.0.2" - resolved "https://registry.npmjs.org/@changesets/types/-/types-4.0.2.tgz#d20e1e45bdc96a97cc509c655e708b53a9292465" - integrity sha512-OeDaB7D+WVy/ErymPzFm58IeGvz4DOl+oedyZETfnkfMezF/Uhrm1Ub6MHrO5LcAaQTW+ptDmr0fmaVyoTxgHw== +"@changesets/types@^4.0.1", "@changesets/types@^4.1.0": + version "4.1.0" + resolved "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz#fb8f7ca2324fd54954824e864f9a61a82cb78fe0" + integrity sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== -"@changesets/write@^0.1.6": - version "0.1.6" - resolved "https://registry.npmjs.org/@changesets/write/-/write-0.1.6.tgz#798d882bada93f391902a854a17965f3b80a5201" - integrity sha512-JWE2gJs9eHhorxqembkf43fllKlCz+sp1TJKSheaWfhWILMHPdfa/xQG4+sMZkISo1qZ+IlJyiBLha6iGGjXyA== +"@changesets/write@^0.1.7": + version "0.1.7" + resolved "https://registry.npmjs.org/@changesets/write/-/write-0.1.7.tgz#671def0d871cf5970c5b2f766f0ac4b19ecf1ddb" + integrity sha512-6r+tc6u2l5BBIwEAh7ivRYWFir+XKiw0q/6Hx6NJA4dSN5fNu9uyWRQ+IMHCllD9dBcsh+e79sOepc+xT8l28g== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/types" "^4.0.2" + "@changesets/types" "^4.1.0" fs-extra "^7.0.1" human-id "^1.0.2" prettier "^1.19.1" @@ -2602,8 +1808,6 @@ "@lezer/common" "^0.15.5" "@lezer/lr" "^0.15.0" -<<<<<<< HEAD -<<<<<<< HEAD "@codemirror/legacy-modes@^0.19.0": version "0.19.1" resolved "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-0.19.1.tgz#7dc3b5df1842060648f75764ab6919fcfce3ea1a" @@ -2642,14 +1846,7 @@ "@codemirror/state" "^0.19.0" "@codemirror/view" "^0.19.0" -"@codemirror/rangeset@^0.19.0", "@codemirror/rangeset@^0.19.5": - version "0.19.8" - resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.8.tgz#f9b572c287bcef08d150b4a539e0128db62b2091" - integrity sha512-1vusIkxSD0vK5KQ22JO/4Ejfww5268PgM/CpKNBSpTpWZEFlZbmOPyRiY4HXO2oEzOpypbA/walMiNInWnrT0Q== - dependencies: - "@codemirror/state" "^0.19.0" - -"@codemirror/rangeset@^0.19.1": +"@codemirror/rangeset@^0.19.0", "@codemirror/rangeset@^0.19.1", "@codemirror/rangeset@^0.19.5": version "0.19.9" resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.9.tgz#e80895de93c39dc7899f5be31d368c9d88aa4efc" integrity sha512-V8YUuOvK+ew87Xem+71nKcqu1SXd5QROMRLMS/ljT5/3MCxtgrRie1Cvild0G/Z2f1fpWxzX78V0U4jjXBorBQ== @@ -2681,45 +1878,13 @@ version "0.19.9" resolved "https://registry.npmjs.org/@codemirror/state/-/state-0.19.9.tgz#b797f9fbc204d6dc7975485e231693c09001b0dd" integrity sha512-psOzDolKTZkx4CgUqhBQ8T8gBc0xN5z4gzed109aF6x7D7umpDRoimacI/O6d9UGuyl4eYuDCZmDFr2Rq7aGOw== -======= -"@codemirror/rangeset@^0.19.0": - version "0.19.2" - resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.2.tgz#d7a999e4273c00fecef4aba8535a426073cdcddf" - integrity sha512-5d+X8LtmeZtfFtKrSx57bIHRUpKv2HD0b74clp4fGA7qJLLfYehF6FGkJJxJb8lKsqAga1gdjjWr0jiypmIxoQ== - dependencies: - "@codemirror/state" "^0.19.0" - -======= -"@codemirror/rangeset@^0.19.0": - version "0.19.2" - resolved "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.2.tgz#d7a999e4273c00fecef4aba8535a426073cdcddf" - integrity sha512-5d+X8LtmeZtfFtKrSx57bIHRUpKv2HD0b74clp4fGA7qJLLfYehF6FGkJJxJb8lKsqAga1gdjjWr0jiypmIxoQ== - dependencies: - "@codemirror/state" "^0.19.0" - ->>>>>>> e5aaf7bb66 (bump dependencies) -"@codemirror/state@^0.19.0", "@codemirror/state@^0.19.3": - version "0.19.6" - resolved "https://registry.npmjs.org/@codemirror/state/-/state-0.19.6.tgz#d631f041d39ce41b7891b099fca26cb1fdb9763e" - integrity sha512-sqIQZE9VqwQj7D4c2oz9mfLhlT1ElAzGB5lO1lE33BPyrdNy1cJyCIOecT4cn4VeJOFrnjOeu+IftZ3zqdFETw== -<<<<<<< HEAD ->>>>>>> f9b03ab02f (fixups) dependencies: "@codemirror/text" "^0.19.0" -"@codemirror/stream-parser@^0.19.0", "@codemirror/stream-parser@^0.19.6": +"@codemirror/stream-parser@^0.19.0", "@codemirror/stream-parser@^0.19.2", "@codemirror/stream-parser@^0.19.6": version "0.19.7" resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.7.tgz#99a9696307b90677f6e3abe29ea6d77c1c0a8db5" integrity sha512-4ExcbKksmU4PIT8s11/dPESgMNLQqlMlbQzRQ1CyMcmygcuQk+58zQ84nv/X17OCUd2ephZ1DKEaHHACifzCiA== -======= - dependencies: - "@codemirror/text" "^0.19.0" - -"@codemirror/stream-parser@^0.19.2": - version "0.19.2" - resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.2.tgz#793428e55aa7b9daa64cb733973e5d5e3d9a2306" - integrity sha512-hBKRQlyu8GUOrY33xZ6/1kAfNZ8ZUm6cX9a7mPx8zAAqnpz/fpksC/qJRrkg1mPMBwxm+JG4fqAwDGJ3gLVniQ== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@codemirror/highlight" "^0.19.0" "@codemirror/language" "^0.19.0" @@ -2728,33 +1893,10 @@ "@lezer/common" "^0.15.0" "@lezer/lr" "^0.15.0" -<<<<<<< HEAD -"@codemirror/stream-parser@^0.19.2": - version "0.19.2" - resolved "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.2.tgz#793428e55aa7b9daa64cb733973e5d5e3d9a2306" - integrity sha512-hBKRQlyu8GUOrY33xZ6/1kAfNZ8ZUm6cX9a7mPx8zAAqnpz/fpksC/qJRrkg1mPMBwxm+JG4fqAwDGJ3gLVniQ== - dependencies: - "@codemirror/highlight" "^0.19.0" - "@codemirror/language" "^0.19.0" - "@codemirror/state" "^0.19.0" - "@codemirror/text" "^0.19.0" - "@lezer/common" "^0.15.0" - "@lezer/lr" "^0.15.0" - -<<<<<<< HEAD "@codemirror/text@^0.19.0", "@codemirror/text@^0.19.2", "@codemirror/text@^0.19.4", "@codemirror/text@^0.19.6": version "0.19.6" resolved "https://registry.npmjs.org/@codemirror/text/-/text-0.19.6.tgz#9adcbd8137f69b75518eacd30ddb16fd67bbac45" integrity sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA== -======= -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -"@codemirror/text@^0.19.0": - version "0.19.5" - resolved "https://registry.npmjs.org/@codemirror/text/-/text-0.19.5.tgz#75033af2476214e79eae22b81ada618815441c18" - integrity sha512-Syu5Xc7tZzeUAM/y4fETkT0zgGr48rDG+w4U38bPwSIUr+L9S/7w2wDE1WGNzjaZPz12F6gb1gxWiSTg9ocLow== -<<<<<<< HEAD ->>>>>>> f9b03ab02f (fixups) "@codemirror/theme-one-dark@^0.19.1": version "0.19.1" @@ -2772,42 +1914,18 @@ dependencies: "@codemirror/state" "^0.19.0" "@codemirror/view" "^0.19.0" -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -"@codemirror/view@^0.19.0": - version "0.19.27" - resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.27.tgz#76e5dc19ecb4ce53e9fef1d29245040d7ff64183" - integrity sha512-Uz/LecEf7CyvMWaQBlKtbJCYn0hRnEZ2yYvuZVy9YMhmvGmES6ec7FaKw7lDFFOMLwLbBThc9kfw4DCHreHN1w== -<<<<<<< HEAD - dependencies: - "@codemirror/rangeset" "^0.19.0" - "@codemirror/state" "^0.19.3" - "@codemirror/text" "^0.19.0" - style-mod "^4.0.0" - w3c-keyname "^2.2.4" - -<<<<<<< HEAD -"@codemirror/view@^0.19.22", "@codemirror/view@^0.19.23", "@codemirror/view@^0.19.31", "@codemirror/view@^0.19.34", "@codemirror/view@^0.19.44", "@codemirror/view@^0.19.45": +"@codemirror/view@^0.19.0", "@codemirror/view@^0.19.22", "@codemirror/view@^0.19.23", "@codemirror/view@^0.19.31", "@codemirror/view@^0.19.34", "@codemirror/view@^0.19.44", "@codemirror/view@^0.19.45": version "0.19.47" resolved "https://registry.npmjs.org/@codemirror/view/-/view-0.19.47.tgz#2163c3016d7680bf50dd695c0e3abdaf80f45363" integrity sha512-SfbagKvJQl5dtt+9wYpo9sa3ZkMgUxTq+/hXDf0KVwIx+zu3cJIqfEm9xSx6yXkq7it7RsPGHaPasApNffF/8g== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: - "@codemirror/rangeset" "^0.19.0" + "@codemirror/rangeset" "^0.19.5" "@codemirror/state" "^0.19.3" "@codemirror/text" "^0.19.0" style-mod "^4.0.0" w3c-keyname "^2.2.4" -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -======= ->>>>>>> f9b03ab02f (fixups) "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" resolved "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" @@ -2919,23 +2037,16 @@ ts-node "^9" tslib "^2" -<<<<<<< HEAD -"@eslint/eslintrc@^1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" - integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== -======= -"@eslint/eslintrc@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz#7ce1547a5c46dfe56e1e45c3c9ed18038c721c6a" - integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w== ->>>>>>> e5aaf7bb66 (bump dependencies) +"@eslint/eslintrc@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" + integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.2.0" + espree "^9.3.1" globals "^13.9.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.0.4" @@ -3007,9 +2118,9 @@ xcase "^2.0.1" "@google-cloud/common@^3.7.0": - version "3.7.0" - resolved "https://registry.npmjs.org/@google-cloud/common/-/common-3.7.0.tgz#ee3fba75aeaa614978aebf8740380670026592aa" - integrity sha512-oFgpKLjH9JTOAyQd3kB36iSuH8wNSpDKb1TywlB6zcsG0xmJFxLutmfPhz03KUxRMNQOZ1K1Gc9BYvJifVnGVA== + version "3.10.0" + resolved "https://registry.npmjs.org/@google-cloud/common/-/common-3.10.0.tgz#454d1155bb512109cd83c6183aabbd39f9aabda7" + integrity sha512-XMbJYMh/ZSaZnbnrrOFfR/oQrb0SxG4qh6hDisWCoEbFcBHV0qHQo4uXfeMCzolx2Mfkh6VDaOGg+hyJsmxrlw== dependencies: "@google-cloud/projectify" "^2.0.0" "@google-cloud/promisify" "^2.0.0" @@ -3017,23 +2128,16 @@ duplexify "^4.1.1" ent "^2.2.0" extend "^3.0.2" - google-auth-library "^7.0.2" + google-auth-library "^7.14.0" retry-request "^4.2.2" teeny-request "^7.0.0" -<<<<<<< HEAD "@google-cloud/container@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@google-cloud/container/-/container-3.0.0.tgz#b28d086152ac19f22f2574b7e0a39774379fb885" integrity sha512-Jr+QKc6kZ9eehZunvemocB4hDd1nE3OBPo8zb0VX9lv7y+PPxksJl2RPEktFRNs32mQ9/kWLsvjLdGAHYsaOug== -======= -"@google-cloud/container@^2.2.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@google-cloud/container/-/container-2.3.0.tgz#a23f046948dbaf8cced008d419580cb600334efc" - integrity sha512-Tv8fR7JjlZr3oh476hMsf9yqGXbb/+81n0Va1Uc3reWjAdUXCYztH3/o/HMvh6yvd06j8VLLUxyBwAIb5PtW5g== ->>>>>>> 76d216e74b (fixups) dependencies: - google-gax "^2.12.0" + google-gax "^2.24.1" "@google-cloud/firestore@^5.0.2": version "5.0.2" @@ -3098,12 +2202,12 @@ meros "^1.1.4" "@graphql-codegen/cli@^2.3.1": - version "2.3.1" - resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.3.1.tgz#66083293b60e3182603d70031210d59e6f1a16e5" - integrity sha512-xMSvYqFtnRXOp/sVJSyqiFTm70X8ouLXiq5o/R/D3yQtA6NNudAC+Q4oxg9/LZKnRDL6pehwdC8CNnQk0Tf7Sw== + version "2.6.2" + resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.6.2.tgz#a9aa4656141ee0998cae8c7ad7d0bf9ca8e0c9ae" + integrity sha512-UO75msoVgvLEvfjCezM09cQQqp32+mR8Ma1ACsBpr7nroFvHbgcu2ulx1cMovg4sxDBCsvd9Eq/xOOMpARUxtw== dependencies: - "@graphql-codegen/core" "2.4.0" - "@graphql-codegen/plugin-helpers" "^2.3.2" + "@graphql-codegen/core" "2.5.1" + "@graphql-codegen/plugin-helpers" "^2.4.1" "@graphql-tools/apollo-engine-loader" "^7.0.5" "@graphql-tools/code-file-loader" "^7.0.6" "@graphql-tools/git-loader" "^7.0.5" @@ -3133,7 +2237,7 @@ listr "^0.14.3" listr-update-renderer "^0.5.0" log-symbols "^4.0.0" - minimatch "^3.0.4" + minimatch "^4.0.0" mkdirp "^1.0.4" string-env-interpolation "^1.0.1" ts-log "^2.2.3" @@ -3143,26 +2247,17 @@ yaml "^1.10.0" yargs "^17.0.0" -"@graphql-codegen/core@2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.4.0.tgz#d94dcc088b5e117c847ce5b10c4fe1eb7325e180" - integrity sha512-5RiYE1+07jayp/3w/bkyaCXtfKNeKmRabpPP4aRi369WeH2cH37l2K8NbhkIU+zhpnhoqMID61TO56x2fKldZQ== +"@graphql-codegen/core@2.5.1": + version "2.5.1" + resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.5.1.tgz#e3d50d3449b8c58b74ea08e97faf656a1b7fc8a1" + integrity sha512-alctBVl2hMnBXDLwkgmnFPrZVIiBDsWJSmxJcM4GKg1PB23+xuov35GE47YAyAhQItE1B1fbYnbb1PtGiDZ4LA== dependencies: - "@graphql-codegen/plugin-helpers" "^2.3.2" + "@graphql-codegen/plugin-helpers" "^2.4.1" "@graphql-tools/schema" "^8.1.2" "@graphql-tools/utils" "^8.1.1" tslib "~2.3.0" "@graphql-codegen/graphql-modules-preset@^2.3.2": -<<<<<<< HEAD - version "2.3.2" - resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.3.2.tgz#df88431e4cff656799b1ab0324e0795606162389" - integrity sha512-O3PPDQejqf3rF9sHqlrl00M+BSIKJAovFWt2zkDr/D3I/XwntR4QdQDKyY9zTotHfPpgJKyxyMzthpdqPD5XUA== - dependencies: - "@graphql-codegen/plugin-helpers" "^2.3.2" - "@graphql-codegen/visitor-plugin-common" "2.5.2" - "@graphql-tools/utils" "8.5.5" -======= version "2.3.5" resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.3.5.tgz#07ef9ef6e66d4fbb76767097a7cc3cace34f8d08" integrity sha512-y1PcTFr483Imzd346YdmNSvW3FlN4iYj4sRWCRys+WXpiFcXq+D7+1dFZvs75/9bIHoOEeQtusHHuRPy9qJVkA== @@ -3170,15 +2265,14 @@ "@graphql-codegen/plugin-helpers" "^2.4.0" "@graphql-codegen/visitor-plugin-common" "2.7.1" "@graphql-tools/utils" "8.6.1" ->>>>>>> e5aaf7bb66 (bump dependencies) change-case-all "1.0.14" parse-filepath "^1.0.2" tslib "~2.3.0" -"@graphql-codegen/plugin-helpers@^2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.3.2.tgz#3f9ba625791901d19be733db1dfc9a3dbd0dac44" - integrity sha512-19qFA5XMAWaAY64sBljjDPYfHjE+QMk/+oalCyY13WjSlcLDvYPfmFlCNgFSsydArDELlHR8T1GMbA7C42M8TA== +"@graphql-codegen/plugin-helpers@^2.3.2", "@graphql-codegen/plugin-helpers@^2.4.0", "@graphql-codegen/plugin-helpers@^2.4.1": + version "2.4.2" + resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.4.2.tgz#e4f6b74dddcf8a9974fef5ce48562ae0980f9fed" + integrity sha512-LJNvwAPv/sKtI3RnRDm+nPD+JeOfOuSOS4FFIpQCMUCyMnFcchV/CPTTv7tT12fLUpEg6XjuFfDBvOwndti30Q== dependencies: "@graphql-tools/utils" "^8.5.2" change-case-all "1.0.14" @@ -3197,83 +2291,32 @@ tslib "~2.3.0" "@graphql-codegen/typescript-resolvers@^2.4.3": - version "2.4.3" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.4.3.tgz#556dbaf23eac0ff9c321d3ce7126d96a839f793f" - integrity sha512-4m3E0zKLSXjGirZcYHHaZ0bxjy/gxvuumShFCKFmYTkHwTfqBaeh/pMhWqLkwC9wimrH6mQoPIYSQHLaF6Eqng== + version "2.6.1" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.6.1.tgz#5963da60de79cfb847b55b2433cd9f65a33d7aad" + integrity sha512-tb8qiIYRDbypHvEVBi04OlItABPeormhd6gh26Q0FO/dD+tLx1V85A6wnHC4jExWPP9+/3PwHJL1pq/0n1kxlA== dependencies: - "@graphql-codegen/plugin-helpers" "^2.3.2" - "@graphql-codegen/typescript" "^2.4.2" - "@graphql-codegen/visitor-plugin-common" "2.5.2" + "@graphql-codegen/plugin-helpers" "^2.4.0" + "@graphql-codegen/typescript" "^2.4.8" + "@graphql-codegen/visitor-plugin-common" "2.7.4" "@graphql-tools/utils" "^8.1.1" auto-bind "~4.0.0" tslib "~2.3.0" -"@graphql-codegen/typescript@^2.4.2": -<<<<<<< HEAD - version "2.4.2" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.2.tgz#a239d5fd8f11140d5d4c81cfae7ff02054b724dc" - integrity sha512-8ajWidiFqF1KNAywtb/692SjwTyjzrDHo1sf2Q7Z+rh9qDEIrh83VHB8naT/1CefOvxj3MS6GbcsvJMizaE/AQ== -======= - version "2.4.5" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.5.tgz#80ca7a343511a27cd587c0b220b0a0dd99a4dc4b" - integrity sha512-Ytb8phNHKl/v/wxudsMOAV1dmzIbckWHm2J83PLNOvnu9CGEhgsd67vfe3ZoF95VU2BKSG8BXGa6uL9z2xDmuA== ->>>>>>> e5aaf7bb66 (bump dependencies) +"@graphql-codegen/typescript@^2.4.2", "@graphql-codegen/typescript@^2.4.8": + version "2.4.8" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.8.tgz#e8110baba9713cde72d57a5c95aa27400363ed9a" + integrity sha512-tVsHIkuyenBany7c5IMU1yi4S1er2hgyXJGNY7PcyhpJMx0eChmbqz1VTiZxDEwi8mDBS2mn3TaSJMh6xuJM5g== dependencies: - "@graphql-codegen/plugin-helpers" "^2.3.2" + "@graphql-codegen/plugin-helpers" "^2.4.0" "@graphql-codegen/schema-ast" "^2.4.1" -<<<<<<< HEAD - "@graphql-codegen/visitor-plugin-common" "2.5.2" + "@graphql-codegen/visitor-plugin-common" "2.7.4" auto-bind "~4.0.0" tslib "~2.3.0" -"@graphql-codegen/visitor-plugin-common@2.5.2": - version "2.5.2" - resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.5.2.tgz#90aa4add41e17bca83f1c7c8ad674f2a06065efd" - integrity sha512-qDMraPmumG+vEGAz42/asRkdgIRmQWH5HTc320UX+I6CY6eE/Ey85cgzoqeQGLV8gu4sj3UkNx/3/r79eX4u+Q== - dependencies: - "@graphql-codegen/plugin-helpers" "^2.3.2" - "@graphql-tools/optimize" "^1.0.1" - "@graphql-tools/relay-operation-optimizer" "^6.3.7" - "@graphql-tools/utils" "^8.3.0" -======= - "@graphql-codegen/visitor-plugin-common" "2.7.1" ->>>>>>> e5aaf7bb66 (bump dependencies) - auto-bind "~4.0.0" - change-case-all "1.0.14" - dependency-graph "^0.11.0" - graphql-tag "^2.11.0" - parse-filepath "^1.0.2" - tslib "~2.3.0" - -<<<<<<< HEAD -======= -<<<<<<< HEAD -"@graphql-codegen/visitor-plugin-common@2.7.4": - version "2.7.4" - resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.7.4.tgz#fbc8aec9df0035b8f29fa64a6356cbb02062da5d" - integrity sha512-aaDoEudDD+B7DK/UwDSL2Fzej75N9hNJ3N8FQuTIeDyw6FNGWUxmkjVBLQGlzfnYfK8IYkdfYkrPn3Skq0pVxA== -======= -"@graphql-codegen/visitor-plugin-common@2.5.2": - version "2.5.2" - resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.5.2.tgz#90aa4add41e17bca83f1c7c8ad674f2a06065efd" - integrity sha512-qDMraPmumG+vEGAz42/asRkdgIRmQWH5HTc320UX+I6CY6eE/Ey85cgzoqeQGLV8gu4sj3UkNx/3/r79eX4u+Q== - dependencies: - "@graphql-codegen/plugin-helpers" "^2.3.2" - "@graphql-tools/optimize" "^1.0.1" - "@graphql-tools/relay-operation-optimizer" "^6.3.7" - "@graphql-tools/utils" "^8.3.0" - auto-bind "~4.0.0" - change-case-all "1.0.14" - dependency-graph "^0.11.0" - graphql-tag "^2.11.0" - parse-filepath "^1.0.2" - tslib "~2.3.0" - "@graphql-codegen/visitor-plugin-common@2.7.1": version "2.7.1" resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.7.1.tgz#bdcded24d1d6f329d32b90704397d6001374b893" integrity sha512-Ew/+0GwGwL3ZSXS0cYz6lVvE7S5SkbTr7caRpLa4FpAdLGNskCgdA1n6W5tX5c7qsaYstqlxp30hJTfgTsYS6A== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@graphql-codegen/plugin-helpers" "^2.4.0" "@graphql-tools/optimize" "^1.0.1" @@ -3286,7 +2329,22 @@ parse-filepath "^1.0.2" tslib "~2.3.0" ->>>>>>> b6559cd41d (bump dependencies) +"@graphql-codegen/visitor-plugin-common@2.7.4": + version "2.7.4" + resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.7.4.tgz#fbc8aec9df0035b8f29fa64a6356cbb02062da5d" + integrity sha512-aaDoEudDD+B7DK/UwDSL2Fzej75N9hNJ3N8FQuTIeDyw6FNGWUxmkjVBLQGlzfnYfK8IYkdfYkrPn3Skq0pVxA== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.4.0" + "@graphql-tools/optimize" "^1.0.1" + "@graphql-tools/relay-operation-optimizer" "^6.3.7" + "@graphql-tools/utils" "^8.3.0" + auto-bind "~4.0.0" + change-case-all "1.0.14" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.3.0" + "@graphql-tools/apollo-engine-loader@^7.0.5": version "7.2.1" resolved "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.2.1.tgz#14e5d0b1032a7d882d22a7533c8969ee3fa797f2" @@ -3407,27 +2465,12 @@ "@graphql-tools/utils" "^8.5.1" tslib "~2.3.0" -<<<<<<< HEAD -"@graphql-tools/import@^6.2.6": - version "6.3.1" - resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz#731c47ab6c6ac9f7994d75c76b6c2fa127d2d483" - integrity sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw== - dependencies: - resolve-from "5.0.0" - tslib "~2.2.0" - -"@graphql-tools/import@^6.5.7": - version "6.6.1" - resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.1.tgz#2a7e1ceda10103ffeb8652a48ddc47150b035485" - integrity sha512-i9WA6k+erJMci822o9w9DoX+uncVBK60LGGYW8mdbhX0l7wEubUpA000thJ1aarCusYh0u+ZT9qX0HyVPXu25Q== -======= "@graphql-tools/import@^6.2.6", "@graphql-tools/import@^6.5.7": version "6.6.6" resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.6.tgz#a4ff216e6b8a49c392bb8a4378d4e9caf2b303d7" integrity sha512-a0aVajxqu1MsL8EwavA44Osw20lBOIhq8IM2ZIHFPP62cPAcOB26P+Sq57DHMsSyX5YQ0ab9XPM2o4e1dQhs0w== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: - "@graphql-tools/utils" "8.5.3" + "@graphql-tools/utils" "8.6.2" resolve-from "5.0.0" tslib "~2.3.0" @@ -3464,40 +2507,22 @@ unixify "1.0.0" valid-url "1.0.9" -<<<<<<< HEAD "@graphql-tools/load@^7.3.0", "@graphql-tools/load@^7.4.1": -<<<<<<< HEAD version "7.5.5" resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.5.tgz#d61e5bdee59b6c8aa9631f74f0b2a70d512e5b31" integrity sha512-qPasit140nwTbMQbFCfZcgaS7q/0+xMQGdkMGU11rtHt6/jMgJIKDUU8/fJGKltNY3EeHlEdVtZmggZD7Rr6bA== -======= -"@graphql-tools/load@^7.3.0": - version "7.5.1" - resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.1.tgz#8c7f846d2185ddc1d44fdfbf1ed9cb678f69e40b" - integrity sha512-j9XcLYZPZdl/TzzqA83qveJmwcCxgGizt5L1+C1/Z68brTEmQHLdQCOR3Ma3ewESJt6DU05kSTu2raKaunkjRg== ->>>>>>> f9b03ab02f (fixups) dependencies: "@graphql-tools/schema" "8.3.5" "@graphql-tools/utils" "8.6.5" p-limit "3.1.0" tslib "~2.3.0" -"@graphql-tools/load@^7.4.1": - version "7.4.1" - resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.4.1.tgz#aa572fcef11d6028097b6ef39c13fa9d62e5a441" - integrity sha512-UvBodW5hRHpgBUBVz5K5VIhJDOTFIbRRAGD6sQ2l9J5FDKBEs3u/6JjZDzbdL96br94D5cEd2Tk6auaHpTn7mQ== +"@graphql-tools/merge@8.2.6", "@graphql-tools/merge@^8.2.1": + version "8.2.6" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz#7fb615fa9c143c3151ff025e501d52bd48186d19" + integrity sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw== dependencies: - "@graphql-tools/schema" "8.3.1" - "@graphql-tools/utils" "^8.5.1" -======= - version "7.5.1" - resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.1.tgz#8c7f846d2185ddc1d44fdfbf1ed9cb678f69e40b" - integrity sha512-j9XcLYZPZdl/TzzqA83qveJmwcCxgGizt5L1+C1/Z68brTEmQHLdQCOR3Ma3ewESJt6DU05kSTu2raKaunkjRg== - dependencies: - "@graphql-tools/schema" "8.3.1" - "@graphql-tools/utils" "^8.6.0" ->>>>>>> e5aaf7bb66 (bump dependencies) - p-limit "3.1.0" + "@graphql-tools/utils" "8.6.5" tslib "~2.3.0" "@graphql-tools/merge@^6.0.0", "@graphql-tools/merge@^6.2.12": @@ -3509,37 +2534,6 @@ "@graphql-tools/utils" "^7.7.0" tslib "~2.2.0" -<<<<<<< HEAD -<<<<<<< HEAD -"@graphql-tools/merge@8.2.6": - version "8.2.6" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz#7fb615fa9c143c3151ff025e501d52bd48186d19" - integrity sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw== - dependencies: - "@graphql-tools/utils" "8.6.5" - tslib "~2.3.0" - -"@graphql-tools/merge@^6.2.12": - version "6.2.17" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.17.tgz#4dedf87d8435a5e1091d7cc8d4f371ed1e029f1f" - integrity sha512-G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow== - dependencies: - "@graphql-tools/schema" "^8.0.2" - "@graphql-tools/utils" "8.0.2" - tslib "~2.3.0" - -======= ->>>>>>> f9b03ab02f (fixups) -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -"@graphql-tools/merge@^8.2.1": - version "8.2.1" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.1.tgz#bf83aa06a0cfc6a839e52a58057a84498d0d51ff" - integrity sha512-Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA== - dependencies: - "@graphql-tools/utils" "^8.5.1" - tslib "~2.3.0" - "@graphql-tools/mock@^8.1.2": version "8.5.1" resolved "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.5.1.tgz#379d18eafdcb65486beb8f9247b33b7b693c53aa" @@ -3592,29 +2586,13 @@ relay-compiler "12.0.0" tslib "~2.3.0" -<<<<<<< HEAD -<<<<<<< HEAD -"@graphql-tools/schema@8.3.5": +"@graphql-tools/schema@8.3.5", "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": version "8.3.5" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz#ebec0c0c7f53e591d34375d6f81d0660852fcaca" integrity sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg== -======= -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -"@graphql-tools/schema@8.3.1", "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": - version "8.3.1" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74" - integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ== -<<<<<<< HEAD ->>>>>>> f9b03ab02f (fixups) dependencies: "@graphql-tools/merge" "8.2.6" "@graphql-tools/utils" "8.6.5" -======= - dependencies: - "@graphql-tools/merge" "^8.2.1" - "@graphql-tools/utils" "^8.5.1" ->>>>>>> e5aaf7bb66 (bump dependencies) tslib "~2.3.0" value-or-promise "1.0.11" @@ -3627,16 +2605,6 @@ tslib "~2.2.0" value-or-promise "1.0.6" -"@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.0.2", "@graphql-tools/schema@^8.1.1", "@graphql-tools/schema@^8.1.2", "@graphql-tools/schema@^8.3.1": - version "8.3.1" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz#1ee9da494d2da457643b3c93502b94c3c4b68c74" - integrity sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ== - dependencies: - "@graphql-tools/merge" "^8.2.1" - "@graphql-tools/utils" "^8.5.1" - tslib "~2.3.0" - value-or-promise "1.0.11" - "@graphql-tools/url-loader@^6.0.0": version "6.10.1" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz#dc741e4299e0e7ddf435eba50a1f713b3e763b33" @@ -3662,11 +2630,7 @@ valid-url "1.0.9" ws "7.4.5" -<<<<<<< HEAD -"@graphql-tools/url-loader@^7.0.11": -======= "@graphql-tools/url-loader@^7.0.11", "@graphql-tools/url-loader@^7.4.2": ->>>>>>> e5aaf7bb66 (bump dependencies) version "7.7.0" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.0.tgz#504f0030c75b61bca4ac07da49e8cd872c316972" integrity sha512-mBBb+aJqI4E0MVEzyfi76Pi/G6lGxGTVt/tP1YtKJly7UnonNoWOtDusdL3zIVAGhGgLsNrLbGhLDbwSd6TV6A== @@ -3691,58 +2655,6 @@ value-or-promise "^1.0.11" ws "^8.3.0" -<<<<<<< HEAD -"@graphql-tools/url-loader@^7.4.2": - version "7.5.3" - resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.5.3.tgz#a594be40e3bc68d22f76746356e7f0b8117b7137" - integrity sha512-VKMRJ4TOeVIdulkCLGSBUr4stRRwOGcVRXDeoUF+86K32Ufo0H2V0lz7QwS/bCl8GXV19FMgHZCDl4BMJyOXEA== - dependencies: - "@graphql-tools/delegate" "^8.4.1" - "@graphql-tools/utils" "^8.5.1" - "@graphql-tools/wrap" "^8.3.1" - "@n1ru4l/graphql-live-query" "0.9.0" - "@types/websocket" "1.0.4" - "@types/ws" "^8.0.0" - cross-undici-fetch "^0.0.26" - dset "^3.1.0" - extract-files "11.0.0" - graphql-sse "^1.0.1" - graphql-ws "^5.4.1" - isomorphic-ws "4.0.1" - meros "1.1.4" - subscriptions-transport-ws "^0.11.0" - sync-fetch "0.3.1" - tslib "~2.3.0" - valid-url "1.0.9" - value-or-promise "1.0.11" - ws "8.3.0" - -"@graphql-tools/utils@8.5.3", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.3": - version "8.5.3" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.3.tgz#404062e62cae9453501197039687749c4885356e" - integrity sha512-HDNGWFVa8QQkoQB0H1lftvaO1X5xUaUDk1zr1qDe0xN1NL0E/CrQdJ5UKLqOvH4hkqVUPxQsyOoAZFkaH6rLHg== - dependencies: - tslib "~2.3.0" - -<<<<<<< HEAD -"@graphql-tools/utils@8.6.1", "@graphql-tools/utils@^8.5.4": - version "8.6.1" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" - integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg== -======= -"@graphql-tools/utils@8.5.5": - version "8.5.5" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.5.tgz#019ddb99719feb19602afdb537c06e463df674a9" - integrity sha512-y7zRXWIUI73X+9/rf/0KzrNFMlpRKFfzLiwdbIeWwgLs+NV9vfUOoVkX8luXX6LwQxhSypHATMiwZGM2ro/wJA== ->>>>>>> f9b03ab02f (fixups) - dependencies: - tslib "~2.3.0" - -"@graphql-tools/utils@8.6.5", "@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.5.3", "@graphql-tools/utils@^8.6.0": - version "8.6.5" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.5.tgz#ac04571b03f854c7a938b2ab700516a6c6d32335" - integrity sha512-mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA== -======= "@graphql-tools/utils@8.6.1": version "8.6.1" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" @@ -3750,11 +2662,17 @@ dependencies: tslib "~2.3.0" -"@graphql-tools/utils@8.6.2", "@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.5.3", "@graphql-tools/utils@^8.6.0": +"@graphql-tools/utils@8.6.2": version "8.6.2" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.2.tgz#095408135f091aac68fe18a0a21b708e685500da" integrity sha512-x1DG0cJgpJtImUlNE780B/dfp8pxvVxOD6UeykFH5rHes26S4kGokbgU8F1IgrJ1vAPm/OVBHtd2kicTsPfwdA== ->>>>>>> e5aaf7bb66 (bump dependencies) + dependencies: + tslib "~2.3.0" + +"@graphql-tools/utils@8.6.5", "@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.1", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.5.3", "@graphql-tools/utils@^8.6.0": + version "8.6.5" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.5.tgz#ac04571b03f854c7a938b2ab700516a6c6d32335" + integrity sha512-mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA== dependencies: tslib "~2.3.0" @@ -3767,20 +2685,6 @@ camel-case "4.1.2" tslib "~2.2.0" -"@graphql-tools/utils@^8.0.0": - version "8.6.1" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz#52c7eb108f2ca2fd01bdba8eef85077ead1bf882" - integrity sha512-uxcfHCocp4ENoIiovPxUWZEHOnbXqj3ekWc0rm7fUhW93a1xheARNHcNKhwMTR+UKXVJbTFQdGI1Rl5XdyvDBg== - dependencies: - tslib "~2.3.0" - -"@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.6.0": - version "8.6.0" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.0.tgz#f424256a1f3b87d1dcf6f9f675739b2d3627be33" - integrity sha512-rnk+RHaOCeWnfekeQGRh5ycXK1ZAI7Nm0pbeLjA3SiysTdqhWyxNCp5ON4Mvtlid84OY/KB253fQq/2rotznCA== - dependencies: - tslib "~2.3.0" - "@graphql-tools/wrap@^7.0.4": version "7.0.8" resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz#ad41e487135ca3ea1ae0ea04bb3f596177fb4f50" @@ -3839,8 +2743,7 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@hot-loader/react-dom-v16@npm:@hot-loader/react-dom@^16.0.2", "@hot-loader/react-dom@^16.13.0": - name "@hot-loader/react-dom-v16" +"@hot-loader/react-dom-v16@npm:@hot-loader/react-dom@^16.0.2": version "16.14.0" resolved "https://registry.npmjs.org/@hot-loader/react-dom/-/react-dom-16.14.0.tgz#3cfc64e40bb78fa623e59b582b8f09dcdaad648a" integrity sha512-EN9czvcLsMYmSDo5yRKZOAq3ZGRlDpad1gPtX0NdMMomJXcPE3yFSeFzE94X/NjOaiSVimB7LuqPYpkWVaIi4Q== @@ -4428,9 +3331,9 @@ ioredis "^4.28.5" "@kubernetes/client-node@^0.16.0": - version "0.16.1" - resolved "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.16.1.tgz#c78ef667579777c1a532983922807e228dbc9b90" - integrity sha512-/Ah+3gFSjXFeqDMGGTyYBKug44Eu2D2qowKLdiZqxCkHdSNgy+CNk6FU1Vy80WrTvGkF/CZr4az6O5AopAiJEw== + version "0.16.3" + resolved "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.16.3.tgz#a26a5abbd6e45603b4f75f0baff00e19853e5be7" + integrity sha512-L7IckuyuPfhd+/Urib8MRas9D6sfKEq8IaITYcaE6LlU+Y8MeD7MTbuW6Yb2WdeRuFN8HPSS47mxPnOUNYBXEg== dependencies: "@types/js-yaml" "^4.0.1" "@types/node" "^10.12.0" @@ -4447,9 +3350,9 @@ openid-client "^4.1.1" request "^2.88.0" rfc4648 "^1.3.0" - shelljs "^0.8.4" + shelljs "^0.8.5" stream-buffers "^3.0.2" - tar "^6.0.2" + tar "^6.1.11" tmp-promise "^3.0.2" tslib "^1.9.3" underscore "^1.9.1" @@ -5355,15 +4258,9 @@ integrity sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA== "@microsoft/microsoft-graph-types@^2.6.0": -<<<<<<< HEAD - version "2.13.0" - resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.13.0.tgz#aa584e4897665df5a9c8869a226264cd6ec5882b" - integrity sha512-63FfWBLcyNo8tMP4oPcdqHQvk4ehuWpiUMjVLD7zJXPENIowpdwudP969AALkKzlwsjWImamdivGKd2Zc8Z1Uw== -======= version "2.15.0" resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.15.0.tgz#1705ea1ce84c3de4705957392d7f0e3ae465c9f8" integrity sha512-EyuOpZs55HUoC37Ujrp6IRgE5ghf/wtDrlWuJm7J/DKoB7B/Iek7eXdavTygx2uBeDZ5b4jXXvwl4PiDLlEcsw== ->>>>>>> e5aaf7bb66 (bump dependencies) "@microsoft/tsdoc-config@~0.15.2": version "0.15.2" @@ -5380,10 +4277,10 @@ resolved "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.13.2.tgz#3b0efb6d3903bd49edb073696f60e90df08efb26" integrity sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg== -"@mswjs/cookies@^0.1.6": - version "0.1.6" - resolved "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.6.tgz#176f77034ab6d7373ae5c94bcbac36fee8869249" - integrity sha512-A53XD5TOfwhpqAmwKdPtg1dva5wrng2gH5xMvklzbd9WLTSVU953eCRa8rtrrm6G7Cy60BOGsBRN89YQK0mlKA== +"@mswjs/cookies@^0.1.6", "@mswjs/cookies@^0.1.7": + version "0.1.7" + resolved "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz#d334081b2c51057a61c1dd7b76ca3cac02251651" + integrity sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q== dependencies: "@types/set-cookie-parser" "^2.4.0" set-cookie-parser "^2.4.6" @@ -5400,7 +4297,7 @@ outvariant "^1.2.0" strict-event-emitter "^0.2.0" -"@n1ru4l/graphql-live-query@0.9.0", "@n1ru4l/graphql-live-query@^0.9.0": +"@n1ru4l/graphql-live-query@^0.9.0": version "0.9.0" resolved "https://registry.npmjs.org/@n1ru4l/graphql-live-query/-/graphql-live-query-0.9.0.tgz#defaebdd31f625bee49e6745934f36312532b2bc" integrity sha512-BTpWy1e+FxN82RnLz4x1+JcEewVdfmUhV1C6/XYD5AjS7PQp9QFF7K8bCD6gzPTr2l+prvqOyVueQhFJxB1vfg== @@ -5961,28 +4858,11 @@ fast-deep-equal "^3.1.3" lodash.clonedeep "^4.5.0" -"@opencensus/web-types@0.0.7": - version "0.0.7" - resolved "https://registry.npmjs.org/@opencensus/web-types/-/web-types-0.0.7.tgz#4426de1fe5aa8f624db395d2152b902874f0570a" - integrity sha512-xB+w7ZDAu3YBzqH44rCmG9/RlrOmFuDPt/bpf17eJr8eZSrLt7nc7LnWdxM9Mmoj/YKMHpxRg28txu3TcpiL+g== - -"@opentelemetry/api@^0.10.2": - version "0.10.2" - resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-0.10.2.tgz#9647b881f3e1654089ff7ea59d587b2d35060654" - integrity sha512-GtpMGd6vkzDMYcpu2t9LlhEgMy/SzBwRnz48EejlRArYqZzqSzAsKmegUK7zHgl+EOIaK9mKHhnRaQu3qw20cA== - dependencies: - "@opentelemetry/context-base" "^0.10.2" - "@opentelemetry/api@^1.0.1": version "1.0.4" resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== -"@opentelemetry/context-base@^0.10.2": - version "0.10.2" - resolved "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.10.2.tgz#55bea904b2b91aa8a8675df9eaba5961bddb1def" - integrity sha512-hZNKjKOYsckoOEgBziGMnBcX0M7EtstnCmwz5jZUOUYwlZ+/xxX6z3jPu1XVO2Jivk0eLfuP9GP+vFD49CMetw== - "@panva/asn1.js@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" @@ -6046,13 +4926,6 @@ resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.1.tgz#1e9aad97b964879b54a3909f36f0727befa13e1f" integrity sha512-6k/pU2jNlgYvKOy84vpCAZ8MGVwybvAdjzrh4UicCVOCPxz0LSBws1OE6O5TO4sPHaSw+yLfNzNK8RicGFc1Kw== -"@react-hookz/web@^12.3.0": - version "12.3.0" - resolved "https://registry.npmjs.org/@react-hookz/web/-/web-12.3.0.tgz#a9a1311a15171a57d68a3db61492f913d4fd455a" - integrity sha512-Uujp2RfX/oDEtAbdkV0W/nhiQ5ZYVH+MEq04T7/8TstyiwoIlvsRbEic6c6gQA6sQ/lw93cZ8NP8R7AYjiqDvg== - dependencies: - "@react-hookz/deep-equal" "^1.0.1" - "@react-hookz/web@^13.0.0": version "13.0.0" resolved "https://registry.npmjs.org/@react-hookz/web/-/web-13.0.0.tgz#7c4d54fb4c1edf885879914d719e35086964e46e" @@ -6080,7 +4953,6 @@ resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-3.2.1.tgz#84fbf322485aee3a84101e189161f0687779ec8d" integrity sha512-8UiDeDbjCImFSfOegGu13otQ7OdP9FOYpcLjeouppnhs+MPeIEAtYS+jCcBKmi3reyTagC15/KVSRhde1wS1vg== -<<<<<<< HEAD "@roadiehq/backstage-plugin-buildkite@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-2.0.0.tgz#e5da049a2e15c533228e26da1af537b3783fe5de" @@ -6090,17 +4962,6 @@ "@backstage/core-components" "^0.9.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" -======= -"@roadiehq/backstage-plugin-buildkite@^1.3.8": - version "1.3.8" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-1.3.8.tgz#fa91880e7d95a82d8d532f663cc9415c74dc6143" - integrity sha512-eZW826eMTgy7znkNRQzIhi/mlL6ztYRGq/+kThX3JjoHyGfIxEd+GnR58YEeuvs5dy277SJ/9gm3iibhK9T9sQ== - dependencies: - "@backstage/catalog-model" "^0.9.7" - "@backstage/core-components" "^0.8.0" - "@backstage/core-plugin-api" "^0.6.0" - "@backstage/plugin-catalog-react" "^0.6.5" ->>>>>>> e5aaf7bb66 (bump dependencies) "@backstage/theme" "^0.2.6" "@material-ui/core" "^4.12.1" "@material-ui/icons" "^4.11.2" @@ -6111,7 +4972,6 @@ react-router-dom "6.0.0-beta.0" react-use "^17.2.4" -<<<<<<< HEAD "@roadiehq/backstage-plugin-github-insights@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-2.0.0.tgz#1137f4f3ad5744559bf095ee868371f5fd8c60ec" @@ -6122,18 +4982,6 @@ "@backstage/core-plugin-api" "^1.0.0" "@backstage/integration-react" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" -======= -"@roadiehq/backstage-plugin-github-insights@^1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-1.5.0.tgz#9a693be80adc9f3b9cfe5ba615628abde88e121f" - integrity sha512-r2FclGGF/6aTrT6wH5Xq+5ByfVwgCDt83+KINf1ELNuWt5x0nMtguSTyZqJ5n1AdbGybVJZ84dlfbSTa8RTU7g== - dependencies: - "@backstage/catalog-model" "^0.9.7" - "@backstage/core-components" "^0.8.0" - "@backstage/core-plugin-api" "^0.6.0" - "@backstage/integration-react" "^0.1.10" - "@backstage/plugin-catalog-react" "^0.6.5" ->>>>>>> e5aaf7bb66 (bump dependencies) "@backstage/theme" "^0.2.7" "@date-io/core" "2.10.7" "@material-ui/core" "^4.11.0" @@ -6148,7 +4996,6 @@ react-use "^17.2.4" zustand "3.6.9" -<<<<<<< HEAD "@roadiehq/backstage-plugin-github-pull-requests@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.0.0.tgz#99ba670e1bd9bdc954b43901883aaf9832ae8942" @@ -6158,17 +5005,6 @@ "@backstage/core-components" "^0.9.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" -======= -"@roadiehq/backstage-plugin-github-pull-requests@^1.4.0": - version "1.4.0" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-1.4.0.tgz#3f250c8b13c6b95ec2825f9b7088ea5199054013" - integrity sha512-qrbybOtZdWWWKptGfAvf1vzlwXGcvidWT5Dr6mbibn7GwSxSe4CD58pIEHJzFoT9jLHFGgAn5Uhh2SG/Ek7gbw== - dependencies: - "@backstage/catalog-model" "^0.9.7" - "@backstage/core-components" "^0.8.0" - "@backstage/core-plugin-api" "^0.6.0" - "@backstage/plugin-catalog-react" "^0.6.5" ->>>>>>> e5aaf7bb66 (bump dependencies) "@material-ui/core" "^4.11.0" "@material-ui/icons" "^4.9.1" "@octokit/rest" "^18.5.3" @@ -6181,7 +5017,6 @@ react-router "6.0.0-beta.0" react-use "^17.2.4" -<<<<<<< HEAD "@roadiehq/backstage-plugin-travis-ci@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-2.0.0.tgz#d86eba878bbaa6ada77e9eda932ff25bd9121021" @@ -6191,17 +5026,6 @@ "@backstage/core-components" "^0.9.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" -======= -"@roadiehq/backstage-plugin-travis-ci@^1.3.6": - version "1.3.6" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-1.3.6.tgz#6f45a42bdf39aa6baab56f0c4400990238df1625" - integrity sha512-th+2GaOjkPArDUbTBuhhCz/6WL4gcrVRVAsDHzuSrrJqNtsz6kXdBIHhR/58En16BZ2bnHhRzY87uiUDLjAntA== - dependencies: - "@backstage/catalog-model" "^0.9.7" - "@backstage/core-components" "^0.8.0" - "@backstage/core-plugin-api" "^0.6.0" - "@backstage/plugin-catalog-react" "^0.6.5" ->>>>>>> e5aaf7bb66 (bump dependencies) "@backstage/theme" "^0.2.9" "@material-ui/core" "^4.11.3" "@material-ui/icons" "^4.11.2" @@ -6339,23 +5163,13 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== -"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.8.3": +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": version "1.8.3" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== dependencies: type-detect "4.0.8" -<<<<<<< HEAD -"@sinonjs/commons@^1.7.0": - version "1.7.1" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" - integrity sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ== - dependencies: - type-detect "4.0.8" - -======= ->>>>>>> e5aaf7bb66 (bump dependencies) "@sinonjs/fake-timers@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" @@ -6384,11 +5198,6 @@ resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@spotify/eslint-config-base@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-12.0.0.tgz#0b1e41bb436d5c1c20714703629514d64c3c0f06" - integrity sha512-5Uud/TmzakqmdUNCZpD8JFQRa2VG3dVd3DanSMpU/nVdu6K5LyX8EMU3Tz1vGP18Wih8iAu/sBSJhntNzw7e6w== - "@spotify/eslint-config-base@^13.0.0": version "13.0.0" resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-13.0.0.tgz#bb748bb2b705ffb5085f873aa0daf94dfad59985" @@ -6399,11 +5208,6 @@ resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-12.0.0.tgz#5b8d4bc3b81a8ec2824648f482f1f6c3cf711893" integrity sha512-lNHZRtJesNA273OJHBVUGAg2JYyVDZ+bsT7h3OwnX1HYgejJ3YcKPSziPM8TGFAN8DruH3tHFfaM63uAIA1+uw== -"@spotify/eslint-config-typescript@^12.0.0": - version "12.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#4c7af3f74a47668bec0c860b72e2a0103e78a138" - integrity sha512-nMVll8ZkN/W8+IHn6Iz3YzCKW0qhrn3TVfyxkAr3qmXm5cex+GzyUdZEuxb8rdN2inZL6A1Il2NFfO5p/UKxog== - "@spotify/eslint-config-typescript@^13.0.0": version "13.0.0" resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz#908a51e05de7ec9d2e3b136f9831e0ddb36c7f89" @@ -6428,100 +5232,46 @@ dependencies: loader-utils "^1.1.0" -"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" - integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== - "@svgr/babel-plugin-add-jsx-attribute@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz#bd6d1ff32a31b82b601e73672a789cc41e84fe18" integrity sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA== -"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" - integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== - "@svgr/babel-plugin-remove-jsx-attribute@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz#58654908beebfa069681a83332544b17e5237e89" integrity sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw== -"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" - integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== - "@svgr/babel-plugin-remove-jsx-empty-expression@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz#d06dd6e8a8f603f92f9979bb9990a1f85a4f57ba" integrity sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA== -"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" - integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== - "@svgr/babel-plugin-replace-jsx-attribute-value@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz#0b85837577b02c31c09c758a12932820f5245cee" integrity sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ== -"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" - integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== - "@svgr/babel-plugin-svg-dynamic-title@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz#28236ec26f7ab9d486a487d36ae52d58ba15676f" integrity sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg== -"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" - integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== - "@svgr/babel-plugin-svg-em-dimensions@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz#40267c5dea1b43c4f83a0eb6169e08b43d8bafce" integrity sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA== -"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" - integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== - "@svgr/babel-plugin-transform-react-native-svg@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz#eb688d0a5f539e34d268d8a516e81f5d7fede7c9" integrity sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ== -"@svgr/babel-plugin-transform-svg-component@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" - integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== - "@svgr/babel-plugin-transform-svg-component@^6.2.0": version "6.2.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz#7ba61d9fc1fb42b0ba1a04e4630019fa7e993c4f" integrity sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg== -"@svgr/babel-preset@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" - integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" - "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" - "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" - "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" - "@svgr/babel-plugin-transform-svg-component" "^5.5.0" - "@svgr/babel-preset@^6.2.0": version "6.2.0" resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.2.0.tgz#1d3ad8c7664253a4be8e4a0f0e6872f30d8af627" @@ -6536,15 +5286,6 @@ "@svgr/babel-plugin-transform-react-native-svg" "^6.0.0" "@svgr/babel-plugin-transform-svg-component" "^6.2.0" -"@svgr/core@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" - integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== - dependencies: - "@svgr/plugin-jsx" "^5.5.0" - camelcase "^6.2.0" - cosmiconfig "^7.0.0" - "@svgr/core@^6.2.1": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/core/-/core-6.2.1.tgz#195de807a9f27f9e0e0d678e01084b05c54fdf61" @@ -6554,14 +5295,7 @@ camelcase "^6.2.0" cosmiconfig "^7.0.1" -"@svgr/hast-util-to-babel-ast@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" - integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== - dependencies: - "@babel/types" "^7.12.6" - -"@svgr/hast-util-to-babel-ast@^6.0.0", "@svgr/hast-util-to-babel-ast@^6.2.1": +"@svgr/hast-util-to-babel-ast@^6.2.1": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.2.1.tgz#ae065567b74cbe745afae617053adf9a764bea25" integrity sha512-pt7MMkQFDlWJVy9ULJ1h+hZBDGFfSCwlBNW1HkLnVi7jUhyEXUaGYWi1x6bM2IXuAR9l265khBT4Av4lPmaNLQ== @@ -6569,27 +5303,7 @@ "@babel/types" "^7.15.6" entities "^3.0.1" -"@svgr/plugin-jsx@6.2.x": - version "6.2.0" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.0.tgz#5e41a75b12b34cb66509e63e535606161770ff42" - integrity sha512-QJDEe7K5Hkd4Eewu4pcjiOKTCtjB47Ol6lDLXVhf+jEewi+EKJAaAmM+bNixfW6LSNEg8RwOYQN3GZcprqKfHw== - dependencies: - "@babel/core" "^7.15.5" - "@svgr/babel-preset" "^6.2.0" - "@svgr/hast-util-to-babel-ast" "^6.0.0" - svg-parser "^2.0.2" - -"@svgr/plugin-jsx@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" - integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== - dependencies: - "@babel/core" "^7.12.3" - "@svgr/babel-preset" "^5.5.0" - "@svgr/hast-util-to-babel-ast" "^5.5.0" - svg-parser "^2.0.2" - -"@svgr/plugin-jsx@^6.2.1": +"@svgr/plugin-jsx@6.2.x", "@svgr/plugin-jsx@^6.2.1": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.1.tgz#5668f1d2aa18c2f1bb7a1fc9f682d3f9aed263bd" integrity sha512-u+MpjTsLaKo6r3pHeeSVsh9hmGRag2L7VzApWIaS8imNguqoUwDq/u6U/NDmYs/KAsrmtBjOEaAAPbwNGXXp1g== @@ -6608,29 +5322,6 @@ deepmerge "^4.2.2" svgo "^2.5.0" -"@svgr/plugin-svgo@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" - integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== - dependencies: - cosmiconfig "^7.0.0" - deepmerge "^4.2.2" - svgo "^1.2.2" - -"@svgr/rollup@5.5.x": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/rollup/-/rollup-5.5.0.tgz#9ceaaa6d463916e69aff8a9e10b3bb8fbb94688a" - integrity sha512-EiZmH2VTr+Xzyb6Ga8XtGa9MEbiU3WQnB5vHmqhwAUqibU3uwuwr7MN+QwIh/gtBk1ucMim8BCfcRTlLVREM8A== - dependencies: - "@babel/core" "^7.12.3" - "@babel/plugin-transform-react-constant-elements" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.5" - "@svgr/core" "^5.5.0" - "@svgr/plugin-jsx" "^5.5.0" - "@svgr/plugin-svgo" "^5.5.0" - rollup-pluginutils "^2.8.2" - "@svgr/rollup@6.2.x": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/rollup/-/rollup-6.2.1.tgz#23ac3173d2bd85842ca8858d3435332af1f064ab" @@ -6646,20 +5337,6 @@ "@svgr/plugin-svgo" "^6.2.0" rollup-pluginutils "^2.8.2" -"@svgr/webpack@5.5.x": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" - integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== - dependencies: - "@babel/core" "^7.12.3" - "@babel/plugin-transform-react-constant-elements" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.5" - "@svgr/core" "^5.5.0" - "@svgr/plugin-jsx" "^5.5.0" - "@svgr/plugin-svgo" "^5.5.0" - loader-utils "^2.0.0" - "@svgr/webpack@6.2.x": version "6.2.1" resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.2.1.tgz#ef5d51c1b6be4e7537fb9f76b3f2b2e22b63c58d" @@ -6696,48 +5373,10 @@ "@babel/runtime" "^7.14.6" "@testing-library/dom" "^8.1.0" -<<<<<<< HEAD -"@testing-library/dom@^7.28.1": - version "7.31.2" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" - integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^4.2.0" - aria-query "^4.2.2" - chalk "^4.1.0" - dom-accessibility-api "^0.5.6" - lz-string "^1.4.4" - pretty-format "^26.6.2" - -======= -<<<<<<< HEAD ->>>>>>> f9b03ab02f (fixups) "@testing-library/dom@^8.0.0", "@testing-library/dom@^8.1.0": version "8.11.3" resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz#38fd63cbfe14557021e88982d931e33fb7c1a808" integrity sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA== -======= -"@testing-library/dom@^7.28.1": - version "7.29.6" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.6.tgz#eb37844fb431186db7960a7ff6749ea65a19617c" - integrity sha512-vzTsAXa439ptdvav/4lsKRcGpAQX7b6wBIqia7+iNzqGJ5zjswApxA6jDAsexrc6ue9krWcbh8o+LYkBXW+GCQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^4.2.0" - aria-query "^4.2.2" - chalk "^4.1.0" - dom-accessibility-api "^0.5.4" - lz-string "^1.4.4" - pretty-format "^26.6.2" - -"@testing-library/dom@^8.1.0": - version "8.11.1" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.1.tgz#03fa2684aa09ade589b460db46b4c7be9fc69753" - integrity sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg== ->>>>>>> 76d216e74b (fixups) dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -6749,13 +5388,13 @@ pretty-format "^27.0.2" "@testing-library/jest-dom@^5.10.1": - version "5.14.1" - resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.14.1.tgz#8501e16f1e55a55d675fe73eecee32cdaddb9766" - integrity sha512-dfB7HVIgTNCxH22M1+KU6viG5of2ldoA5ly8Ar8xkezKHKXjRvznCdbMbqjYGgO2xjRbwnR+rR8MLUIqF3kKbQ== + version "5.16.2" + resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz#f329b36b44aa6149cd6ced9adf567f8b6aa1c959" + integrity sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug== dependencies: "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" - aria-query "^4.2.2" + aria-query "^5.0.0" chalk "^3.0.0" css "^3.0.0" css.escape "^1.5.1" @@ -6774,14 +5413,6 @@ "@types/react-test-renderer" ">=16.9.0" react-error-boundary "^3.1.0" -"@testing-library/react@^11.2.5": - version "11.2.6" - resolved "https://registry.npmjs.org/@testing-library/react/-/react-11.2.6.tgz#586a23adc63615985d85be0c903f374dab19200b" - integrity sha512-TXMCg0jT8xmuU8BkKMtp8l7Z50Ykew5WNX8UoIKTaLFwKkP2+1YDhOLA2Ga3wY4x29jyntk7EWfum0kjlYiSjQ== - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^7.28.1" - "@testing-library/react@^12.1.3": version "12.1.4" resolved "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz#09674b117e550af713db3f4ec4c0942aa8bbf2c0" @@ -6792,9 +5423,9 @@ "@types/react-dom" "*" "@testing-library/user-event@^13.1.8": - version "13.1.8" - resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.1.8.tgz#9cbf342b88d837ee188f9f9f4df6d1beaaf179c2" - integrity sha512-M04HgOlJvxILf5xyrkJaEQfFOtcvhy3usLldQIEg9zgFIYQofSmFGVfFlS7BWowqlBGLrItwGMlPXCoBgoHSiw== + version "13.5.0" + resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295" + integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== dependencies: "@babel/runtime" "^7.12.5" @@ -6986,9 +5617,9 @@ integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== "@types/color@^3.0.1": - version "3.0.2" - resolved "https://registry.npmjs.org/@types/color/-/color-3.0.2.tgz#3779043e782f562aa9157b5fc6bd07e14fd8e7f3" - integrity sha512-INiJl6sfNn8iyC5paxVzqiVUEj2boIlFki02uRTAkKwAj++7aAF+ZfEv/XrIeBa0XI/fTZuDHW8rEEcEVnON+Q== + version "3.0.3" + resolved "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz#e6d8d72b7aaef4bb9fe80847c26c7c786191016d" + integrity sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA== dependencies: "@types/color-convert" "*" @@ -7206,15 +5837,7 @@ "@types/eslint" "*" "@types/estree" "*" -"@types/eslint@*": - version "6.1.8" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-6.1.8.tgz#7e868f89bc1e520323d405940e49cb912ede5bba" - integrity sha512-CJBhm9pYdUS8cFVbXACWlLxZWFBTQMiM0eI6RYxng3u9oQ9gHdQ5PN89DHPrK4RISRzX62nRsteUlbBgEIdSug== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/eslint@^7.28.2": +"@types/eslint@*", "@types/eslint@^7.28.2": version "7.29.0" resolved "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== @@ -7237,7 +5860,7 @@ resolved "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.5": +"@types/express-serve-static-core@*", "@types/express-serve-static-core@4.17.28", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.5": version "4.17.28" resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== @@ -7246,15 +5869,6 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express-serve-static-core@4.17.27": - version "4.17.27" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz#7a776191e47295d2a05962ecbb3a4ce97e38b401" - integrity sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/express-session@^1.17.2": version "1.17.4" resolved "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.4.tgz#97a30a35e853a61bdd26e727453b8ed314d6166b" @@ -7270,7 +5884,7 @@ "@types/express" "*" "@types/xml2js" "*" -"@types/express@*", "@types/express@4.17.13", "@types/express@^4.17.6": +"@types/express@*", "@types/express@4.17.13", "@types/express@^4.17.13", "@types/express@^4.17.6": version "4.17.13" resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== @@ -7280,14 +5894,7 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/fs-extra@^9.0.1", "@types/fs-extra@^9.0.3", "@types/fs-extra@^9.0.5": - version "9.0.8" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.8.tgz#32c3c07ddf8caa5020f84b5f65a48470519f78ba" - integrity sha512-bnlTVTwq03Na7DpWxFJ1dvnORob+Otb8xHyUqUWhqvz/Ksg8+JXPlR52oeMSZ37YEOa5PyccbgUNutiQdi13TA== - dependencies: - "@types/node" "*" - -"@types/fs-extra@^9.0.6": +"@types/fs-extra@^9.0.1", "@types/fs-extra@^9.0.3", "@types/fs-extra@^9.0.5", "@types/fs-extra@^9.0.6": version "9.0.13" resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== @@ -7319,9 +5926,9 @@ integrity sha512-tmHO66z/f91JZCDqinj/nNvQEszsz/hBT4+MvCSKT5sDzl5Ld/oXZ8WaecCBjRLw2uWKUInUHM9MhEXWkOiNjw== "@types/git-url-parse@^9.0.0": - version "9.0.0" - resolved "https://registry.npmjs.org/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" - integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== + version "9.0.1" + resolved "https://registry.npmjs.org/@types/git-url-parse/-/git-url-parse-9.0.1.tgz#1c7cc89527ca8b5afcf260ead3b0e4e373c43938" + integrity sha512-Zf9mY4Mz7N3Nyi341nUkOtgVUQn4j6NS4ndqEha/lOgEbTkHzpD7wZuRagYKzrXNtvawWfsrojoC1nhsQexvNA== "@types/glob@*": version "7.1.3" @@ -7396,17 +6003,7 @@ dependencies: "@types/node" "*" -"@types/humanize-duration@^3.18.1": - version "3.18.1" - resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.18.1.tgz#10090d596053703e7de0ac43a37b96cd9fc78309" - integrity sha512-MUgbY3CF7hg/a/jogixmAufLjJBQT7WEf8Q+kYJkOc47ytngg1IuZobCngdTjAgY83JWEogippge5O5fplaQlw== - -"@types/humanize-duration@^3.25.1": - version "3.25.1" - resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.25.1.tgz#b6140d5fc00ff3917b3f521784abef4bc0387ccc" - integrity sha512-WZU/4bb+lvzyDmZzjJtp++9mfKy6B3lH6gGISgkcz6SU8hMILKRM0vi08TxIsb0dQB4Gzo68MWLmctu6xqUi9g== - -"@types/humanize-duration@^3.27.1": +"@types/humanize-duration@^3.18.1", "@types/humanize-duration@^3.25.1", "@types/humanize-duration@^3.27.1": version "3.27.1" resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.27.1.tgz#f14740d1f585a0a8e3f46359b62fda8b0eaa31e7" integrity sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w== @@ -7420,9 +6017,9 @@ rxjs "^6.4.0" "@types/inquirer@^8.1.3": - version "8.1.3" - resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz#dfda4c97cdbe304e4dceb378a80f79448ea5c8fe" - integrity sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ== + version "8.2.0" + resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.0.tgz#b9566d048f5ff65159f2ed97aff45fe0f00b35ec" + integrity sha512-BNoMetRf3gmkpAlV5we+kxyZTle7YibdOntIZbU5pyIfMdcwy784KfeZDAcuyMznkh5OLa17RVXZOGA5LTlkgQ== dependencies: "@types/through" "*" rxjs "^7.2.0" @@ -7517,11 +6114,6 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== -"@types/json-schema@7.0.9": - version "7.0.9" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - "@types/json-stable-stringify@^1.0.32": version "1.0.32" resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz#121f6917c4389db3923640b2e68de5fa64dda88e" @@ -7580,31 +6172,11 @@ resolved "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.3.tgz#ec985618fd2712c010f8edab4f1ae7784ad7c583" integrity sha512-09sXZZVsB3Ib41U0fC+O1O+4UOZT1bl/e+/QubPxpqDWHNEchvx/DEb1KJMOwq6K3MTNzZFoNSzVdR++o1DVnw== -<<<<<<< HEAD "@types/luxon@^2.0.4", "@types/luxon@^2.0.5", "@types/luxon@^2.0.9": version "2.3.0" resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.3.0.tgz#0f4d912c385e47890374cb694da9bc93bacbe2b0" integrity sha512-mWXdRlg+5dWvxU+uaijB2RY5NrJtMEXR6j+D6W66hPuezSVXrQqQvWa/JNHntgEYgjzeoVRrQVmMWAbKjUJiFQ== -======= -"@types/luxon@^2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.4.tgz#f7b5a86ccd843c0ccaddfaedd9ee1081bc1cde3b" - integrity sha512-l3xuhmyF2kBldy15SeY6d6HbK2BacEcSK1qTF1ISPtPHr29JH0C1fndz9ExXLKpGl0J6pZi+dGp1i5xesMt60Q== -<<<<<<< HEAD -"@types/luxon@^2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.5.tgz#29d3b095d55ee50df8f4cf109b16009334d9828e" - integrity sha512-GKrG5v16BOs9XGpouu33hOkAFaiSDi3ZaDXG9F2yAoyzHRBtksZnI60VWY5aM/yAENCccBejrxw8jDY+9OVlxw== - -"@types/luxon@^2.0.9": - version "2.0.9" - resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.9.tgz#782a0edfa6d699191292c13168bd496cd66b87c6" - integrity sha512-ZuzIc7aN+i2ZDMWIiSmMdubR9EMMSTdEzF6R+FckP4p6xdnOYKqknTo/k+xXQvciSXlNGIwA4OPU5X7JIFzYdA== ->>>>>>> 76d216e74b (fixups) - -======= ->>>>>>> e5aaf7bb66 (bump dependencies) "@types/mdast@^3.0.0", "@types/mdast@^3.0.3": version "3.0.3" resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" @@ -7627,12 +6199,7 @@ resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/minimatch@*", "@types/minimatch@^3.0.3": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/minimatch@^3.0.5": +"@types/minimatch@*", "@types/minimatch@^3.0.3", "@types/minimatch@^3.0.5": version "3.0.5" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== @@ -7812,11 +6379,6 @@ dependencies: "@types/node" "*" -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - "@types/qs@*": version "6.9.6" resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" @@ -7828,15 +6390,9 @@ integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== "@types/react-dom@*", "@types/react-dom@>=16.9.0": -<<<<<<< HEAD - version "17.0.9" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" - integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== -======= version "17.0.11" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz#e1eadc3c5e86bdb5f7684e00274ae228e7bcc466" integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@types/react" "*" @@ -7858,9 +6414,9 @@ redux "^4.0.0" "@types/react-sparklines@^1.7.0": - version "1.7.0" - resolved "https://registry.npmjs.org/@types/react-sparklines/-/react-sparklines-1.7.0.tgz#f956d0f7b0e746ad445ce1cd250fe81f8a384684" - integrity sha512-Vd+cME7+Yy3kFNhnid9EBIKiyCQ/at8nqDczIs0UYfIB8AtaRJPqekigv02biOsIbQCvxyvIAIjiTKOC+hHNbA== + version "1.7.2" + resolved "https://registry.npmjs.org/@types/react-sparklines/-/react-sparklines-1.7.2.tgz#c14e80623abd3669a10f18d13f6fb9fbdc322f70" + integrity sha512-N1GwO7Ri5C5fE8+CxhiDntuSw1qYdGytBuedKrCxWpaojXm4WnfygbdBdc5sXGX7feMxDXBy9MNhxoUTwrMl4A== dependencies: "@types/react" "*" @@ -8184,10 +6740,10 @@ resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== -"@types/tunnel@^0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.1.tgz#0d72774768b73df26f25df9184273a42da72b19c" - integrity sha512-AOqu6bQu5MSWwYvehMXLukFHnupHrpZ8nvgae5Ggie9UwzDR1CCwoXgSSWNZJuyOlCdfdsWMA5F2LlmvyoTv8A== +"@types/tunnel@^0.0.3": + version "0.0.3" + resolved "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz#f109e730b072b3136347561fc558c9358bb8c6e9" + integrity sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA== dependencies: "@types/node" "*" @@ -8209,9 +6765,9 @@ "@types/node" "*" "@types/uuid@^8.0.0": - version "8.3.0" - resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" - integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== + version "8.3.4" + resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== "@types/vinyl@^2.0.4": version "2.0.6" @@ -8242,11 +6798,7 @@ dependencies: "@types/node" "*" -<<<<<<< HEAD -"@types/websocket@1.0.4", "@types/websocket@^1.0.4": -======= "@types/websocket@^1.0.4": ->>>>>>> e5aaf7bb66 (bump dependencies) version "1.0.4" resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8" integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA== @@ -8268,9 +6820,9 @@ "@types/node" "*" "@types/xml2js@*", "@types/xml2js@^0.4.7": - version "0.4.8" - resolved "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.8.tgz#84c120c864a5976d0b5cf2f930a75d850fc2b03a" - integrity sha512-EyvT83ezOdec7BhDaEcsklWy7RSIdi6CNe95tmOAK0yx/Lm30C9K75snT3fYayK59ApC2oyW+rcHErdG05FHJA== + version "0.4.9" + resolved "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.9.tgz#a38267d8c2fe121c96922b12ee3bd89a58a6e20e" + integrity sha512-CHiCKIihl1pychwR2RNX5mAYmJDACgFVCMT5OArMaO3erzwXVcBqPcusr+Vl8yeeXukxZqtF8mZioqX+mpjjdw== dependencies: "@types/node" "*" @@ -8316,13 +6868,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.0.tgz#382182d5cb062f52aac54434cfc47c28898c8006" - integrity sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ== + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz#5119b67152356231a0e24b998035288a9cd21335" + integrity sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w== dependencies: - "@typescript-eslint/experimental-utils" "5.9.0" - "@typescript-eslint/scope-manager" "5.9.0" - "@typescript-eslint/type-utils" "5.9.0" + "@typescript-eslint/scope-manager" "5.14.0" + "@typescript-eslint/type-utils" "5.14.0" + "@typescript-eslint/utils" "5.14.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -8330,11 +6882,7 @@ semver "^7.3.5" tsutils "^3.21.0" -<<<<<<< HEAD -"@typescript-eslint/experimental-utils@5.9.0", "@typescript-eslint/experimental-utils@^5.0.0": -======= "@typescript-eslint/experimental-utils@^5.0.0": ->>>>>>> e5aaf7bb66 (bump dependencies) version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz#652762d37d6565ef07af285021b8347b6c79a827" integrity sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g== @@ -8347,56 +6895,23 @@ eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": -<<<<<<< HEAD - version "5.9.1" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.1.tgz#b114011010a87e17b3265ca715e16c76a9834cef" - integrity sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g== + version "5.16.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz#e4de1bde4b4dad5b6124d3da227347616ed55508" + integrity sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA== dependencies: - "@typescript-eslint/scope-manager" "5.9.1" - "@typescript-eslint/types" "5.9.1" - "@typescript-eslint/typescript-estree" "5.9.1" + "@typescript-eslint/scope-manager" "5.16.0" + "@typescript-eslint/types" "5.16.0" + "@typescript-eslint/typescript-estree" "5.16.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz#02dfef920290c1dcd7b1999455a3eaae7a1a3117" - integrity sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg== - dependencies: - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/visitor-keys" "5.9.0" - -"@typescript-eslint/scope-manager@5.9.1": - version "5.9.1" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.1.tgz#6c27be89f1a9409f284d95dfa08ee3400166fe69" - integrity sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ== -======= - version "5.13.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz#0394ed8f2f849273c0bf4b811994d177112ced5c" - integrity sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg== - dependencies: - "@typescript-eslint/scope-manager" "5.13.0" - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/typescript-estree" "5.13.0" - debug "^4.3.2" - -"@typescript-eslint/scope-manager@5.13.0": - version "5.13.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz#cf6aff61ca497cb19f0397eea8444a58f46156b6" - integrity sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA== - dependencies: - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/visitor-keys" "5.13.0" - "@typescript-eslint/scope-manager@5.14.0": version "5.14.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: - "@typescript-eslint/types" "5.9.1" - "@typescript-eslint/visitor-keys" "5.9.1" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/visitor-keys" "5.14.0" -<<<<<<< HEAD "@typescript-eslint/scope-manager@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz#7e7909d64bd0c4d8aef629cdc764b9d3e1d3a69a" @@ -8405,65 +6920,6 @@ "@typescript-eslint/types" "5.16.0" "@typescript-eslint/visitor-keys" "5.16.0" -"@typescript-eslint/type-utils@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.0.tgz#aaf45765de71c6d9707c66ccff76ec2b9aa31bb6" - integrity sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q== -======= -"@typescript-eslint/type-utils@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.9.0.tgz#fd5963ead04bc9b7af9c3a8e534d8d39f1ce5f93" - integrity sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ== ->>>>>>> f9b03ab02f (fixups) - dependencies: - "@typescript-eslint/experimental-utils" "5.9.0" - debug "^4.3.2" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" - integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== - -"@typescript-eslint/types@5.9.1": - version "5.9.1" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.1.tgz#1bef8f238a2fb32ebc6ff6d75020d9f47a1593c6" - integrity sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ== - -"@typescript-eslint/typescript-estree@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz#0e5c6f03f982931abbfbc3c1b9df5fbf92a3490f" - integrity sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw== - dependencies: - "@typescript-eslint/types" "5.9.0" - "@typescript-eslint/visitor-keys" "5.9.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -<<<<<<< HEAD -"@typescript-eslint/types@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" - integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== - -<<<<<<< HEAD -"@typescript-eslint/typescript-estree@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz#cabf545fd592722f0e2b4104711e63bf89525cd2" - integrity sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ== -======= -"@typescript-eslint/typescript-estree@5.9.1": - version "5.9.1" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.1.tgz#d5b996f49476495070d2b8dd354861cf33c005d6" - integrity sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A== ->>>>>>> f9b03ab02f (fixups) - dependencies: - "@typescript-eslint/types" "5.9.1" - "@typescript-eslint/visitor-keys" "5.9.1" -======= "@typescript-eslint/scope-manager@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz#02dfef920290c1dcd7b1999455a3eaae7a1a3117" @@ -8478,53 +6934,41 @@ integrity sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw== dependencies: "@typescript-eslint/utils" "5.14.0" ->>>>>>> e5aaf7bb66 (bump dependencies) debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" tsutils "^3.21.0" -<<<<<<< HEAD -<<<<<<< HEAD -"@typescript-eslint/typescript-estree@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" - integrity sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ== -======= -"@typescript-eslint/types@5.13.0": - version "5.13.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz#da1de4ae905b1b9ff682cab0bed6b2e3be9c04e5" - integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== - "@typescript-eslint/types@5.14.0": version "5.14.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== +"@typescript-eslint/types@5.16.0": + version "5.16.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" + integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== + "@typescript-eslint/types@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== -"@typescript-eslint/typescript-estree@5.13.0": - version "5.13.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz#b37c07b748ff030a3e93d87c842714e020b78141" - integrity sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA== +"@typescript-eslint/typescript-estree@5.14.0": + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" + integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== dependencies: - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/visitor-keys" "5.13.0" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/visitor-keys" "5.14.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" - integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== ->>>>>>> e5aaf7bb66 (bump dependencies) +"@typescript-eslint/typescript-estree@5.16.0": + version "5.16.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" + integrity sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ== dependencies: "@typescript-eslint/types" "5.16.0" "@typescript-eslint/visitor-keys" "5.16.0" @@ -8534,27 +6978,6 @@ semver "^7.3.5" tsutils "^3.21.0" -<<<<<<< HEAD -"@typescript-eslint/utils@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz#92fd3193191621ab863add2f553a7b38b65646af" - integrity sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw== -======= -"@typescript-eslint/visitor-keys@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" - integrity sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw== ->>>>>>> f9b03ab02f (fixups) - dependencies: - "@typescript-eslint/types" "5.9.0" - eslint-visitor-keys "^3.0.0" - -<<<<<<< HEAD -"@typescript-eslint/utils@^5.10.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz#42218b459d6d66418a4eb199a382bdc261650679" - integrity sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ== -======= "@typescript-eslint/typescript-estree@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz#0e5c6f03f982931abbfbc3c1b9df5fbf92a3490f" @@ -8572,7 +6995,18 @@ version "5.14.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4" integrity sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w== ->>>>>>> e5aaf7bb66 (bump dependencies) + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.14.0" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/typescript-estree" "5.14.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/utils@^5.10.0": + version "5.16.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz#42218b459d6d66418a4eb199a382bdc261650679" + integrity sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ== dependencies: "@types/json-schema" "^7.0.9" "@typescript-eslint/scope-manager" "5.16.0" @@ -8581,44 +7015,30 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -<<<<<<< HEAD -"@typescript-eslint/visitor-keys@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz#1ac9352ed140b07ba144ebf371b743fdf537ec16" - integrity sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg== -======= -"@typescript-eslint/visitor-keys@5.9.1": - version "5.9.1" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.1.tgz#f52206f38128dd4f675cf28070a41596eee985b7" - integrity sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg== ->>>>>>> f9b03ab02f (fixups) +"@typescript-eslint/visitor-keys@5.14.0": + version "5.14.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" + integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== dependencies: - "@typescript-eslint/types" "5.9.1" + "@typescript-eslint/types" "5.14.0" eslint-visitor-keys "^3.0.0" "@typescript-eslint/visitor-keys@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz#f27dc3b943e6317264c7492e390c6844cd4efbbb" integrity sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g== -======= -"@typescript-eslint/visitor-keys@5.13.0": - version "5.13.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz#f45ff55bcce16403b221ac9240fbeeae4764f0fd" - integrity sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g== - dependencies: - "@typescript-eslint/types" "5.13.0" - eslint-visitor-keys "^3.0.0" - -"@typescript-eslint/visitor-keys@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" - integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@typescript-eslint/types" "5.16.0" eslint-visitor-keys "^3.0.0" -<<<<<<< HEAD +"@typescript-eslint/visitor-keys@5.9.0": + version "5.9.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" + integrity sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw== + dependencies: + "@typescript-eslint/types" "5.9.0" + eslint-visitor-keys "^3.0.0" + "@uiw/react-codemirror@^4.5.1": version "4.5.1" resolved "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.5.1.tgz#f2af4e761f13b729a3ec7c7c858b34432cdf46a7" @@ -8629,15 +7049,6 @@ "@codemirror/state" "^0.19.9" "@codemirror/theme-one-dark" "^0.19.1" "@codemirror/view" "^0.19.45" -======= -"@typescript-eslint/visitor-keys@5.9.0": - version "5.9.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" - integrity sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw== - dependencies: - "@typescript-eslint/types" "5.9.0" - eslint-visitor-keys "^3.0.0" ->>>>>>> e5aaf7bb66 (bump dependencies) "@webassemblyjs/ast@1.11.1": version "1.11.1" @@ -8798,12 +7209,7 @@ a-sync-waterfall@^1.0.0: resolved "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7" integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== -abab@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" - integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== - -abab@^2.0.5: +abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== @@ -8866,7 +7272,7 @@ acorn@^7.1.1: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.0: +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0: version "8.7.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== @@ -8886,14 +7292,7 @@ after@0.8.2: resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= -agent-base@6: - version "6.0.1" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" - integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== - dependencies: - debug "4" - -agent-base@^6.0.2: +agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -8947,32 +7346,19 @@ ajv@^6.10.0, ajv@^6.10.1, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv uri-js "^4.2.2" ajv@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" - integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== + version "7.2.4" + resolved "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz#8e239d4d56cf884bccca8cca362f508446dc160f" + integrity sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -<<<<<<< HEAD -<<<<<<< HEAD ajv@^8.0.0, ajv@^8.10.0, ajv@^8.8.0: version "8.10.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== -======= -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -ajv@^8.0.0, ajv@^8.8.0: - version "8.9.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz#738019146638824dea25edcf299dcba1b0e7eb18" - integrity sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ== -<<<<<<< HEAD ->>>>>>> f9b03ab02f (fixups) -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -9111,13 +7497,13 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apollo-datasource@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.0.tgz#ee84a802c45818e6a21a5f2d427f94851a4f9ebe" - integrity sha512-It8POTZTOCAnedRj2izEVeySN06LIfojigZjWaOY7voLe0DIgtvhql91xr27fuIWsR/Ew9twO3dLBjjvy34J4Q== +apollo-datasource@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.1.tgz#a1168dd68371930de3ed4245ad12fa8600efe2cc" + integrity sha512-Z3a8rEUXVPIZ1p8xrFL8bcNhWmhOmovgDArvwIwmJOBnh093ZpRfO+ESJEDAN4KswmyzCLDAwjsW4zQOONdRUw== dependencies: apollo-server-caching "^3.3.0" - apollo-server-env "^4.2.0" + apollo-server-env "^4.2.1" apollo-reporting-protobuf@^3.3.1: version "3.3.1" @@ -9133,32 +7519,16 @@ apollo-server-caching@^3.3.0: dependencies: lru-cache "^6.0.0" -<<<<<<< HEAD -<<<<<<< HEAD apollo-server-core@^3.6.4, apollo-server-core@^3.6.5: version "3.6.5" resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.5.tgz#f8a30bab49d7ccbd9500b85968accae0d8631927" integrity sha512-9lOTHnJnPV4TiVwt4DMl3HDWGebHxoJIU2tonOuIkRxOUjwCjsDsHfkIrPA3vutmXIb7R3OPxh/mofdDpm7DjQ== -======= -apollo-server-core@^3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.1.tgz#e835198a2eda5bcb61d2a1174d44ecb0ac414d15" - integrity sha512-V2Us5x7d+w8dVdyFLxEygMgaQ3KZ6Z59HpaQBNHQ7C5wVZhjUXIsgbehBtfzQbMpyMx0z5/8Z8eIrC4zNoGJDw== ->>>>>>> f9b03ab02f (fixups) -======= -apollo-server-core@^3.6.3: - version "3.6.3" - resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.3.tgz#6b12ffa1af8bc8799930f72360090834915033d1" - integrity sha512-TFJmAlI6vPp1MHOSXqYkE6leAyMekWv/D/3ma11uETkcd3EPjERGmxtTXPJElMVEkOK9BEElYKthCrH7bjYLuw== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@apollographql/apollo-tools" "^0.5.1" "@apollographql/graphql-playground-html" "1.6.29" "@graphql-tools/mock" "^8.1.2" "@graphql-tools/schema" "^8.0.0" - "@graphql-tools/utils" "^8.0.0" "@josephg/resolvable" "^1.0.0" -<<<<<<< HEAD apollo-datasource "^3.3.1" apollo-reporting-protobuf "^3.3.1" apollo-server-caching "^3.3.0" @@ -9166,15 +7536,6 @@ apollo-server-core@^3.6.3: apollo-server-errors "^3.3.1" apollo-server-plugin-base "^3.5.2" apollo-server-types "^3.5.2" -======= - apollo-datasource "^3.3.0" - apollo-reporting-protobuf "^3.3.0" - apollo-server-caching "^3.3.0" - apollo-server-env "^4.2.0" - apollo-server-errors "^3.3.0" - apollo-server-plugin-base "^3.5.0" - apollo-server-types "^3.5.0" ->>>>>>> f9b03ab02f (fixups) async-retry "^1.2.1" fast-json-stable-stringify "^2.1.0" graphql-tag "^2.11.0" @@ -9184,60 +7545,35 @@ apollo-server-core@^3.6.3: sha.js "^2.4.11" uuid "^8.0.0" -apollo-server-env@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.0.tgz#d7cb08a81cee3025cd47b08be80b359d61d85913" - integrity sha512-4xJ+PCoWsFLj4rU6iXrIhqD7nI42goi4Iqrhsof9680ljSzkzd+PCwZsja3mHOFXKUQQUvJ7StVSgwaiRu45+A== +apollo-server-env@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" + integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== dependencies: - node-fetch "^2.6.1" + node-fetch "^2.6.7" -apollo-server-errors@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.0.tgz#ac8ceb1400064312f983d8d70195693fbcf2be3c" - integrity sha512-9/MNlPZBbEjcCdJcUSbKbVEBT9xZS8GSpX7T/TyzcxHSbsXJszSDSipQNGC+PRKTKAUnv61IONScVyLKEZ5XEQ== +apollo-server-errors@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" + integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== -<<<<<<< HEAD -<<<<<<< HEAD apollo-server-express@^3.0.0, apollo-server-express@^3.6.4: version "3.6.5" resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.5.tgz#e623ee6f2e2d4cc2b4075baf7624a899a21ec1a6" integrity sha512-mV1Dif//BUq1WFlCWfaSlhsuxhcJ/gGD8HdQ6/s3JEspStS7SgmeSUIwJYl3vw8IA/8j7GNg/EINkc57x2UbdA== -======= -apollo-server-express@^3.0.0, apollo-server-express@^3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.1.tgz#b8bda303e05c551ac76c9c0b26bc651ca1466912" - integrity sha512-29imWvRPn5GsQq02Akt0+jejpWzpOIZfUmgoiFm4YB7somvhDNw15Pu7fv4sISK8ehNIDF68IpLd2cpY8sCkYQ== ->>>>>>> f9b03ab02f (fixups) -======= -apollo-server-express@^3.0.0, apollo-server-express@^3.6.3: - version "3.6.3" - resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.3.tgz#5daf58bf0bdf0107ded7cd52c7e6ce6cd32c8b44" - integrity sha512-3CjahZ+n+1T7pHH1qW1B6Ns0BzwOMeupAp2u0+M8ruOmE/e7VKn0OSOQQckZ8Z2AcWxWeno9K89fIv3PoSYgYA== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@types/accepts" "^1.3.5" "@types/body-parser" "1.19.2" "@types/cors" "2.8.12" "@types/express" "4.17.13" - "@types/express-serve-static-core" "4.17.27" + "@types/express-serve-static-core" "4.17.28" accepts "^1.3.5" -<<<<<<< HEAD -<<<<<<< HEAD apollo-server-core "^3.6.5" apollo-server-types "^3.5.2" -======= - apollo-server-core "^3.6.1" - apollo-server-types "^3.5.0" ->>>>>>> f9b03ab02f (fixups) -======= - apollo-server-core "^3.6.3" - apollo-server-types "^3.5.1" ->>>>>>> e5aaf7bb66 (bump dependencies) body-parser "^1.19.0" cors "^2.8.5" parseurl "^1.3.3" -<<<<<<< HEAD apollo-server-plugin-base@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.2.tgz#18a08353f5ea207a07f2c1e66dd7ef2335ce8c84" @@ -9249,49 +7585,18 @@ apollo-server-types@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.2.tgz#903d499a70b9010764cbab4d704ddb8c086aa06f" integrity sha512-vhcbIWsBkoNibABOym4AAPBoNDjokhjUQokKYdwZMeqrb850PMQdNJFrGyXT5onP408Ghv4O8PfgBuPQmeJhVQ== -======= -apollo-server-plugin-base@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.0.tgz#f3cb4f677152b60113f06f8d23b6234ecff847b4" - integrity sha512-dpi+W6wexT4H3cjIhxC9SJABkR8TCfxycoHK+U4jxQXUdg50da+KnMgoWlQbF1tuXtUs4gnJtij1RjuGtKwBhw== - dependencies: - apollo-server-types "^3.5.0" - -apollo-server-types@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.0.tgz#82f912d7765152fe1fde86cea8a076e9a0831a9d" - integrity sha512-4JaZNu1kjrzIbppgc78hhIe2DFe+XONf8grprcjTOe0v8dIsuV0tFUnl+awTvTpHU1sdjRCKwnj382BebiL+qw== ->>>>>>> f9b03ab02f (fixups) dependencies: apollo-reporting-protobuf "^3.3.1" apollo-server-caching "^3.3.0" - apollo-server-env "^4.2.0" + apollo-server-env "^4.2.1" apollo-server@^3.0.0: -<<<<<<< HEAD -<<<<<<< HEAD version "3.6.4" resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.6.4.tgz#e1bc966eb7d03944274056af4b17b380f0ac8696" integrity sha512-PIEDWtfiiiKt0uEMJ7/qiyULPat/ichDN/h9GrrroOFiz/tfU/yJXuHpoq8R/uzVyn4GpEc4OoibC2zOr59zig== dependencies: apollo-server-core "^3.6.4" apollo-server-express "^3.6.4" -======= - version "3.6.1" - resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.6.1.tgz#29420b1c0cddbf2e18147a3ca7299485f17137a2" - integrity sha512-Y2MY2/WvaTiofVoIR5ZIYt6c6wX8klZRaXI9x+7JBiFV9HMcOuLLpU3+P4r2EVXuN1LLe82m1PgiAYr+a1OmQg== - dependencies: - apollo-server-core "^3.6.1" - apollo-server-express "^3.6.1" ->>>>>>> f9b03ab02f (fixups) -======= - version "3.6.3" - resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.6.3.tgz#0ba0ddb2835ccf27056d20b6f5b83b0ce9545a79" - integrity sha512-kNvOiDNkIaO+MsfR9v40Vz4ArlDdc9VwVKGJy5dniLW9AoDa/tSF99m8ItfGoMypqlRPMgrNGxkMuToBnvYXNQ== - dependencies: - apollo-server-core "^3.6.3" - apollo-server-express "^3.6.3" ->>>>>>> e5aaf7bb66 (bump dependencies) express "^4.17.1" aproba@^1.0.3: @@ -9633,24 +7938,18 @@ available-typed-arrays@^1.0.2: array-filter "^1.0.0" aws-sdk-mock@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/aws-sdk-mock/-/aws-sdk-mock-5.2.1.tgz#126d4d5362c96b7d1d0bd87708a99d626c19ffd4" - integrity sha512-dY7zA1p/lX335V4/aOJ2L8ggXC3a5zokTJFZlZVW3uU+Zej7u+V7WrEcN5TVaJAnk4auT263T6EK/OHW4WjKhw== + version "5.6.2" + resolved "https://registry.npmjs.org/aws-sdk-mock/-/aws-sdk-mock-5.6.2.tgz#664771462953ca8d3806d5a50a63b4a6dbd5290f" + integrity sha512-GRJg8kjRJFLm2aLiPkYSqe/RreHqlqncAeFtWdAbtSxzBdct9EaV6rqSqjyWXKNJG45Rzn2Ojo3F6qVIgkQnSg== dependencies: aws-sdk "^2.928.0" sinon "^11.1.1" traverse "^0.6.6" aws-sdk@^2.840.0, aws-sdk@^2.928.0, aws-sdk@^2.948.0: -<<<<<<< HEAD - version "2.1065.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1065.0.tgz#82b6e4e2a6fbccb1767339e309edd4f0daa958e6" - integrity sha512-OFvpXoL104dTFKpU14ILcLDPAlDbkJNIKXnnG2pK+2x++CvzIRJeNyERtUuEo7QMUOwq5U4nIQJKSPt5fBC/HA== -======= - version "2.1088.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1088.0.tgz#e8ea761eff2b5c42aca6136c5a01fa9b8066f0a2" - integrity sha512-KtGJTvMPJL6QynasbSMNvz7Onc5ejebY6NzuUvgrw6sNohNJDR/3J/0e016ocQwvEq79MNK4v4EsxNi9eMELtg== ->>>>>>> e5aaf7bb66 (bump dependencies) + version "2.1095.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1095.0.tgz#7847493b09a326a0613010ed9db53302f760edf6" + integrity sha512-OrZq2pTDsnfOJYsAdRlw+NXTGLQYqWldSZR3HugW8JT4JPWyFZrgB2yPP2ElFHX+4J4SZg5QvkAXl/7s9gLTgA== dependencies: buffer "4.9.2" events "1.1.1" @@ -9953,16 +8252,7 @@ bdd-lazy-var@^2.6.0: resolved "https://registry.npmjs.org/bdd-lazy-var/-/bdd-lazy-var-2.6.1.tgz#ca03fb36d68c5a507c0ba9a4d53160b899e6b7cb" integrity sha512-X3ADwcFji/IHIrYJhTTpaiWhoOx4pl4whdAx1dmvdeUPsMUb7fVYFvf/Q33VEAEAVkEwi5rgNSZ0Y9oOVeQV+A== -<<<<<<< HEAD -before-after-hook@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" - integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== - -before-after-hook@^2.2.0: -======= before-after-hook@^2.1.0, before-after-hook@^2.2.0: ->>>>>>> e5aaf7bb66 (bump dependencies) version "2.2.2" resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== @@ -9992,17 +8282,10 @@ bfj@^7.0.2: hoopy "^0.1.4" tryer "^1.0.1" -<<<<<<< HEAD big-integer@^1.6.16, big-integer@^1.6.17: version "1.6.51" resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== -======= -big-integer@^1.6.17: - version "1.6.48" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" - integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== ->>>>>>> 76d216e74b (fixups) big.js@^5.2.2: version "5.2.2" @@ -10128,7 +8411,7 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= @@ -10408,11 +8691,6 @@ bytes@3.0.0: resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== - bytes@3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -10529,11 +8807,11 @@ camelcase-keys@^6.2.2: quick-lru "^4.0.1" camelcase-keys@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.1.tgz#5a57e6dfb3f6c7929dad15599ee4476a7e9a3b2d" - integrity sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA== + version "7.0.2" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" + integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== dependencies: - camelcase "^6.2.0" + camelcase "^6.3.0" map-obj "^4.1.0" quick-lru "^5.1.1" type-fest "^1.2.1" @@ -10553,10 +8831,10 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-api@^3.0.0: version "3.0.0" @@ -10568,22 +8846,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -<<<<<<< HEAD -caniuse-lite@^1.0.0: - version "1.0.30001282" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" - integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== - -caniuse-lite@^1.0.30001286: - version "1.0.30001296" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001296.tgz#d99f0f3bee66544800b93d261c4be55a35f1cec8" - integrity sha512-WfrtPEoNSoeATDlf4y3QvkwiELl9GyPLISV5GejTbbQRtQx4LhsXmc9IQ6XCL2d7UxCyEzToEZNMeqR79OUw8Q== -======= caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286: version "1.0.30001315" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001315.tgz#f1b1efd1171ee1170d52709a7252632dacbd7c77" integrity sha512-5v7LFQU4Sb/qvkz7JcZkvtSH1Ko+1x2kgo3ocdBeMGZSOFpuE1kkm0kpTwLtWeFrw5qw08ulLxJjVIXIS8MkiQ== ->>>>>>> e5aaf7bb66 (bump dependencies) canvas@^2.6.1: version "2.9.0" @@ -11019,15 +9285,6 @@ co@^4.6.0: resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - code-error-fragment@0.0.230: version "0.0.230" resolved "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7" @@ -11038,13 +9295,13 @@ code-point-at@^1.0.0: resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codemirror-graphql@^1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.2.11.tgz#337b9348ec649e08627fcb158c6c497a2c1a3d57" - integrity sha512-pB3LVgrwj+qfO1vaVvnzTYBKhkms1hU/t0fiOM7tiov/Kq+l1BXCgYJyh5/muGDxpz7hqzg/fWJwIYNi40kLiA== +codemirror-graphql@^1.2.13: + version "1.2.13" + resolved "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.2.13.tgz#2525141b2ea8e54b78aea91cc8b85693bbcb17d9" + integrity sha512-7I2qPHxoTndvDNBkaoYYbL2S6A6JAMXBA17ZFcIWAj7A0V/NEg0aPSxhwNRK1yLmC+3XI9OR4BjZTiPxrA2gBA== dependencies: "@codemirror/stream-parser" "^0.19.2" - graphql-language-service "^4.1.4" + graphql-language-service "^5.0.0" codemirror@^5.58.2: version "5.63.3" @@ -11103,17 +9360,10 @@ color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -<<<<<<< HEAD -color-string@^1.5.2, color-string@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" - integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== -======= color-string@^1.5.2, color-string@^1.9.0: version "1.9.0" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -11132,12 +9382,12 @@ color@3.0.x: color-string "^1.5.2" color@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/color/-/color-4.0.1.tgz#21df44cd10245a91b1ccf5ba031609b0e10e7d67" - integrity sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA== + version "4.2.1" + resolved "https://registry.npmjs.org/color/-/color-4.2.1.tgz#498aee5fce7fc982606c8875cab080ac0547c884" + integrity sha512-MFJr0uY4RvTQUKvPq7dh9grVOTYSFeXja2mBXioCGjnjJoXrAp9jJ1NQTDR73c9nwBSAQiNKloKl5zq9WB9UPw== dependencies: color-convert "^2.0.1" - color-string "^1.6.0" + color-string "^1.9.0" colord@^2.9.1: version "2.9.1" @@ -11154,7 +9404,7 @@ colors@1.0.3: resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= -colors@1.4.0, colors@^1.1.2: +colors@1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -11242,16 +9492,11 @@ common-ancestor-path@^1.0.1: resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== -common-tags@1.8.2: +common-tags@1.8.2, common-tags@^1.8.0: version "1.8.2" resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== -common-tags@^1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -11339,16 +9584,6 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - concat-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" @@ -11589,34 +9824,21 @@ core-js-compat@^3.20.0, core-js-compat@^3.20.2: browserslist "^4.19.1" semver "7.0.0" -core-js-pure@^3.20.2: - version "3.20.2" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz#5d263565f0e34ceeeccdc4422fae3e84ca6b8c0f" - integrity sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg== - -core-js-pure@^3.6.5: - version "3.16.2" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.2.tgz#0ef4b79cabafb251ea86eb7d139b42bd98c533e8" - integrity sha512-oxKe64UH049mJqrKkynWp6Vu0Rlm/BTXO/bJZuN2mmR3RtOFNepLlSWDd1eo16PzHpQAoNG97rLU1V/YxesJjw== +core-js-pure@^3.20.2, core-js-pure@^3.6.5: + version "3.21.1" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51" + integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ== core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.10: version "2.6.12" resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.4.1: +core-js@^3.4.1, core-js@^3.6.5: version "3.21.1" resolved "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== -<<<<<<< HEAD -core-js@^3.6.5: - version "3.20.3" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz#c710d0a676e684522f3db4ee84e5e18a9d11d69a" - integrity sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag== - -======= ->>>>>>> e5aaf7bb66 (bump dependencies) core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -11760,11 +9982,7 @@ cross-fetch@3.1.4: dependencies: node-fetch "2.6.1" -<<<<<<< HEAD -cross-fetch@3.1.5, cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.3, cross-fetch@^3.1.4, cross-fetch@^3.1.5: -======= cross-fetch@3.1.5, cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.3, cross-fetch@^3.1.5: ->>>>>>> e5aaf7bb66 (bump dependencies) version "3.1.5" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -11810,33 +10028,17 @@ cross-undici-fetch@^0.0.20: node-fetch "^2.6.5" undici "^4.9.3" -<<<<<<< HEAD -cross-undici-fetch@^0.0.26: - version "0.0.26" - resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.0.26.tgz#29d93d56609f4d2334f9d5333d23ef7a242842a7" - integrity sha512-aMDRrLbWr0TGXfY92stlV+XOGpskeqFmWmrKSWsnc8w6gK5LPE83NBh7O7N6gCb2xjwHcm1Yn2nBXMEVH2RBcA== - dependencies: - abort-controller "^3.0.0" - form-data "^4.0.0" - node-fetch "^2.6.5" - undici "^4.9.3" - -cross-undici-fetch@^0.1.4: - version "0.1.13" - resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.13.tgz#807d17ce5c524c21bc0a6486e97ecccb901c6529" - integrity sha512-nF+g932BrKPoK0RZQKRA9S2IKXeveGPJlaUWXyUEGjjSpAdxBhEHDrMDbiksP2iSNe8O5vn1bN3tTvrd6+yFSg== -======= cross-undici-fetch@^0.1.4: version "0.1.25" resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.25.tgz#8c6826dd0ffbb45fcb1a554be5984e0eaef7f3ba" integrity sha512-KS6hm/VuRO+3jIrg4uidz3mQ8NWvCbiTTOg3yoH30zuGVUvjqZlnXw66h0kuzyfP21hDkrdIbufXCW6BAQdSNw== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: abort-controller "^3.0.0" form-data-encoder "^1.7.1" formdata-node "^4.3.1" - node-fetch "^2.6.5" + node-fetch "^2.6.7" undici "^4.9.3" + web-streams-polyfill "^3.2.0" crypto-browserify@^3.11.0: version "3.12.0" @@ -11892,12 +10094,12 @@ css-in-js-utils@^2.0.0: isobject "^3.0.1" css-loader@^6.5.1: - version "6.6.0" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz#c792ad5510bd1712618b49381bd0310574fafbd3" - integrity sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg== + version "6.7.1" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e" + integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== dependencies: icss-utils "^5.1.0" - postcss "^8.4.5" + postcss "^8.4.7" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" @@ -11905,26 +10107,10 @@ css-loader@^6.5.1: postcss-value-parser "^4.2.0" semver "^7.3.5" -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - css-select@^4.1.3: version "4.1.3" resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== -<<<<<<< HEAD dependencies: boolbase "^1.0.0" css-what "^5.0.0" @@ -11932,31 +10118,7 @@ css-select@^4.1.3: domutils "^2.6.0" nth-check "^2.0.0" -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" - integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" -======= - dependencies: - boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" ->>>>>>> e5aaf7bb66 (bump dependencies) - -css-tree@^1.1.3: +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -11977,14 +10139,6 @@ css-vendor@^2.0.8: "@babel/runtime" "^7.8.3" is-in-browser "^1.0.2" -<<<<<<< HEAD -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -======= ->>>>>>> e5aaf7bb66 (bump dependencies) css-what@^5.0.0: version "5.1.0" resolved "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" @@ -12064,7 +10218,7 @@ cssnano@^5.0.1: lilconfig "^2.0.3" yaml "^1.10.2" -csso@^4.0.2, csso@^4.2.0: +csso@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== @@ -12081,7 +10235,7 @@ cssom@~0.3.6: resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssstyle@^2.2.0, cssstyle@^2.3.0: +cssstyle@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== @@ -12414,14 +10568,6 @@ d3-zoom@^3.0.0: d3-selection "2 - 3" d3-transition "2 - 3" -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - dagre@^0.8.5: version "0.8.5" resolved "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" @@ -12560,14 +10706,6 @@ decimal.js-light@^2.4.1: version "2.5.0" resolved "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.0.tgz#ca7faf504c799326df94b0ab920424fdfc125348" integrity sha512-b3VJCbd2hwUpeRGG3Toob+CRo8W22xplipNhP3tN7TSVB/cyMX71P1vM2Xjc9H74uV6dS2hDDmo/rHq8L87Upg== -<<<<<<< HEAD - -decimal.js@^10.2.0: - version "10.2.0" - resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" - integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) decimal.js@^10.2.1: version "10.3.1" @@ -12624,7 +10762,7 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@0.6.0, deep-extend@^0.6.0, deep-extend@~0.6.0: +deep-extend@0.6.0, deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== @@ -12634,7 +10772,7 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@^4.2.2: +deepmerge@^4.2.2, deepmerge@~4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== @@ -12799,26 +10937,15 @@ detect-newline@^3.0.0: resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -<<<<<<< HEAD -<<<<<<< HEAD -detect-node@^2.0.4, detect-node@^2.1.0: -======= detect-node@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== detect-node@^2.1.0: ->>>>>>> e5aaf7bb66 (bump dependencies) version "2.1.0" resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -======= -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== ->>>>>>> 76d216e74b (fixups) detect-port-alt@^1.1.6: version "1.1.6" @@ -12958,15 +11085,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.4, dom-accessibility-api@^0.5.6: - version "0.5.6" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9" - integrity sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw== - -dom-accessibility-api@^0.5.9: - version "0.5.10" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz#caa6d08f60388d0bb4539dd75fe458a9a1d0014c" - integrity sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g== +dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: + version "0.5.13" + resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b" + integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw== dom-converter@^0.2.0: version "0.2.0" @@ -12989,17 +11111,6 @@ dom-helpers@^5.0.1: dependencies: "@babel/runtime" "^7.8.7" csstype "^2.6.7" -<<<<<<< HEAD - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dom-serializer@^1.0.1: version "1.2.0" @@ -13020,17 +11131,7 @@ domain-browser@^1.1.1: resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1, domelementtype@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== - -domelementtype@^2.2.0: +domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== @@ -13042,24 +11143,10 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -<<<<<<< HEAD -domhandler@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" - integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== - dependencies: - domelementtype "^2.1.0" - -domhandler@^4.2.0: - version "4.2.2" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" - integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== -======= domhandler@^4.0.0, domhandler@^4.2.0: version "4.3.0" resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: domelementtype "^2.2.0" @@ -13073,17 +11160,6 @@ dompurify@^2.2.7, dompurify@^2.2.9, dompurify@^2.3.6: resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.3.6.tgz#2e019d7d7617aacac07cbbe3d88ae3ad354cf875" integrity sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg== -<<<<<<< HEAD -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -======= ->>>>>>> e5aaf7bb66 (bump dependencies) domutils@^2.5.2, domutils@^2.6.0: version "2.8.0" resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" @@ -13316,28 +11392,15 @@ engine.io@~3.5.0: engine.io-parser "~2.2.0" ws "~7.4.2" -<<<<<<< HEAD -<<<<<<< HEAD enhanced-resolve@^5.9.2: version "5.9.2" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9" integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== -======= -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -enhanced-resolve@^5.8.3: - version "5.8.3" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" - integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== -<<<<<<< HEAD ->>>>>>> f9b03ab02f (fixups) -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.0: +enquirer@^2.3.0, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -13398,33 +11461,7 @@ error@^10.4.0: resolved "https://registry.npmjs.org/error/-/error-10.4.0.tgz#6fcf0fd64bceb1e750f8ed9a3dd880f00e46a487" integrity sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw== -<<<<<<< HEAD -es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1: -======= es-abstract@^1.17.0-next.1, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.1: ->>>>>>> e5aaf7bb66 (bump dependencies) version "1.19.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -13464,109 +11501,75 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -<<<<<<< HEAD -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.53" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" +esbuild-android-64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz#b868bbd9955a92309c69df628d8dd1945478b45c" + integrity sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ== -es6-iterator@^2.0.3, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" +esbuild-android-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz#e7d6430555e8e9c505fd87266bbc709f25f1825c" + integrity sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ== -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" +esbuild-darwin-64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz#4dc7484127564e89b4445c0a560a3cb50b3d68e1" + integrity sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g== -es6-weak-map@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" +esbuild-darwin-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz#469e59c665f84a8ed323166624c5e7b9b2d22ac1" + integrity sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -esbuild-android-arm64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz#fb051169a63307d958aec85ad596cfc7d7770303" - integrity sha512-k1Uu4uC4UOFgrnTj2zuj75EswFSEBK+H6lT70/DdS4mTAOfs2ECv2I9ZYvr3w0WL0T4YItzJdK7fPNxcPw6YmQ== +esbuild-freebsd-64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz#895df03bf5f87094a56c9a5815bf92e591903d70" + integrity sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA== -esbuild-darwin-64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.22.tgz#615ea0a9de67b57a293a7128d7ac83ee307a856d" - integrity sha512-d8Ceuo6Vw6HM3fW218FB6jTY6O3r2WNcTAU0SGsBkXZ3k8SDoRLd3Nrc//EqzdgYnzDNMNtrWegK2Qsss4THhw== +esbuild-freebsd-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz#0b72a41a6b8655e9a8c5608f2ec1afdcf6958441" + integrity sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA== -esbuild-darwin-arm64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.22.tgz#82054dcfcecb15ccfd237093b8008e7745a99ad9" - integrity sha512-YAt9Tj3SkIUkswuzHxkaNlT9+sg0xvzDvE75LlBo4DI++ogSgSmKNR6B4eUhU5EUUepVXcXdRIdqMq9ppeRqfw== +esbuild-linux-32@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz#43b8ba3803b0bbe7f051869c6a8bf6de1e95de28" + integrity sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw== -esbuild-freebsd-64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.22.tgz#778a818c5b078d5cdd6bb6c0e0797217d196999b" - integrity sha512-ek1HUv7fkXMy87Qm2G4IRohN+Qux4IcnrDBPZGXNN33KAL0pEJJzdTv0hB/42+DCYWylSrSKxk3KUXfqXOoH4A== +esbuild-linux-64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz#dc8072097327ecfadba1735562824ce8c05dd0bd" + integrity sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg== -esbuild-freebsd-arm64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.22.tgz#18da93b9f3db2e036f72383bfe73b28b73bb332c" - integrity sha512-zPh9SzjRvr9FwsouNYTqgqFlsMIW07O8mNXulGeQx6O5ApgGUBZBgtzSlBQXkHi18WjrosYfsvp5nzOKiWzkjQ== +esbuild-linux-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz#c52b58cbe948426b1559910f521b0a3f396f10b8" + integrity sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ== -esbuild-linux-32@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.22.tgz#d0d5d9f5bb3536e17ac097e9512019c65b7c0234" - integrity sha512-SnpveoE4nzjb9t2hqCIzzTWBM0RzcCINDMBB67H6OXIuDa4KqFqaIgmTchNA9pJKOVLVIKd5FYxNiJStli21qg== +esbuild-linux-arm@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz#df869dbd67d4ee3a04b3c7273b6bd2b233e78a18" + integrity sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw== -esbuild-linux-64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz#2773d540971999ea7f38107ef92fca753f6a8c30" - integrity sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg== +esbuild-linux-mips64le@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz#a2b646d9df368b01aa970a7b8968be6dd6b01d19" + integrity sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A== -esbuild-linux-arm64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.22.tgz#5d4480ce6d6bffab1dd76a23158f5a5ab33e7ba4" - integrity sha512-8q/FRBJtV5IHnQChO3LHh/Jf7KLrxJ/RCTGdBvlVZhBde+dk3/qS9fFsUy+rs3dEi49aAsyVitTwlKw1SUFm+A== +esbuild-linux-ppc64le@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz#9a21af766a0292578a3009c7408b8509cac7cefd" + integrity sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA== -esbuild-linux-arm@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.22.tgz#c6391b3f7c8fa6d3b99a7e893ce0f45f3a921eef" - integrity sha512-soPDdbpt/C0XvOOK45p4EFt8HbH5g+0uHs5nUKjHVExfgR7du734kEkXR/mE5zmjrlymk5AA79I0VIvj90WZ4g== +esbuild-linux-riscv64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz#344a27f91568056a5903ad5841b447e00e78d740" + integrity sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg== -esbuild-linux-mips64le@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.22.tgz#2c8dabac355c502e86c38f9f292b3517d8e181f3" - integrity sha512-SiNDfuRXhGh1JQLLA9JPprBgPVFOsGuQ0yDfSPTNxztmVJd8W2mX++c4FfLpAwxuJe183mLuKf7qKCHQs5ZnBQ== - -esbuild-linux-ppc64le@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.22.tgz#69d71b2820d5c94306072dac6094bae38e77d1c0" - integrity sha512-6t/GI9I+3o1EFm2AyN9+TsjdgWCpg2nwniEhjm2qJWtJyJ5VzTXGUU3alCO3evopu8G0hN2Bu1Jhz2YmZD0kng== - -esbuild-linux-riscv64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.22.tgz#c0ec0fc3a23624deebf657781550d2329cec4213" - integrity sha512-AyJHipZKe88sc+tp5layovquw5cvz45QXw5SaDgAq2M911wLHiCvDtf/07oDx8eweCyzYzG5Y39Ih568amMTCQ== - -esbuild-linux-s390x@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.22.tgz#ec2af4572d63336cfb27f5a5c851fb1b6617dd91" - integrity sha512-Sz1NjZewTIXSblQDZWEFZYjOK6p8tV6hrshYdXZ0NHTjWE+lwxpOpWeElUGtEmiPcMT71FiuA9ODplqzzSxkzw== +esbuild-linux-s390x@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz#73a7309bd648a07ef58f069658f989a5096130db" + integrity sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg== esbuild-loader@^2.18.0: version "2.18.0" @@ -13580,60 +11583,61 @@ esbuild-loader@^2.18.0: tapable "^2.2.0" webpack-sources "^2.2.0" -esbuild-netbsd-64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.22.tgz#0e283278e9fdbaa7f0930f93ee113d7759cd865e" - integrity sha512-TBbCtx+k32xydImsHxvFgsOCuFqCTGIxhzRNbgSL1Z2CKhzxwT92kQMhxort9N/fZM2CkRCPPs5wzQSamtzEHA== +esbuild-netbsd-64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz#482a587cdbd18a6c264a05136596927deb46c30a" + integrity sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q== -esbuild-openbsd-64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.22.tgz#2a73bba04e16d8ef278fbe2be85248e12a2f2cc2" - integrity sha512-vK912As725haT313ANZZZN+0EysEEQXWC/+YE4rQvOQzLuxAQc2tjbzlAFREx3C8+uMuZj/q7E5gyVB7TzpcTA== +esbuild-openbsd-64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz#e99f8cdc63f1628747b63edd124d53cf7796468d" + integrity sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw== -esbuild-sunos-64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.22.tgz#8fe03513b8b2e682a6d79d5e3ca5849651a3c1d8" - integrity sha512-/mbJdXTW7MTcsPhtfDsDyPEOju9EOABvCjeUU2OJ7fWpX/Em/H3WYDa86tzLUbcVg++BScQDzqV/7RYw5XNY0g== +esbuild-sunos-64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz#8611d825bcb8239c78d57452e83253a71942f45c" + integrity sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg== -esbuild-windows-32@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.22.tgz#a75df61e3e49df292a1842be8e877a3153ee644f" - integrity sha512-1vRIkuvPTjeSVK3diVrnMLSbkuE36jxA+8zGLUOrT4bb7E/JZvDRhvtbWXWaveUc/7LbhaNFhHNvfPuSw2QOQg== +esbuild-windows-32@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz#c06374206d4d92dd31d4fda299b09f51a35e82f6" + integrity sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw== -esbuild-windows-64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.22.tgz#d06cf8bbe4945b8bf95a730d871e54a22f635941" - integrity sha512-AxjIDcOmx17vr31C5hp20HIwz1MymtMjKqX4qL6whPj0dT9lwxPexmLj6G1CpR3vFhui6m75EnBEe4QL82SYqw== +esbuild-windows-64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz#756631c1d301dfc0d1a887deed2459ce4079582f" + integrity sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg== -esbuild-windows-arm64@0.14.22: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.22.tgz#f8b1b05c548073be8413a5ecb12d7c2f6e717227" - integrity sha512-5wvQ+39tHmRhNpu2Fx04l7QfeK3mQ9tKzDqqGR8n/4WUxsFxnVLfDRBGirIfk4AfWlxk60kqirlODPoT5LqMUg== +esbuild-windows-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz#ad7e187193dcd18768b16065a950f4441d7173f4" + integrity sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg== esbuild@^0.14.1, esbuild@^0.14.10, esbuild@^0.14.6: - version "0.14.22" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz#2b55fde89d7aa5aaaad791816d58ff9dfc5ed085" - integrity sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA== + version "0.14.27" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz#41fe0f1b6b68b9f77cac025009bc54bb96e616f1" + integrity sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q== optionalDependencies: - esbuild-android-arm64 "0.14.22" - esbuild-darwin-64 "0.14.22" - esbuild-darwin-arm64 "0.14.22" - esbuild-freebsd-64 "0.14.22" - esbuild-freebsd-arm64 "0.14.22" - esbuild-linux-32 "0.14.22" - esbuild-linux-64 "0.14.22" - esbuild-linux-arm "0.14.22" - esbuild-linux-arm64 "0.14.22" - esbuild-linux-mips64le "0.14.22" - esbuild-linux-ppc64le "0.14.22" - esbuild-linux-riscv64 "0.14.22" - esbuild-linux-s390x "0.14.22" - esbuild-netbsd-64 "0.14.22" - esbuild-openbsd-64 "0.14.22" - esbuild-sunos-64 "0.14.22" - esbuild-windows-32 "0.14.22" - esbuild-windows-64 "0.14.22" - esbuild-windows-arm64 "0.14.22" + esbuild-android-64 "0.14.27" + esbuild-android-arm64 "0.14.27" + esbuild-darwin-64 "0.14.27" + esbuild-darwin-arm64 "0.14.27" + esbuild-freebsd-64 "0.14.27" + esbuild-freebsd-arm64 "0.14.27" + esbuild-linux-32 "0.14.27" + esbuild-linux-64 "0.14.27" + esbuild-linux-arm "0.14.27" + esbuild-linux-arm64 "0.14.27" + esbuild-linux-mips64le "0.14.27" + esbuild-linux-ppc64le "0.14.27" + esbuild-linux-riscv64 "0.14.27" + esbuild-linux-s390x "0.14.27" + esbuild-netbsd-64 "0.14.27" + esbuild-openbsd-64 "0.14.27" + esbuild-sunos-64 "0.14.27" + esbuild-windows-32 "0.14.27" + esbuild-windows-64 "0.14.27" + esbuild-windows-arm64 "0.14.27" escalade@^3.1.1: version "3.1.1" @@ -13670,18 +11674,6 @@ escape-string-regexp@^5.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== -escodegen@^1.14.1: - version "1.14.3" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - escodegen@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -13695,9 +11687,9 @@ escodegen@^2.0.0: source-map "~0.6.1" eslint-config-prettier@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" - integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== + version "8.5.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== eslint-formatter-friendly@^7.0.0: version "7.0.0" @@ -13718,19 +11710,10 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.1.1: - version "2.7.1" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" - integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - pkg-dir "^2.0.0" - -eslint-module-utils@^2.7.2: - version "2.7.2" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129" - integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg== +eslint-module-utils@^2.1.1, eslint-module-utils@^2.7.2: + version "2.7.3" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== dependencies: debug "^3.2.7" find-up "^2.1.0" @@ -13780,13 +11763,6 @@ eslint-plugin-import@^2.25.4: resolve "^1.20.0" tsconfig-paths "^3.12.0" -eslint-plugin-jest@^25.3.4: - version "25.3.4" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.3.4.tgz#2031dfe495be1463330f8b80096ddc91f8e6387f" - integrity sha512-CCnwG71wvabmwq/qkz0HWIqBHQxw6pXB1uqt24dxqJ9WB34pVg49bL1sjXphlJHgTMWGhBjN1PicdyxDxrfP5A== - dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" - eslint-plugin-jest@^26.1.2: version "26.1.2" resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.1.2.tgz#0f1a15c62889fffc3f78a773749d672f1bedb15f" @@ -13867,10 +11843,10 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" - integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -13887,22 +11863,10 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" - integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== - -eslint-webpack-plugin@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.6.0.tgz#3bd4ada4e539cb1f6687d2f619073dbb509361cd" - integrity sha512-V+LPY/T3kur5QO3u+1s34VDTcRxjXWPUGM4hlmTb5DwVD0OQz631yGTxJZf4SpAqAjdbBVe978S8BJeHpAdOhQ== - dependencies: - "@types/eslint" "^7.28.2" - arrify "^2.0.1" - jest-worker "^27.3.1" - micromatch "^4.0.4" - normalize-path "^3.0.0" - schema-utils "^3.1.1" +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint-webpack-plugin@^3.1.1: version "3.1.1" @@ -13916,19 +11880,11 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^3.1.1" eslint@^8.6.0: -<<<<<<< HEAD - version "8.7.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz#22e036842ee5b7cf87b03fe237731675b4d3633c" - integrity sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w== + version "8.11.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" + integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== dependencies: - "@eslint/eslintrc" "^1.0.5" -======= - version "8.10.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz#931be395eb60f900c01658b278e05b6dae47199d" - integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw== - dependencies: - "@eslint/eslintrc" "^1.2.0" ->>>>>>> e5aaf7bb66 (bump dependencies) + "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -13936,10 +11892,10 @@ eslint@^8.6.0: debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.0" + eslint-scope "^7.1.1" eslint-utils "^3.0.0" - eslint-visitor-keys "^3.2.0" - espree "^9.3.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -13969,14 +11925,14 @@ esm@^3.2.25: resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== -espree@^9.2.0, espree@^9.3.0: - version "9.3.0" - resolved "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" - integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== +espree@^9.3.1: + version "9.3.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" + integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== dependencies: acorn "^8.7.0" acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.1.0" + eslint-visitor-keys "^3.3.0" esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" @@ -13997,7 +11953,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -14032,14 +11988,6 @@ etag@~1.8.1: resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -event-emitter@^0.3.5: - version "0.3.5" - resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - event-source-polyfill@^1.0.25: version "1.0.25" resolved "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.25.tgz#d8bb7f99cb6f8119c2baf086d9f6ee0514b6d9c8" @@ -14063,12 +12011,7 @@ event-target-shim@^5.0.0: resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter2@^6.4.3: - version "6.4.4" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b" - integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw== - -eventemitter2@^6.4.4: +eventemitter2@^6.4.3, eventemitter2@^6.4.4: version "6.4.5" resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== @@ -14360,13 +12303,6 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -14415,16 +12351,16 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-files@11.0.0, extract-files@^11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" - integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== - extract-files@9.0.0, extract-files@^9.0.0: version "9.0.0" resolved "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== +extract-files@^11.0.0: + version "11.0.0" + resolved "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" + integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== + extract-zip@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" @@ -14436,16 +12372,6 @@ extract-zip@2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -extract-zip@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -14508,12 +12434,7 @@ fast-redact@^2.0.0: resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-2.1.0.tgz#dfe3c1ca69367fb226f110aa4ec10ec85462ffdf" integrity sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A== -fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.0.7: - version "2.0.8" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" - integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== - -fast-safe-stringify@^2.1.1: +fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== @@ -14613,7 +12534,7 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0: +figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -14847,9 +12768,9 @@ fork-ts-checker-webpack-plugin@^6.5.0: tapable "^1.0.0" fork-ts-checker-webpack-plugin@^7.0.0-alpha.8: - version "7.1.1" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.1.1.tgz#9806c04f3aecaec8c9e8872806cd1f26d50d92a8" - integrity sha512-MgAv1g6+HLXz1iq2AZRfBjDhwBwk1HRSjuhNiMs8ax/3tsFo0rHedKwuE6ok44sJ5F5VgwPZae8gq0wiBAqYRw== + version "7.2.1" + resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.1.tgz#c37a538e12730fe11fd725bcf0fce29487950833" + integrity sha512-uOfQdg/iQ8iokQ64qcbu8iZb114rOmaKLQFu7hU14/eJaKgsP91cQ7ts7v2iiDld6TzDe84Meksha8/MkWiCyw== dependencies: "@babel/code-frame" "^7.16.7" chalk "^4.1.2" @@ -14863,12 +12784,7 @@ fork-ts-checker-webpack-plugin@^7.0.0-alpha.8: semver "^7.3.5" tapable "^2.2.1" -form-data-encoder@^1.4.3: - version "1.6.0" - resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.6.0.tgz#9dd1f479836c1b1b47201667c68f8daafa800943" - integrity sha512-P97AVaOB8hZaniiKK3f46zxQcchQXI8EgBnX+2+719gLv5ZbDSf3J1XtIuAQ8xbGLU4vZYhy7xwhFtK8U5u9Nw== - -form-data-encoder@^1.7.1: +form-data-encoder@^1.4.3, form-data-encoder@^1.7.1: version "1.7.1" resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== @@ -14989,16 +12905,6 @@ fs-extra@10.0.1, fs-extra@^10.0.0, fs-extra@^10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^7.0.1, fs-extra@~7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -15017,6 +12923,16 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.0.0, fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -15308,20 +13224,12 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -<<<<<<< HEAD github-from-package@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= -<<<<<<< HEAD -glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: -======= glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.2: ->>>>>>> 76d216e74b (fixups) -======= -glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.2: ->>>>>>> e5aaf7bb66 (bump dependencies) version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -15443,16 +13351,10 @@ globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" -google-auth-library@^7.0.0, google-auth-library@^7.0.2, google-auth-library@^7.6.1: -<<<<<<< HEAD - version "7.11.0" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.11.0.tgz#b63699c65037310a424128a854ba7e736704cbdb" - integrity sha512-3S5jn2quRumvh9F/Ubf7GFrIq71HZ5a6vqosgdIu105kkk0WtSqc2jGCRqtWWOLRS8SX3AHACMOEDxhyWAQIcg== -======= - version "7.12.0" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.12.0.tgz#7965db6bc20cb31f2df05a08a296bbed6af69426" - integrity sha512-RS/whvFPMoF1hQNxnoVET3DWKPBt1Xgqe2rY0k+Jn7TNhoHlwdnSe7Rlcbo2Nub3Mt2lUVz26X65aDQrWp6x8w== ->>>>>>> e5aaf7bb66 (bump dependencies) +google-auth-library@^7.0.0, google-auth-library@^7.14.0, google-auth-library@^7.6.1: + version "7.14.0" + resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.0.tgz#9d6a20592f7b4d4c463cd3e93934c4b1711d5dc6" + integrity sha512-or8r7qUqGVI3W8lVSdPh0ZpeFyQHeE73g5c0p+bLNTTUFXJ+GSeDQmZRZ2p4H8cF/RJYa4PNvi/A1ar1uVNLFA== dependencies: arrify "^2.0.0" base64-js "^1.3.0" @@ -15464,11 +13366,7 @@ google-auth-library@^7.0.0, google-auth-library@^7.0.2, google-auth-library@^7.6 jws "^4.0.0" lru-cache "^6.0.0" -<<<<<<< HEAD -google-gax@^2.12.0, google-gax@^2.24.1: -======= google-gax@^2.24.1: ->>>>>>> e5aaf7bb66 (bump dependencies) version "2.28.1" resolved "https://registry.npmjs.org/google-gax/-/google-gax-2.28.1.tgz#99bc234b5769d901d70959d40bd1651729eb4a34" integrity sha512-2Xjd3FrjlVd6Cmw2B2Aicpc/q92SwTpIOvxPUlnRg9w+Do8nu7UR+eQrgoKlo2FIUcUuDTvppvcx8toND0pK9g== @@ -15539,18 +13437,18 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12: - version "1.5.16" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.5.16.tgz#76876e6a9c07b7be26b9126b7c6801d6a7e27e3b" - integrity sha512-G1ucZ+1GS6Soq+ftr7eOihy6BcmJHYo29j1/GxXKclUr/z768WWjjIqDcF1/+geI0KOzVeEKkceA1bgT5hG4oQ== + version "1.7.1" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.7.1.tgz#426afa0379c8d5424493fce69b678ee5c94e0e33" + integrity sha512-diEftHKsFtONUy90v1bZYgjCsJmRRVlnS72kYdv2lTETr1jgWN8V1nLepGl47xoQg8j0Bw9Er3v0wHnOdB5JxA== dependencies: "@graphiql/toolkit" "^0.4.2" codemirror "^5.58.2" - codemirror-graphql "^1.2.11" + codemirror-graphql "^1.2.13" copy-to-clipboard "^3.2.0" dset "^3.1.0" entities "^2.0.0" escape-html "^1.0.3" - graphql-language-service "^4.1.4" + graphql-language-service "^5.0.0" markdown-it "^12.2.0" graphlib@^2.1.8: @@ -15594,57 +13492,14 @@ graphql-config@^4.1.0: minimatch "3.0.4" string-env-interpolation "1.0.1" -<<<<<<< HEAD -graphql-language-service-interface@^2.10.2: - version "2.10.2" - resolved "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.10.2.tgz#de9386f699e446320256175e215cdc10ccf9f9b7" - integrity sha512-RKIEBPhRMWdXY3fxRs99XysTDnEgAvNbu8ov/5iOlnkZsWQNzitjtd0O0l1CutQOQt3iXoHde7w8uhCnKL4tcg== - dependencies: - graphql-config "^4.1.0" - graphql-language-service-parser "^1.10.4" - graphql-language-service-types "^1.8.7" - graphql-language-service-utils "^2.7.1" - vscode-languageserver-types "^3.15.1" - -graphql-language-service-parser@^1.10.4: - version "1.10.4" - resolved "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.10.4.tgz#b2979deefc5c0df571dacd409b2d5fbf1cdf7a9d" - integrity sha512-duDE+0aeKLFVrb9Kf28U84ZEHhHcvTjWIT6dJbIAQJWBaDoht0D4BK9EIhd94I3DtKRc1JCJb2+70y1lvP/hiA== - dependencies: - graphql-language-service-types "^1.8.7" - -graphql-language-service-types@^1.8.7: - version "1.8.7" - resolved "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-1.8.7.tgz#f5e909e6d9334ea2d8d1f7281b695b6f5602c07f" - integrity sha512-LP/Mx0nFBshYEyD0Ny6EVGfacJAGVx+qXtlJP4hLzUdBNOGimfDNtMVIdZANBXHXcM41MDgMHTnyEx2g6/Ttbw== -======= graphql-language-service@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.0.0.tgz#52dad53135f06551eee4c4dc57057c61eb10c460" integrity sha512-3tbJOApOJk8FQFVV+hKSs3gEWqqt3gQ5l3iEOUl7ofhyTmpRlbkYp+/dVLMF/p29iwZ5a8wqSXl+DDnHI6RMXQ== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: graphql-config "^4.1.0" - vscode-languageserver-types "^3.15.1" - -graphql-language-service-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-2.7.1.tgz#c97c8d744a761480aba7e03e4a42adf28b6fce39" - integrity sha512-Wci5MbrQj+6d7rfvbORrA9uDlfMysBWYaG49ST5TKylNaXYFf3ixFOa74iM1KtM9eidosUbI3E1JlWi0JaidJA== - dependencies: - "@types/json-schema" "7.0.9" - graphql-language-service-types "^1.8.7" nullthrows "^1.0.0" - -graphql-language-service@^4.1.4: - version "4.1.4" - resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-4.1.4.tgz#9be998e94c6c2950d4cde5ab07bcd63969afc176" - integrity sha512-LJk1vwwWwh8onewIzjbXXfa7C5mI6tNN67yztFbmQmfDQv1naZfqKLitudQWaDwJgLqAlpKIefRaeU3cNYHRFQ== - dependencies: - graphql-language-service-interface "^2.10.2" - graphql-language-service-parser "^1.10.4" - graphql-language-service-types "^1.8.7" - graphql-language-service-utils "^2.7.1" + vscode-languageserver-types "^3.15.1" graphql-modules@^2.0.0: version "2.0.0" @@ -15776,7 +13631,7 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.0, has-bigints@^1.0.1: +has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== @@ -15803,11 +13658,7 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -<<<<<<< HEAD -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: -======= has-symbols@^1.0.1, has-symbols@^1.0.2: ->>>>>>> e5aaf7bb66 (bump dependencies) version "1.0.2" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== @@ -15942,12 +13793,7 @@ hexoid@1.0.0: resolved "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== -highlight.js@^10.1.0, highlight.js@^10.4.1, highlight.js@^10.6.0: - version "10.7.2" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360" - integrity sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg== - -highlight.js@^10.7.2, highlight.js@~10.7.0: +highlight.js@^10.1.0, highlight.js@^10.4.1, highlight.js@^10.6.0, highlight.js@^10.7.2, highlight.js@~10.7.0: version "10.7.3" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== @@ -16094,7 +13940,7 @@ http-errors@1.8.1: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -http-errors@^2.0.0: +http-errors@2.0.0, http-errors@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -16115,11 +13961,6 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" -"http-parser-js@>=0.4.0 <0.4.11": - version "0.4.10" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= - http-parser-js@>=0.5.1: version "0.5.3" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" @@ -16144,21 +13985,9 @@ http-proxy-agent@^5.0.0: debug "4" http-proxy-middleware@^2.0.0: -<<<<<<< HEAD -<<<<<<< HEAD version "2.0.4" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz#03af0f4676d172ae775cb5c33f592f40e1a4e07a" integrity sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg== -======= - version "2.0.2" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.2.tgz#94d7593790aad6b3de48164f13792262f656c332" - integrity sha512-XtmDN5w+vdFTBZaYhdJAbMqn0DP/EhkUaAeo963mojwpKMMbw6nivtFKw07D7DDOH745L5k0VL0P8KRYNEVF/g== ->>>>>>> f9b03ab02f (fixups) -======= - version "2.0.3" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz#5df04f69a89f530c2284cd71eeaa51ba52243289" - integrity sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" @@ -16316,11 +14145,6 @@ ignore@^3.3.5: resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" @@ -16592,11 +14416,6 @@ ioredis@^4.28.5: redis-parser "^3.0.0" standard-as-callback "^2.1.0" -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -16708,16 +14527,8 @@ is-buffer@^2.0.0: version "2.0.4" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== -<<<<<<< HEAD -is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) - -is-callable@^1.2.4: +is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== @@ -16736,18 +14547,7 @@ is-ci@^3.0.0, is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -<<<<<<< HEAD -is-core-module@^2.1.0, is-core-module@^2.2.0: - version "2.8.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== - dependencies: - has "^1.0.3" - -is-core-module@^2.8.0: -======= is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.8.0: ->>>>>>> e5aaf7bb66 (bump dependencies) version "2.8.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -17025,11 +14825,6 @@ is-plain-object@^5.0.0: resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-potential-custom-element-name@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" - integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -17040,7 +14835,7 @@ is-promise@4.0.0, is-promise@^4.0.0: resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-promise@^2.1.0, is-promise@^2.2.2: +is-promise@^2.1.0: version "2.2.2" resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== @@ -17057,15 +14852,7 @@ is-reference@^1.2.1: dependencies: "@types/estree" "*" -is-regex@^1.0.4, is-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.1" - -is-regex@^1.1.4: +is-regex@^1.0.4, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -17123,16 +14910,8 @@ is-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -<<<<<<< HEAD -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) - -is-string@^1.0.7: +is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== @@ -17296,9 +15075,9 @@ isomorphic-form-data@^2.0.0: form-data "^2.3.2" isomorphic-git@^1.8.0: - version "1.10.0" - resolved "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.10.0.tgz#59a4604d1190d1e7fc52172085da25e6a428bc07" - integrity sha512-CijspEYaOQAnsHWXyq8ICZXzLJ/1wYQAa0jdfLcugA/68oNzrxykjGZz8Up7B8huA1VfkFHm4VviExtj/zpViw== + version "1.13.1" + resolved "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.13.1.tgz#66d9d1f24178f24230844dd70effb9d569214222" + integrity sha512-Hyc/KCCZAqTD5oyn90K5bRbCvRt1vj60OFKKmBZZwGrdzGvXu4FBBaqUrgWnd7N07M8soCOXibkDLq0lGWjNOQ== dependencies: async-lock "^1.1.0" clean-git-ref "^2.0.1" @@ -17310,7 +15089,7 @@ isomorphic-git@^1.8.0: pify "^4.0.1" readable-stream "^3.4.0" sha.js "^2.4.9" - simple-get "^3.0.2" + simple-get "^4.0.1" isomorphic-ws@4.0.1, isomorphic-ws@^4.0.1: version "4.0.1" @@ -17755,9 +15534,9 @@ jest-watcher@^26.6.2: string-length "^4.0.1" jest-when@^3.1.0: - version "3.5.0" - resolved "https://registry.npmjs.org/jest-when/-/jest-when-3.5.0.tgz#364ab8dc149a5d683f9cc14e44d73d03b84b0d97" - integrity sha512-/IkPkG5lo2tyXH3a+VraYe7t/ma6UK9VPQko7hr6YgEtjoHyfAPpLXzyhnSNxxKRzNQDrw8YoGPCOkdTLR4mHA== + version "3.5.1" + resolved "https://registry.npmjs.org/jest-when/-/jest-when-3.5.1.tgz#33ab6f923661cf878cd08fe9df64b507934603db" + integrity sha512-o+HiaIVCg1IC95sMDKHU9G5v5N5l3UHqXvJpf0PgAMThZeQo4Hf5Sgoj+wpCBRGg4/KtzSAZZZEKNiLqE0i4eQ== jest-worker@^26.6.2: version "26.6.2" @@ -17949,39 +15728,7 @@ jscodeshift@^0.13.0: temp "^0.8.4" write-file-atomic "^2.3.0" -jsdom@^16.4.0: - version "16.4.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" - integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== - dependencies: - abab "^2.0.3" - acorn "^7.1.1" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.2.0" - data-urls "^2.0.0" - decimal.js "^10.2.0" - domexception "^2.0.1" - escodegen "^1.14.1" - html-encoding-sniffer "^2.0.1" - is-potential-custom-element-name "^1.0.0" - nwsapi "^2.2.0" - parse5 "5.1.1" - request "^2.88.2" - request-promise-native "^1.0.8" - saxes "^5.0.0" - symbol-tree "^3.2.4" - tough-cookie "^3.0.1" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - ws "^7.2.3" - xml-name-validator "^3.0.0" - -jsdom@^16.5.2: +jsdom@^16.4.0, jsdom@^16.5.2: version "16.7.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== @@ -18393,14 +16140,14 @@ jwt-decode@*, jwt-decode@^3.1.0: integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== kafkajs@^1.16.0-beta.6: - version "1.16.0-beta.32" - resolved "https://registry.npmjs.org/kafkajs/-/kafkajs-1.16.0-beta.32.tgz#c39fe37367e200eeb95c9ae1412d79db4cf55eca" - integrity sha512-fXnpfvQI7b0xJNRMMiDX05ezfG1/MtDJPdWhQ1e6SptDB/xe8JaGJwd/Fzd2viwgwYzhmHSg681PNOkX4Dz2DQ== + version "1.16.0" + resolved "https://registry.npmjs.org/kafkajs/-/kafkajs-1.16.0.tgz#bfcc3ae2b69265ca8435b53a01ee9e8787b9fee5" + integrity sha512-+Rcfu2hyQ/jv5skqRY8xA7Ra+mmRkDAzCaLDYbkGtgsNKpzxPWiLbk8ub0dgr4EbWrN1Zb4BCXHUkD6+zYfdWg== keyv-memcache@^1.2.5: - version "1.2.7" - resolved "https://registry.npmjs.org/keyv-memcache/-/keyv-memcache-1.2.7.tgz#b8a43eeecdb11ad8f4d6d64abd4298d014c74955" - integrity sha512-lD7QaHf9M+bq9XLFZVEXJ2HNqEvO5CmtjiJjB2FHifbEQ18+YRDTfJCjo88Roc0hXtIqz/QZjYXpIYL8EWpL1g== + version "1.2.9" + resolved "https://registry.npmjs.org/keyv-memcache/-/keyv-memcache-1.2.9.tgz#68776b098233e4305ec729fbeb5ad5905f6ac914" + integrity sha512-hcHeihL/LjAhP1qvLSWuwCxDQlSkkGwlvH7RfIIO+57s7J5dhFLQQko1WcAbcd1jlxV6iPHAEvkDwp8c7XQzgA== dependencies: json-buffer "^3.0.1" memjs "^1.3.0" @@ -18413,9 +16160,9 @@ keyv@^3.0.0: json-buffer "3.0.0" keyv@^4.0.0, keyv@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.1.0.tgz#8ab5ca4ae6a34e05c629531d9a7f871575af0d5b" - integrity sha512-YsY3wr6HabE11/sscee+3nZ03XjvkrPWGouAmJFBdZoK92wiOlJCzI5/sDEIKdJhdhHO144ei45U9gXfbu14Uw== + version "4.1.1" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.1.1.tgz#02c538bfdbd2a9308cc932d4096f05ae42bfa06a" + integrity sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ== dependencies: json-buffer "3.0.1" @@ -18699,6 +16446,20 @@ listr-verbose-renderer@^0.5.0: date-fns "^1.27.2" figures "^2.0.0" +listr2@^3.8.3: + version "3.14.0" + resolved "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" + integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.1" + through "^2.3.8" + wrap-ansi "^7.0.0" + listr2@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/listr2/-/listr2-4.0.2.tgz#04d66f8c8694a14920d7df08ebe01568948fb500" @@ -19084,20 +16845,6 @@ logform@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/logform/-/logform-2.3.2.tgz#68babe6a74ab09a1fd15a9b1e6cbc7713d41cb5b" integrity sha512-V6JiPThZzTsbVRspNO6TmHkR99oqYTs8fivMBYQkjZj6rxW92KxtDCPE6IkAk1DNBnYKNkjm4jYBm6JDUcyhOA== -<<<<<<< HEAD -======= - dependencies: - colors "1.4.0" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^1.1.0" - triple-beam "^1.3.0" - -logform@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe" - integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: colors "1.4.0" fecha "^4.2.0" @@ -19185,16 +16932,6 @@ lru-cache@^7.3.1: version "7.3.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.3.1.tgz#7702e80694ec2bf19865567a469f2b081fcf53f5" integrity sha512-nX1x4qUrKqwbIAhv4s9et4FIUVzNOpeY07bsjGUy8gwJrXH/wScImSQqXErmo/b2jZY2r0mohbLA9zVj7u1cNw== -<<<<<<< HEAD - -lru-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" - integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= - dependencies: - es5-ext "~0.10.2" -======= ->>>>>>> e5aaf7bb66 (bump dependencies) lunr@^2.3.9: version "2.3.9" @@ -19215,7 +16952,6 @@ macos-release@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== -<<<<<<< HEAD magic-string@^0.25.7: version "0.25.7" @@ -19223,15 +16959,13 @@ magic-string@^0.25.7: integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== dependencies: sourcemap-codec "^1.4.4" -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== +magic-string@^0.26.1: + version "0.26.1" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz#ba9b651354fa9512474199acecf9c6dbe93f97fd" + integrity sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg== dependencies: - sourcemap-codec "^1.4.4" + sourcemap-codec "^1.4.8" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" @@ -19241,14 +16975,7 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== - dependencies: - semver "^6.0.0" - -make-dir@^3.1.0: +make-dir@^3.0.0, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -19549,11 +17276,6 @@ mdn-data@2.0.14: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - mdurl@^1.0.0, mdurl@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -19590,7 +17312,7 @@ media-typer@0.3.0: vinyl "^2.0.1" vinyl-file "^3.0.0" -memfs@^3.1.2, memfs@^3.2.2, memfs@^3.4.1: +memfs@^3.1.2, memfs@^3.4.1: version "3.4.1" resolved "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== @@ -19602,30 +17324,11 @@ memjs@^1.3.0: resolved "https://registry.npmjs.org/memjs/-/memjs-1.3.0.tgz#b7959b4ff3770e4c785463fd147f1e4fafd47a24" integrity sha512-y/V9a0auepA9Lgyr4QieK6K2FczjHucEdTpSS+hHVNmVEkYxruXhkHu8n6DSRQ4HXHEE3cc6Sf9f88WCJXGXsQ== -"memoize-one@>=3.1.1 <6": +"memoize-one@>=3.1.1 <6", memoize-one@^5.1.1: version "5.2.1" resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== -memoize-one@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" - integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== - -memoizee@^0.4.15: - version "0.4.15" - resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" - integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== - dependencies: - d "^1.0.1" - es5-ext "^0.10.53" - es6-weak-map "^2.0.3" - event-emitter "^0.3.5" - is-promise "^2.2.2" - lru-queue "^0.1.0" - next-tick "^1.1.0" - timers-ext "^0.1.7" - meow@^6.0.0: version "6.1.1" resolved "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" @@ -19695,7 +17398,7 @@ metric-lcs@^0.1.2: resolved "https://registry.npmjs.org/metric-lcs/-/metric-lcs-0.1.2.tgz#87913f149410e39c7c5a19037512814eaf155e11" integrity sha512-+TZ5dUDPKPJaU/rscTzxyN8ZkX7eAVLAiQU/e+YINleXPv03SCmJShaMT1If1liTH8OcmWXZs0CmzCBRBLcMpA== -micromark-core-commonmark@^1.0.0: +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: version "1.0.6" resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== @@ -19717,27 +17420,6 @@ micromark-core-commonmark@^1.0.0: micromark-util-types "^1.0.1" uvu "^0.5.0" -micromark-core-commonmark@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.1.tgz#a64987cafe872e8b80bc8f2352a5d988586ac4f1" - integrity sha512-vEOw8hcQ3nwHkKKNIyP9wBi8M50zjNajtmI+cCUWcVfJS+v5/3WCh4PLKf7PPRZFUutjzl4ZjlHwBWUKfb/SkA== - dependencies: - micromark-factory-destination "^1.0.0" - micromark-factory-label "^1.0.0" - micromark-factory-space "^1.0.0" - micromark-factory-title "^1.0.0" - micromark-factory-whitespace "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-chunked "^1.0.0" - micromark-util-classify-character "^1.0.0" - micromark-util-html-tag-name "^1.0.0" - micromark-util-normalize-identifier "^1.0.0" - micromark-util-resolve-all "^1.0.0" - micromark-util-subtokenize "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.1" - parse-entities "^3.0.0" - micromark-extension-gfm-autolink-literal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz#1a49a62bfcb00f9dff87ab39f3b21a108612dc24" @@ -20021,10 +17703,10 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": - version "1.51.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-db@~1.33.0: version "1.33.0" @@ -20039,27 +17721,18 @@ mime-types@2.1.18: mime-db "~1.33.0" mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.34" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" mime@1.6.0, mime@^1.3.4: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -<<<<<<< HEAD -mime@^2.2.0: - version "2.5.2" - resolved "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== - -mime@^2.5.0: -======= mime@^2.2.0, mime@^2.5.0: ->>>>>>> e5aaf7bb66 (bump dependencies) version "2.6.0" resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -20107,9 +17780,9 @@ min-indent@^1.0.0: integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= mini-css-extract-plugin@^2.4.2: - version "2.5.3" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz#c5c79f9b22ce9b4f164e9492267358dbe35376d9" - integrity sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw== + version "2.6.0" + resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz#578aebc7fc14d32c0ad304c2c34f08af44673f5e" + integrity sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w== dependencies: schema-utils "^4.0.0" @@ -20137,8 +17810,6 @@ minimatch@5.0.1, minimatch@^5.0.0: dependencies: brace-expansion "^2.0.1" -<<<<<<< HEAD -======= minimatch@^4.0.0: version "4.2.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" @@ -20146,7 +17817,6 @@ minimatch@^4.0.0: dependencies: brace-expansion "^1.1.7" ->>>>>>> e5aaf7bb66 (bump dependencies) minimist-options@4.1.0, minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -20258,26 +17928,15 @@ mixme@^0.5.1: resolved "https://registry.npmjs.org/mixme/-/mixme-0.5.4.tgz#8cb3bd0cd32a513c161bf1ca99d143f0bcf2eff3" integrity sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw== -<<<<<<< HEAD -<<<<<<< HEAD -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: -======= mkdirp-classic@^0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== mkdirp-classic@^0.5.3: ->>>>>>> e5aaf7bb66 (bump dependencies) version "0.5.3" resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -======= -mkdirp-classic@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" - integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== ->>>>>>> 76d216e74b (fixups) mkdirp-infer-owner@^2.0.0: version "2.0.0" @@ -20293,7 +17952,7 @@ mkdirp@0.3.0: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -20315,21 +17974,10 @@ modify-values@^1.0.0: resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -<<<<<<< HEAD moment-timezone@^0.5.x: -======= -<<<<<<< HEAD -moment-timezone@^0.5.31, moment-timezone@^0.5.x: ->>>>>>> f9b03ab02f (fixups) version "0.5.34" resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c" integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg== -======= -moment-timezone@^0.5.31: - version "0.5.33" - resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz#b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c" - integrity sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w== ->>>>>>> 76d216e74b (fixups) dependencies: moment ">= 2.9.0" @@ -20401,11 +18049,11 @@ msw@^0.35.0: yargs "^17.0.1" msw@^0.36.3: - version "0.36.3" - resolved "https://registry.npmjs.org/msw/-/msw-0.36.3.tgz#7feb243a5fcf563806d45edc027bc36144741170" - integrity sha512-Itzp/QhKaleZoslXDrNik3ramW9ynqzOdbwydX2ehBSSaZd5QoiAl/bHYcV33R6CEZcJgIX1N4s+G6XkF/bhkA== + version "0.36.8" + resolved "https://registry.npmjs.org/msw/-/msw-0.36.8.tgz#33ff8bfb0299626a95f43d0e4c3dc2c73c17f1ba" + integrity sha512-K7lOQoYqhGhTSChsmHMQbf/SDCsxh/m0uhN6Ipt206lGoe81fpTmaGD0KLh4jUxCONMOUnwCSj0jtX2CM4pEdw== dependencies: - "@mswjs/cookies" "^0.1.6" + "@mswjs/cookies" "^0.1.7" "@mswjs/interceptors" "^0.12.7" "@open-draft/until" "^1.0.3" "@types/cookie" "^0.4.1" @@ -20419,7 +18067,7 @@ msw@^0.36.3: inquirer "^8.2.0" is-node-process "^1.0.1" js-levenshtein "^1.1.6" - node-fetch "^2.6.1" + node-fetch "^2.6.7" path-to-regexp "^6.2.0" statuses "^2.0.0" strict-event-emitter "^0.2.0" @@ -20516,12 +18164,7 @@ nanoclone@^0.2.1: resolved "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== -nanoid@^3.1.23: - version "3.2.0" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" - integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== - -nanoid@^3.3.1: +nanoid@^3.1.23, nanoid@^3.3.1: version "3.3.1" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== @@ -20553,31 +18196,16 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.3, negotiator@^0.6.3: +negotiator@0.6.3, negotiator@^0.6.2, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -negotiator@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-tick@1, next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -20878,16 +18506,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f" - integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig== - dependencies: - hosted-git-info "^3.0.6" - semver "^7.0.0" - validate-npm-package-name "^3.0.0" - -npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: +npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: version "8.1.5" resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== @@ -20916,16 +18535,7 @@ npm-packlist@^3.0.0: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -npm-pick-manifest@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" - integrity sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw== - dependencies: - npm-install-checks "^4.0.0" - npm-package-arg "^8.0.0" - semver "^7.0.0" - -npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: +npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== @@ -21005,16 +18615,6 @@ npmlog@^6.0.0: gauge "^4.0.0" set-blocking "^2.0.0" -<<<<<<< HEAD -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -======= ->>>>>>> e5aaf7bb66 (bump dependencies) nth-check@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" @@ -21070,15 +18670,16 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -<<<<<<< HEAD object-hash@^2.0.1, object-hash@^2.1.1: -======= -object-hash@^2.0.1, object-hash@^2.1.1, object-hash@^2.2.0: ->>>>>>> e5aaf7bb66 (bump dependencies) version "2.2.0" resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + object-inspect@^1.11.0, object-inspect@^1.12.0, object-inspect@^1.9.0: version "1.12.0" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" @@ -21133,17 +18734,6 @@ object.getownpropertydescriptors@^2.0.3: version "2.1.0" resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== -<<<<<<< HEAD - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.3" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" @@ -21163,7 +18753,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.5: +object.values@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== @@ -21746,11 +19336,6 @@ parse-url@^5.0.0: parse-path "^4.0.0" protocols "^1.4.0" -parse5@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - parse5@6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -22211,13 +19796,6 @@ pkg-dir@4.2.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -22548,17 +20126,10 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -<<<<<<< HEAD postcss@^8.1.0, postcss@^8.4.7: version "8.4.12" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== -======= -postcss@^8.1.0, postcss@^8.4.5: - version "8.4.7" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.7.tgz#f99862069ec4541de386bf57f5660a6c7a0875a8" - integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: nanoid "^3.3.1" picocolors "^1.0.0" @@ -22683,39 +20254,16 @@ printj@~1.1.0: resolved "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== -<<<<<<< HEAD prismjs@^1.27.0, prismjs@~1.27.0: -======= -<<<<<<< HEAD -prismjs@^1.25.0, prismjs@~1.27.0: ->>>>>>> f9b03ab02f (fixups) version "1.27.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== -<<<<<<< HEAD -======= -prismjs@^1.25.0: - version "1.26.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz#16881b594828bb6b45296083a8cbab46b0accd47" - integrity sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ== - -prismjs@~1.25.0: - version "1.25.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" - integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== - -======= ->>>>>>> e5aaf7bb66 (bump dependencies) private@^0.1.8: version "0.1.8" resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -<<<<<<< HEAD ->>>>>>> 76d216e74b (fixups) -======= ->>>>>>> e5aaf7bb66 (bump dependencies) proc-log@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" @@ -22976,7 +20524,7 @@ puppeteer@^13.1.1: unbzip2-stream "1.4.3" ws "8.5.0" -q@^1.1.2, q@^1.5.1: +q@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= @@ -22991,7 +20539,7 @@ qs@6.9.7: resolved "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== -qs@^6.10.1, qs@^6.10.2, qs@^6.10.3, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: +qs@^6.10.1, qs@^6.10.2, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: version "6.10.3" resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== @@ -23101,12 +20649,12 @@ raw-body@2.4.3: unpipe "1.0.0" raw-body@^2.4.1: - version "2.4.2" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: - bytes "3.1.1" - http-errors "1.8.1" + bytes "3.1.2" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" @@ -23243,22 +20791,10 @@ react-helmet@6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -<<<<<<< HEAD -react-hook-form@^7.12.2: - version "7.16.1" - resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.16.1.tgz#669046df378a71949e5cf8a2398cbe20d5cb27bc" - integrity sha512-kcLDmSmlyLUFx2UU5bG/o4+3NeK753fhKodJa8gkplXohGkpAq0/p+TR24OWjZmkEc3ES7ppC5v5d6KUk+fJTA== - -react-hook-form@^7.13.0: - version "7.17.4" - resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.17.4.tgz#232b6aaccddb91eb4a228ac20b154abd90866fdb" - integrity sha512-7XhbCr7d9fDC1TgcK/BUbt7D3q0VJMu7jPErfsa0JrxVjv/nni41xWdJcy0Zb7R+Np8OsCkQ2lMyloAtE3DLiQ== -======= react-hook-form@^7.12.2, react-hook-form@^7.13.0: version "7.27.1" resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.27.1.tgz#fe5fbcb6bf58751f66d9569e998d671480cc57f6" integrity sha512-N3a7A6zIQ8DJeThisVZGtOUabTbJw+7DHJidmB9w8m3chckv2ZWKb5MHps9d2pPJqmCDoWe53Bos56bYmJms5w== ->>>>>>> e5aaf7bb66 (bump dependencies) react-hot-loader@^4.13.0: version "4.13.0" @@ -23330,7 +20866,6 @@ react-markdown@^8.0.0: unist-util-visit "^4.0.0" vfile "^5.0.0" -<<<<<<< HEAD react-query@^3.34.16: version "3.34.16" resolved "https://registry.npmjs.org/react-query/-/react-query-3.34.16.tgz#279ea180bcaeaec49c7864b29d1711ee9f152594" @@ -23340,22 +20875,10 @@ react-query@^3.34.16: broadcast-channel "^3.4.1" match-sorter "^6.0.2" -<<<<<<< HEAD -react-redux@^7.2.0, react-redux@^7.2.4: - version "7.2.6" - resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.6.tgz#49633a24fe552b5f9caf58feb8a138936ddfe9aa" - integrity sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ== -======= -======= ->>>>>>> e5aaf7bb66 (bump dependencies) react-redux@^7.1.1, react-redux@^7.2.4: version "7.2.5" resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.5.tgz#213c1b05aa1187d9c940ddfc0b29450957f6a3b8" integrity sha512-Dt29bNyBsbQaysp6s/dN0gUodcq+dVKKER8Qv82UrpeygwYeX1raTtil7O/fftw/rFqzaf6gJhDZRkkZnn6bjg== -<<<<<<< HEAD ->>>>>>> 76d216e74b (fixups) -======= ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@babel/runtime" "^7.12.1" "@types/react-redux" "^7.1.16" @@ -23457,13 +20980,6 @@ react-test-renderer@^16.13.1: react-is "^16.8.6" scheduler "^0.19.1" -react-text-truncate@^0.17.0: - version "0.17.0" - resolved "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.17.0.tgz#a820bfd9d084caf85d900a011fe2ab4216fc3821" - integrity sha512-EUL7s47XApOgbR//t/9X+fXg1feS47RcTywNXEQZAlNL0vrCIYGye1C+mpUgGIIXKTkabweid6z7s16AkTo5sA== - dependencies: - prop-types "^15.5.7" - react-text-truncate@^0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.18.0.tgz#c65f4be660d24734badb903a4832467eddcf8058" @@ -23496,27 +21012,7 @@ react-universal-interface@^0.6.2: resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== -react-use@^17.2.4: - version "17.2.4" - resolved "https://registry.npmjs.org/react-use/-/react-use-17.2.4.tgz#1f89be3db0a8237c79253db0a15e12bbe3cfeff1" - integrity sha512-vQGpsAM0F5UIlshw5UI8ULGPS4yn5rm7/qvn3T1Gnkrz7YRMEEMh+ynKcmRloOyiIeLvKWiQjMiwRGtdbgs5qQ== - dependencies: - "@types/js-cookie" "^2.2.6" - "@xobotyi/scrollbar-width" "^1.9.5" - copy-to-clipboard "^3.3.1" - fast-deep-equal "^3.1.3" - fast-shallow-equal "^1.0.0" - js-cookie "^2.2.1" - nano-css "^5.3.1" - react-universal-interface "^0.6.2" - resize-observer-polyfill "^1.5.1" - screenfull "^5.1.0" - set-harmonic-interval "^1.0.1" - throttle-debounce "^3.0.1" - ts-easing "^0.2.0" - tslib "^2.1.0" - -react-use@^17.3.1, react-use@^17.3.2: +react-use@^17.2.4, react-use@^17.3.1, react-use@^17.3.2: version "17.3.2" resolved "https://registry.npmjs.org/react-use/-/react-use-17.3.2.tgz#448abf515f47c41c32455024db28167cb6e53be8" integrity sha512-bj7OD0/1wL03KyWmzFXAFe425zziuTf7q8olwCYBfOeFHY1qfO1FAMjROQLsLZYwG4Rx63xAfb7XAbBrJsZmEw== @@ -23562,19 +21058,7 @@ read-cmd-shim@^2.0.0: resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== -<<<<<<< HEAD -read-package-json-fast@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.1.tgz#c767f6c634873ffb6bb73788191b65559734f555" - integrity sha512-bp6z0tdgLy9KzdfENDIw/53HWAolOVoQTRWXv7PUiqAo3YvvoUVeLr7RWPWq+mu7KUOu9kiT4DvxhUgNUBsvug== - dependencies: - json-parse-even-better-errors "^2.3.0" - npm-normalize-package-bin "^1.0.1" - -read-package-json-fast@^2.0.2: -======= read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2: ->>>>>>> e5aaf7bb66 (bump dependencies) version "2.0.3" resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== @@ -23692,7 +21176,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -23746,14 +21230,7 @@ recast@^0.20.3, recast@^0.20.4: source-map "~0.6.1" tslib "^2.0.1" -recharts-scale@^0.4.2: - version "0.4.3" - resolved "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.3.tgz#040b4f638ed687a530357292ecac880578384b59" - integrity sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA== - dependencies: - decimal.js-light "^2.4.1" - -recharts-scale@^0.4.4: +recharts-scale@^0.4.2, recharts-scale@^0.4.4: version "0.4.5" resolved "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz#0969271f14e732e642fcc5bd4ab270d6e87dd1d9" integrity sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w== @@ -23872,22 +21349,7 @@ redux-immutable@^4.0.0: resolved "https://registry.npmjs.org/redux-immutable/-/redux-immutable-4.0.0.tgz#3a1a32df66366462b63691f0e1dc35e472bbc9f3" integrity sha1-Ohoy32Y2ZGK2NpHw4dw15HK7yfM= -redux@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/redux/-/redux-4.1.1.tgz#76f1c439bb42043f985fbd9bf21990e60bd67f47" - integrity sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw== - dependencies: - "@babel/runtime" "^7.9.2" - -redux@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" - integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== - dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" - -redux@^4.1.2: +redux@^4.0.0, redux@^4.0.4, redux@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104" integrity sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw== @@ -23930,16 +21392,11 @@ regenerator-runtime@^0.11.0: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.3: +regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - regenerator-transform@^0.14.2: version "0.14.4" resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" @@ -23956,18 +21413,10 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexp.prototype.flags@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: + version "1.4.1" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" + integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" @@ -24161,22 +21610,6 @@ request-progress@^3.0.0: dependencies: throttleit "^1.0.0" -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== - dependencies: - lodash "^4.17.15" - -request-promise-native@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== - dependencies: - request-promise-core "1.1.3" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" @@ -24228,10 +21661,10 @@ requires-port@^1.0.0: resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -reselect@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" - integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== +reselect@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz#852c361247198da6756d07d9296c2b51eddb79f6" + integrity sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ== resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: version "1.5.1" @@ -24337,18 +21770,7 @@ ret@~0.2.0: resolved "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== -<<<<<<< HEAD -retry-request@^4.0.0: - version "4.1.3" - resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz#d5f74daf261372cff58d08b0a1979b4d7cab0fde" - integrity sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ== - dependencies: - debug "^4.1.1" - -retry-request@^4.2.2: -======= retry-request@^4.0.0, retry-request@^4.2.2: ->>>>>>> e5aaf7bb66 (bump dependencies) version "4.2.2" resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" integrity sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg== @@ -24413,13 +21835,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" rollup-plugin-dts@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.1.0.tgz#63b1e7de3970bb6d50877e60df2150a3892bc49c" - integrity sha512-rriXIm3jdUiYeiAAd1Fv+x2AxK6Kq6IybB2Z/IdoAW95fb4uRUurYsEYKa8L1seedezDeJhy8cfo8FEL9aZzqg== + version "4.2.0" + resolved "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.2.0.tgz#f7ae4646f5b3aec07560bc341c0dc4a85f8a0dff" + integrity sha512-lx6irWVhz/x4//tIqRhzk4FOqGQ0n37ZM2wpPCn4uafl/EmiV92om7ZdAsq7Bzho6C+Xh5GfsyuP9H+Udv72Lg== dependencies: - magic-string "^0.25.7" + magic-string "^0.26.1" optionalDependencies: - "@babel/code-frame" "^7.16.0" + "@babel/code-frame" "^7.16.7" rollup-plugin-esbuild@^4.7.2: version "4.7.2" @@ -24430,11 +21852,6 @@ rollup-plugin-esbuild@^4.7.2: joycon "^3.0.1" jsonc-parser "^3.0.0" -rollup-plugin-peer-deps-external@^2.2.2: - version "2.2.4" - resolved "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz#8a420bbfd6dccc30aeb68c9bf57011f2f109570d" - integrity sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g== - rollup-plugin-postcss@*, rollup-plugin-postcss@^4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" @@ -24470,21 +21887,9 @@ rollup@^0.63.4: "@types/node" "*" rollup@^2.60.2: -<<<<<<< HEAD -<<<<<<< HEAD version "2.70.0" resolved "https://registry.npmjs.org/rollup/-/rollup-2.70.0.tgz#17a92e5938e92a251b962352e904c9f558230ec7" integrity sha512-iEzYw+syFxQ0X9RefVwhr8BA2TNJsTaX8L8dhyeyMECDbmiba+8UQzcu+xZdji0+JQ+s7kouQnw+9Oz5M19XKA== -======= - version "2.67.2" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.67.2.tgz#d95e15f60932ad21e05a870bd0aa0b235d056f04" - integrity sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw== ->>>>>>> 76d216e74b (fixups) -======= - version "2.70.0" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.70.0.tgz#17a92e5938e92a251b962352e904c9f558230ec7" - integrity sha512-iEzYw+syFxQ0X9RefVwhr8BA2TNJsTaX8L8dhyeyMECDbmiba+8UQzcu+xZdji0+JQ+s7kouQnw+9Oz5M19XKA== ->>>>>>> e5aaf7bb66 (bump dependencies) optionalDependencies: fsevents "~2.3.2" @@ -24524,17 +21929,10 @@ rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.0, rxjs@^6.6.3: dependencies: tslib "^1.9.0" -<<<<<<< HEAD -rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.2: - version "7.5.2" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b" - integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== -======= rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.1, rxjs@^7.5.2: version "7.5.5" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: tslib "^2.1.0" @@ -24616,12 +22014,12 @@ sax@1.2.1: resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= -sax@>=0.6.0, sax@~1.2.4: +sax@>=0.6.0: version "1.2.4" resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^5.0.0, saxes@^5.0.1: +saxes@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== @@ -24731,7 +22129,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: +semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: version "7.3.5" resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -24911,7 +22309,7 @@ shell-quote@^1.7.3: resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== -shelljs@^0.8.4, shelljs@^0.8.5: +shelljs@^0.8.5: version "0.8.5" resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== @@ -24957,7 +22355,7 @@ simple-concat@^1.0.0: resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^3.0.2, simple-get@^3.0.3: +simple-get@^3.0.3: version "3.1.1" resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== @@ -24966,7 +22364,6 @@ simple-get@^3.0.2, simple-get@^3.0.3: once "^1.3.1" simple-concat "^1.0.0" -<<<<<<< HEAD simple-get@^4.0.0, simple-get@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" @@ -24976,8 +22373,6 @@ simple-get@^4.0.0, simple-get@^4.0.1: once "^1.3.1" simple-concat "^1.0.0" -======= ->>>>>>> 76d216e74b (fixups) simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -25048,10 +22443,10 @@ slide@^1.1.6: resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= -smart-buffer@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" - integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== smartwrap@^1.2.3: version "1.2.5" @@ -25186,21 +22581,13 @@ socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: debug "^4.3.1" socks "^2.6.1" -socks@^2.3.3: - version "2.5.1" - resolved "https://registry.npmjs.org/socks/-/socks-2.5.1.tgz#7720640b6b5ec9a07d556419203baa3f0596df5f" - integrity sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ== +socks@^2.3.3, socks@^2.6.1: + version "2.6.2" + resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" + integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== dependencies: ip "^1.1.5" - smart-buffer "^4.1.0" - -socks@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" - integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== - dependencies: - ip "^1.1.5" - smart-buffer "^4.1.0" + smart-buffer "^4.2.0" sonic-boom@^0.7.5: version "0.7.7" @@ -25253,7 +22640,7 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@^0.5.10: +source-map-support@^0.5.10, source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -25261,14 +22648,6 @@ source-map-support@^0.5.10: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: - version "0.5.20" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -25549,11 +22928,6 @@ statuses@2.0.1, statuses@^2.0.0: resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - stoppable@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" @@ -25991,25 +23365,6 @@ svg-parser@^2.0.2: resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== -svgo@^1.2.2: - version "1.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - svgo@^2.5.0, svgo@^2.7.0: version "2.8.0" resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" @@ -26023,16 +23378,16 @@ svgo@^2.5.0, svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -swagger-client@^3.17.0: - version "3.18.0" - resolved "https://registry.npmjs.org/swagger-client/-/swagger-client-3.18.0.tgz#2e59e666b38ded983e26fb512421ef8ff82547f0" - integrity sha512-lNfwTXHim0QiCNuZ4BKgWle7N7+9WlFLtcP02n0xSchFtdzsKJb2kWsOlwplRU3appVFjnHRy+1eVabRc3ZhbA== +swagger-client@^3.18.4: + version "3.18.4" + resolved "https://registry.npmjs.org/swagger-client/-/swagger-client-3.18.4.tgz#71be9df585157a3335a542c407733d2134fa75e9" + integrity sha512-Wj26oEctONq/u0uM+eSj18675YM5e2vFnx7Kr4neLeXEHKUsfceVQ/OdtrBXdrT3VbtdBbZfMTfl1JOBpix2MA== dependencies: "@babel/runtime-corejs3" "^7.11.2" btoa "^1.2.1" cookie "~0.4.1" - cross-fetch "^3.1.4" - deep-extend "~0.6.0" + cross-fetch "^3.1.5" + deepmerge "~4.2.2" fast-json-patch "^3.0.0-1" form-data-encoder "^1.4.3" formdata-node "^4.0.0" @@ -26044,17 +23399,11 @@ swagger-client@^3.17.0: url "~0.11.0" swagger-ui-react@^4.1.3: -<<<<<<< HEAD - version "4.1.3" - resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.1.3.tgz#a722ecbe54ef237fa9080447a7c708c4c72d846a" - integrity sha512-o1AoXUTNH40cxWus0QOeWQ8x9tSIEmrLBrOgAOHDnvWJ1qyjT8PjgHjPbUVjMbja18coyuaAAeUdyLKvLGmlDA== -======= version "4.6.1" resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.6.1.tgz#25d0dc380f73fcba00df214f50adc940910f480c" integrity sha512-NIVzdzzaHnoG6NxK15A0wpd7TiGPpcK4BBh5mgLq6/hCrytjpeQZrkSM1Yf0p1fD7+rkvKcI+b33w/6RCLt3yw== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: - "@babel/runtime-corejs3" "^7.16.3" + "@babel/runtime-corejs3" "^7.16.8" "@braintree/sanitize-url" "^5.0.2" base64-js "^1.5.1" classnames "^2.3.1" @@ -26066,10 +23415,6 @@ swagger-ui-react@^4.1.3: js-file-download "^0.4.12" js-yaml "=4.1.0" lodash "^4.17.21" -<<<<<<< HEAD - memoizee "^0.4.15" -======= ->>>>>>> e5aaf7bb66 (bump dependencies) prop-types "^15.7.2" randombytes "^2.1.0" react-copy-to-clipboard "5.0.4" @@ -26082,11 +23427,11 @@ swagger-ui-react@^4.1.3: redux "^4.1.2" redux-immutable "^4.0.0" remarkable "^2.0.1" - reselect "^4.0.0" + reselect "^4.1.5" serialize-error "^8.1.0" sha.js "^2.4.11" - swagger-client "^3.17.0" - url-parse "^1.5.3" + swagger-client "^3.18.4" + url-parse "^1.5.8" xml "=1.0.1" xml-but-prettier "^1.0.1" zenscroll "^4.0.2" @@ -26099,15 +23444,11 @@ swap-case@^2.0.2: tslib "^2.0.3" swr@^1.1.2: - version "1.2.1" - resolved "https://registry.npmjs.org/swr/-/swr-1.2.1.tgz#c21a4fe2139cb1c4630450589b5b5add947a9d41" - integrity sha512-1cuWXqJqXcFwbgONGCY4PHZ8v05009JdHsC3CIC6u7d00kgbMswNr1sHnnhseOBxtzVqcCNpOHEgVDciRer45w== + version "1.2.2" + resolved "https://registry.npmjs.org/swr/-/swr-1.2.2.tgz#6cae09928d30593a7980d80f85823e57468fac5d" + integrity sha512-ky0BskS/V47GpW8d6RU7CPsr6J8cr7mQD6+do5eky3bM0IyJaoi3vO8UhvrzJaObuTlGhPl2szodeB2dUd76Xw== -<<<<<<< HEAD -symbol-observable@1.2.0, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: -======= symbol-observable@1.2.0, symbol-observable@^1.0.4, symbol-observable@^1.1.0: ->>>>>>> e5aaf7bb66 (bump dependencies) version "1.2.0" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -26187,7 +23528,7 @@ tar@^4.4.12: safe-buffer "^5.2.1" yallist "^3.1.1" -tar@^6.0.2, tar@^6.1.0, tar@^6.1.2: +tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: version "6.1.11" resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== @@ -26293,20 +23634,12 @@ terser-webpack-plugin@*, terser-webpack-plugin@^5.1.3: source-map "^0.6.1" terser "^5.7.2" -terser@^5.10.0: - version "5.10.0" - resolved "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.20" - -terser@^5.7.2: - version "5.9.0" - resolved "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" - integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== +terser@^5.10.0, terser@^5.7.2: + version "5.12.0" + resolved "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" + integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== dependencies: + acorn "^8.5.0" commander "^2.20.0" source-map "~0.7.2" source-map-support "~0.5.20" @@ -26425,14 +23758,6 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -timers-ext@^0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" - integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== - dependencies: - es5-ext "~0.10.46" - next-tick "1" - timm@^1.6.1: version "1.7.1" resolved "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" @@ -26583,23 +23908,6 @@ touch@^3.1.0: dependencies: nopt "~1.0.10" -tough-cookie@^2.3.3, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" - integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== - dependencies: - ip-regex "^2.1.0" - psl "^1.1.28" - punycode "^2.1.1" - tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -26609,11 +23917,12 @@ tough-cookie@^4.0.0: punycode "^2.1.1" universalify "^0.1.2" -tr46@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" - integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: + psl "^1.1.28" punycode "^2.1.1" tr46@^2.1.0: @@ -26869,16 +24178,6 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -type@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - typed-rest-client@^1.8.4: version "1.8.4" resolved "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz#ba3fb788e5b9322547406392533f12d660a5ced6" @@ -26900,19 +24199,6 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript-json-schema@^0.52.0: - version "0.52.0" - resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.52.0.tgz#954560ec90e5486e8f7a5b7706ec59286a708e29" - integrity sha512-3ZdHzx116gZ+D9LmMl5/+d1G3Rpt8baWngKzepYWHnXbAa8Winv64CmFRqLlMKneE1c40yugYDFcWdyX1FjGzQ== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/node" "^16.9.2" - glob "^7.1.7" - safe-stable-stringify "^2.2.0" - ts-node "^10.2.1" - typescript "~4.4.4" - yargs "^17.1.1" - typescript-json-schema@^0.53.0: version "0.53.0" resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.53.0.tgz#ac5b89e4b0af55be422f475a041360e0556f88ea" @@ -26926,11 +24212,6 @@ typescript-json-schema@^0.53.0: typescript "~4.5.0" yargs "^17.1.1" -typescript@~4.4.4: - version "4.4.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" - integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== - typescript@~4.5.0, typescript@~4.5.2, typescript@~4.5.4: version "4.5.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" @@ -26973,16 +24254,6 @@ umask@^1.1.0: resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= -unbox-primitive@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" - integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.0" - has-symbols "^1.0.0" - which-boxed-primitive "^1.0.1" - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -27218,11 +24489,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -27310,10 +24576,10 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.5.3: - version "1.5.7" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.7.tgz#00780f60dbdae90181f51ed85fb24109422c932a" - integrity sha512-HxWkieX+STA38EDk7CE9MEryFeHCKzgagxlGvsdS7WBImq9Mk+PGwiT56w82WI3aicwJA8REp42Cxo98c8FZMA== +url-parse@^1.5.8: + version "1.5.10" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -27385,16 +24651,6 @@ util-promisify@^2.1.0: dependencies: object.getownpropertydescriptors "^2.0.3" -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - util@0.10.3: version "0.10.3" resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -27608,15 +24864,9 @@ vm-browserify@^1.0.1: integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== vm2@^3.9.6: -<<<<<<< HEAD version "3.9.9" resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw== -======= - version "3.9.7" - resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.7.tgz#bb87aa677c97c61e23a6cb6547e44e990517a6f6" - integrity sha512-g/GZ7V0Mlmch3eDVOATvAXr1GsJNg6kQ5PjvYy3HbJMCRn5slNbo/u73Uy7r5yUej1cRa3ZjtoVwcWSQuQ/fow== ->>>>>>> 76d216e74b (fixups) dependencies: acorn "^8.7.0" acorn-walk "^8.2.0" @@ -27700,6 +24950,11 @@ web-streams-polyfill@4.0.0-beta.1: resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz#3b19b9817374b7cee06d374ba7eeb3aeb80e8c95" integrity sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ== +web-streams-polyfill@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz#a6b74026b38e4885869fb5c589e90b95ccfc7965" + integrity sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -27715,30 +24970,31 @@ webidl-conversions@^6.1.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-dev-middleware@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz#8fc02dba6e72e1d373eca361623d84610f27be7c" - integrity sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg== +webpack-dev-middleware@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz#aa079a8dedd7e58bfeab358a9af7dab304cee57f" + integrity sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg== dependencies: colorette "^2.0.10" - memfs "^3.2.2" + memfs "^3.4.1" mime-types "^2.1.31" range-parser "^1.2.1" schema-utils "^4.0.0" webpack-dev-server@^4.7.3: - version "4.7.3" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz#4e995b141ff51fa499906eebc7906f6925d0beaa" - integrity sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q== + version "4.7.4" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz#d0ef7da78224578384e795ac228d8efb63d5f945" + integrity sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" "@types/serve-index" "^1.9.1" "@types/sockjs" "^0.3.33" "@types/ws" "^8.2.2" ansi-html-community "^0.0.8" bonjour "^3.5.0" - chokidar "^3.5.2" + chokidar "^3.5.3" colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^1.6.0" @@ -27758,8 +25014,8 @@ webpack-dev-server@^4.7.3: sockjs "^0.3.21" spdy "^4.0.2" strip-ansi "^7.0.0" - webpack-dev-middleware "^5.3.0" - ws "^8.1.0" + webpack-dev-middleware "^5.3.1" + ws "^8.4.2" webpack-node-externals@^3.0.0: version "3.0.0" @@ -27780,9 +25036,9 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5, webpack@^5.66.0: - version "5.69.1" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz#8cfd92c192c6a52c99ab00529b5a0d33aa848dc5" - integrity sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A== + version "5.70.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz#3461e6287a72b5e6e2f4872700bc8de0d7500e6d" + integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -27793,7 +25049,7 @@ webpack@^5, webpack@^5.66.0: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.3" + enhanced-resolve "^5.9.2" es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" @@ -27809,16 +25065,7 @@ webpack@^5, webpack@^5.66.0: watchpack "^2.3.1" webpack-sources "^3.2.3" -websocket-driver@>=0.5.1: - version "0.7.3" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== - dependencies: - http-parser-js ">=0.4.0 <0.4.11" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-driver@^0.7.4: +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -27839,16 +25086,11 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@^3.0.0: +whatwg-fetch@^3.0.0, whatwg-fetch@^3.4.1: version "3.6.2" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== -whatwg-fetch@^3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz#e5f871572d6879663fa5674c8f833f15a8425ab3" - integrity sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ== - whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" @@ -27862,16 +25104,7 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^8.0.0, whatwg-url@^8.4.0: - version "8.4.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" - integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^2.0.2" - webidl-conversions "^6.1.0" - -whatwg-url@^8.5.0: +whatwg-url@^8.0.0, whatwg-url@^8.4.0, whatwg-url@^8.5.0: version "8.7.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== @@ -27880,7 +25113,7 @@ whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: +which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -27962,11 +25195,7 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" -<<<<<<< HEAD winston-transport@^4.4.2: -======= -winston-transport@^4.4.2, winston-transport@^4.5.0: ->>>>>>> e5aaf7bb66 (bump dependencies) version "4.5.0" resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== @@ -27979,25 +25208,6 @@ winston@^3.2.1: version "3.5.1" resolved "https://registry.npmjs.org/winston/-/winston-3.5.1.tgz#b25cc899d015836dbf8c583dec8c4c4483a0da2e" integrity sha512-tbRtVy+vsSSCLcZq/8nXZaOie/S2tPXPFt4be/Q3vI/WtYwm7rrwidxVw2GRa38FIXcJ1kUM6MOZ9Jmnk3F3UA== -<<<<<<< HEAD -======= - dependencies: - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.3.2" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.4.2" - -winston@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz#be32587a099a292b88c49fac6fa529d478d93fb6" - integrity sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w== ->>>>>>> e5aaf7bb66 (bump dependencies) dependencies: "@dabh/diagnostics" "^2.0.2" async "^3.2.3" @@ -28124,27 +25334,16 @@ ws@7.4.5: resolved "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== -<<<<<<< HEAD -ws@8.3.0, "ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.2.3, ws@^7.3.1, ws@^7.4.6, ws@^8.3.0: - version "7.5.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== - -======= ->>>>>>> e5aaf7bb66 (bump dependencies) -ws@8.5.0, ws@^8.1.0: +ws@8.5.0, ws@^8.4.2: version "8.5.0" resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -<<<<<<< HEAD -======= "ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1, ws@^7.4.6, ws@^8.3.0: version "7.5.6" resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== ->>>>>>> e5aaf7bb66 (bump dependencies) ws@~7.4.2: version "7.4.6" resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" From 5a5bd5bc030e9c8124ffd4997f81552907e8f046 Mon Sep 17 00:00:00 2001 From: Leon Date: Fri, 25 Mar 2022 14:37:31 +0100 Subject: [PATCH 170/225] fix refresh-issue when switching between radars Signed-off-by: Leon --- plugins/tech-radar/src/components/RadarComponent.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tech-radar/src/components/RadarComponent.tsx b/plugins/tech-radar/src/components/RadarComponent.tsx index e26d44aa1a..e7cca7d45f 100644 --- a/plugins/tech-radar/src/components/RadarComponent.tsx +++ b/plugins/tech-radar/src/components/RadarComponent.tsx @@ -28,7 +28,7 @@ const useTechRadarLoader = (id: string | undefined) => { const { error, value, loading } = useAsync( async () => techRadarApi.load(id), - [techRadarApi], + [techRadarApi, id], ); useEffect(() => { From f69789330ac9b6cf658bbe4499fb37055065d96d Mon Sep 17 00:00:00 2001 From: Leon Date: Fri, 25 Mar 2022 14:43:22 +0100 Subject: [PATCH 171/225] changeset Signed-off-by: Leon --- .changeset/silly-llamas-relax.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/silly-llamas-relax.md diff --git a/.changeset/silly-llamas-relax.md b/.changeset/silly-llamas-relax.md new file mode 100644 index 0000000000..f5a002d46d --- /dev/null +++ b/.changeset/silly-llamas-relax.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-radar': patch +--- + +Fix an issue where the Radar is not updated when switching between different radars From ac0a6cb827e3be511806c0da505099ed6257298b Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Mon, 21 Mar 2022 21:19:45 -0400 Subject: [PATCH 172/225] Introduce PermissionMessageBatch utility type. Rename Identified type to IdentifiedPermissionMessage. Co-authored-by: Mike Lewis Signed-off-by: Joe Porpeglia --- .../permission-backend/src/service/router.ts | 17 +++++---- .../src/PermissionClient.test.ts | 38 ++++++++++++------- .../permission-common/src/PermissionClient.ts | 4 +- plugins/permission-common/src/types/api.ts | 18 +++++---- plugins/permission-common/src/types/index.ts | 3 +- .../src/ServerPermissionClient.test.ts | 12 +++--- .../createPermissionIntegrationRouter.ts | 7 ++-- 7 files changed, 59 insertions(+), 40 deletions(-) diff --git a/plugins/permission-backend/src/service/router.ts b/plugins/permission-backend/src/service/router.ts index 034ff0b9ed..ca5467fa6e 100644 --- a/plugins/permission-backend/src/service/router.ts +++ b/plugins/permission-backend/src/service/router.ts @@ -32,7 +32,7 @@ import { AuthorizeResult, AuthorizeDecision, AuthorizeQuery, - Identified, + IdentifiedPermissionMessage, AuthorizeRequest, AuthorizeResponse, isResourcePermission, @@ -73,11 +73,12 @@ const permissionSchema = z.union([ }), ]); -const querySchema: z.ZodSchema> = z.object({ - id: z.string(), - resourceRef: z.string().optional(), - permission: permissionSchema, -}); +const querySchema: z.ZodSchema> = + z.object({ + id: z.string(), + resourceRef: z.string().optional(), + permission: permissionSchema, + }); const requestSchema: z.ZodSchema = z.object({ items: z.array(querySchema), @@ -98,12 +99,12 @@ export interface RouterOptions { } const handleRequest = async ( - requests: Identified[], + requests: IdentifiedPermissionMessage[], user: BackstageIdentityResponse | undefined, policy: PermissionPolicy, permissionIntegrationClient: PermissionIntegrationClient, authHeader?: string, -): Promise[]> => { +): Promise[]> => { const applyConditionsLoaderFor = memoize((pluginId: string) => { return new DataLoader< ApplyConditionsRequestEntry, diff --git a/plugins/permission-common/src/PermissionClient.test.ts b/plugins/permission-common/src/PermissionClient.test.ts index 4f66bcffd3..36f26d883f 100644 --- a/plugins/permission-common/src/PermissionClient.test.ts +++ b/plugins/permission-common/src/PermissionClient.test.ts @@ -18,7 +18,11 @@ import { RestContext, rest } from 'msw'; import { setupServer } from 'msw/node'; import { ConfigReader } from '@backstage/config'; import { PermissionClient } from './PermissionClient'; -import { AuthorizeQuery, AuthorizeResult, Identified } from './types/api'; +import { + AuthorizeQuery, + AuthorizeResult, + IdentifiedPermissionMessage, +} from './types/api'; import { DiscoveryApi } from './types/discovery'; import { createPermission } from './permissions'; @@ -54,10 +58,12 @@ describe('PermissionClient', () => { }; const mockAuthorizeHandler = jest.fn((req, res, { json }: RestContext) => { - const responses = req.body.items.map((a: Identified) => ({ - id: a.id, - result: AuthorizeResult.ALLOW, - })); + const responses = req.body.items.map( + (a: IdentifiedPermissionMessage) => ({ + id: a.id, + result: AuthorizeResult.ALLOW, + }), + ); return res(json({ items: responses })); }); @@ -141,7 +147,7 @@ describe('PermissionClient', () => { mockAuthorizeHandler.mockImplementationOnce( (req, res, { json }: RestContext) => { const responses = req.body.items.map( - (a: Identified) => ({ + (a: IdentifiedPermissionMessage) => ({ id: a.id, outcome: AuthorizeResult.ALLOW, }), @@ -158,10 +164,12 @@ describe('PermissionClient', () => { it('should allow all when permission.enabled is false', async () => { mockAuthorizeHandler.mockImplementationOnce( (req, res, { json }: RestContext) => { - const responses = req.body.map((a: Identified) => ({ - id: a.id, - result: AuthorizeResult.DENY, - })); + const responses = req.body.map( + (a: IdentifiedPermissionMessage) => ({ + id: a.id, + result: AuthorizeResult.DENY, + }), + ); return res(json({ items: responses })); }, @@ -180,10 +188,12 @@ describe('PermissionClient', () => { it('should allow all when permission.enabled is not configured', async () => { mockAuthorizeHandler.mockImplementationOnce( (req, res, { json }: RestContext) => { - const responses = req.body.map((a: Identified) => ({ - id: a.id, - outcome: AuthorizeResult.DENY, - })); + const responses = req.body.map( + (a: IdentifiedPermissionMessage) => ({ + id: a.id, + outcome: AuthorizeResult.DENY, + }), + ); return res(json(responses)); }, diff --git a/plugins/permission-common/src/PermissionClient.ts b/plugins/permission-common/src/PermissionClient.ts index 9431050690..fbae34cc63 100644 --- a/plugins/permission-common/src/PermissionClient.ts +++ b/plugins/permission-common/src/PermissionClient.ts @@ -23,7 +23,7 @@ import { AuthorizeResult, AuthorizeQuery, AuthorizeDecision, - Identified, + IdentifiedPermissionMessage, PermissionCriteria, PermissionCondition, AuthorizeResponse, @@ -145,7 +145,7 @@ export class PermissionClient implements PermissionAuthorizer { const responsesById = responseBody.items.reduce((acc, r) => { acc[r.id] = r; return acc; - }, {} as Record>); + }, {} as Record>); return request.items.map(query => responsesById[query.id]); } diff --git a/plugins/permission-common/src/types/api.ts b/plugins/permission-common/src/types/api.ts index 5b46b955d8..c4d68ce3fa 100644 --- a/plugins/permission-common/src/types/api.ts +++ b/plugins/permission-common/src/types/api.ts @@ -21,7 +21,15 @@ import { Permission } from './permission'; * requests. * @public */ -export type Identified = T & { id: string }; +export type IdentifiedPermissionMessage = T & { id: string }; + +/** + * A batch of request or response items. + * @public + */ +export type PermissionMessageBatch = { + items: IdentifiedPermissionMessage[]; +}; /** * The result of an authorization request. @@ -55,9 +63,7 @@ export type AuthorizeQuery = { * A batch of authorization requests from {@link PermissionClient#authorize}. * @public */ -export type AuthorizeRequest = { - items: Identified[]; -}; +export type AuthorizeRequest = PermissionMessageBatch; /** * A condition returned with a CONDITIONAL authorization response. @@ -127,6 +133,4 @@ export type AuthorizeDecision = * A batch of authorization responses from {@link PermissionClient#authorize}. * @public */ -export type AuthorizeResponse = { - items: Identified[]; -}; +export type AuthorizeResponse = PermissionMessageBatch; diff --git a/plugins/permission-common/src/types/index.ts b/plugins/permission-common/src/types/index.ts index 71ef7695b8..83be625046 100644 --- a/plugins/permission-common/src/types/index.ts +++ b/plugins/permission-common/src/types/index.ts @@ -20,7 +20,8 @@ export type { AuthorizeRequest, AuthorizeDecision, AuthorizeResponse, - Identified, + IdentifiedPermissionMessage, + PermissionMessageBatch, PermissionCondition, PermissionCriteria, AllOfCriteria, diff --git a/plugins/permission-node/src/ServerPermissionClient.test.ts b/plugins/permission-node/src/ServerPermissionClient.test.ts index f2302f8f0d..842f996a6a 100644 --- a/plugins/permission-node/src/ServerPermissionClient.test.ts +++ b/plugins/permission-node/src/ServerPermissionClient.test.ts @@ -16,7 +16,7 @@ import { ServerPermissionClient } from './ServerPermissionClient'; import { - Identified, + IdentifiedPermissionMessage, AuthorizeQuery, AuthorizeResult, createPermission, @@ -32,10 +32,12 @@ import { RestContext, rest } from 'msw'; const server = setupServer(); const mockAuthorizeHandler = jest.fn((req, res, { json }: RestContext) => { - const responses = req.body.items.map((r: Identified) => ({ - id: r.id, - result: AuthorizeResult.ALLOW, - })); + const responses = req.body.items.map( + (r: IdentifiedPermissionMessage) => ({ + id: r.id, + result: AuthorizeResult.ALLOW, + }), + ); return res(json({ items: responses })); }); diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts index efb5d7c3a6..17e514432c 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts @@ -21,7 +21,7 @@ import { InputError } from '@backstage/errors'; import { errorHandler } from '@backstage/backend-common'; import { AuthorizeResult, - Identified, + IdentifiedPermissionMessage, PermissionCondition, PermissionCriteria, } from '@backstage/plugin-permission-common'; @@ -67,7 +67,7 @@ const applyConditionsRequestSchema = z.object({ * * @public */ -export type ApplyConditionsRequestEntry = Identified<{ +export type ApplyConditionsRequestEntry = IdentifiedPermissionMessage<{ resourceRef: string; resourceType: string; conditions: PermissionCriteria; @@ -88,7 +88,8 @@ export type ApplyConditionsRequest = { * * @public */ -export type ApplyConditionsResponseEntry = Identified; +export type ApplyConditionsResponseEntry = + IdentifiedPermissionMessage; /** * A batch of {@link ApplyConditionsResponseEntry} objects. From 970814ed38423d868a4ae463047da1922f861ec0 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Mon, 21 Mar 2022 21:56:49 -0400 Subject: [PATCH 173/225] Move policy decision types to permission-common Co-authored-by: Mike Lewis Signed-off-by: Joe Porpeglia --- packages/backend/src/plugins/permission.ts | 6 +-- .../service/PermissionIntegrationClient.ts | 6 ++- plugins/permission-common/src/types/api.ts | 40 ++++++++++++++++ plugins/permission-common/src/types/index.ts | 3 ++ .../src/integration/createConditionExports.ts | 2 +- .../createPermissionIntegrationRouter.ts | 2 +- plugins/permission-node/src/policy/index.ts | 8 +--- plugins/permission-node/src/policy/types.ts | 46 +------------------ 8 files changed, 54 insertions(+), 59 deletions(-) diff --git a/packages/backend/src/plugins/permission.ts b/packages/backend/src/plugins/permission.ts index 7337687c54..e4c2e1d435 100644 --- a/packages/backend/src/plugins/permission.ts +++ b/packages/backend/src/plugins/permission.ts @@ -16,11 +16,11 @@ import { IdentityClient } from '@backstage/plugin-auth-node'; import { createRouter } from '@backstage/plugin-permission-backend'; -import { AuthorizeResult } from '@backstage/plugin-permission-common'; import { - PermissionPolicy, + AuthorizeResult, PolicyDecision, -} from '@backstage/plugin-permission-node'; +} from '@backstage/plugin-permission-common'; +import { PermissionPolicy } from '@backstage/plugin-permission-node'; import { Router } from 'express'; import { PluginEnvironment } from '../types'; diff --git a/plugins/permission-backend/src/service/PermissionIntegrationClient.ts b/plugins/permission-backend/src/service/PermissionIntegrationClient.ts index 2b2161ee71..2c31d371c3 100644 --- a/plugins/permission-backend/src/service/PermissionIntegrationClient.ts +++ b/plugins/permission-backend/src/service/PermissionIntegrationClient.ts @@ -17,11 +17,13 @@ import fetch from 'node-fetch'; import { z } from 'zod'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; -import { AuthorizeResult } from '@backstage/plugin-permission-common'; +import { + AuthorizeResult, + ConditionalPolicyDecision, +} from '@backstage/plugin-permission-common'; import { ApplyConditionsRequestEntry, ApplyConditionsResponseEntry, - ConditionalPolicyDecision, } from '@backstage/plugin-permission-node'; const responseSchema = z.object({ diff --git a/plugins/permission-common/src/types/api.ts b/plugins/permission-common/src/types/api.ts index c4d68ce3fa..97b1182805 100644 --- a/plugins/permission-common/src/types/api.ts +++ b/plugins/permission-common/src/types/api.ts @@ -50,6 +50,46 @@ export enum AuthorizeResult { CONDITIONAL = 'CONDITIONAL', } +/** + * A definitive decision returned by the {@link @backstage/plugin-permission-node#PermissionPolicy}. + * + * @remarks + * + * This indicates that the policy unconditionally allows (or denies) the request. + * + * @public + */ +export type DefinitivePolicyDecision = { + result: AuthorizeResult.ALLOW | AuthorizeResult.DENY; +}; + +/** + * A conditional decision returned by the {@link @backstage/plugin-permission-node#PermissionPolicy}. + * + * @remarks + * + * This indicates that the policy allows authorization for the request, given that the returned + * conditions hold when evaluated. The conditions will be evaluated by the corresponding plugin + * which knows about the referenced permission rules. + * + * @public + */ +export type ConditionalPolicyDecision = { + result: AuthorizeResult.CONDITIONAL; + pluginId: string; + resourceType: string; + conditions: PermissionCriteria; +}; + +/** + * A decision returned by the {@link @backstage/plugin-permission-node#PermissionPolicy}. + * + * @public + */ +export type PolicyDecision = + | DefinitivePolicyDecision + | ConditionalPolicyDecision; + /** * An individual authorization request for {@link PermissionClient#authorize}. * @public diff --git a/plugins/permission-common/src/types/index.ts b/plugins/permission-common/src/types/index.ts index 83be625046..f89f0c8aec 100644 --- a/plugins/permission-common/src/types/index.ts +++ b/plugins/permission-common/src/types/index.ts @@ -22,6 +22,9 @@ export type { AuthorizeResponse, IdentifiedPermissionMessage, PermissionMessageBatch, + ConditionalPolicyDecision, + DefinitivePolicyDecision, + PolicyDecision, PermissionCondition, PermissionCriteria, AllOfCriteria, diff --git a/plugins/permission-node/src/integration/createConditionExports.ts b/plugins/permission-node/src/integration/createConditionExports.ts index fd351128ed..ab88987389 100644 --- a/plugins/permission-node/src/integration/createConditionExports.ts +++ b/plugins/permission-node/src/integration/createConditionExports.ts @@ -16,10 +16,10 @@ import { AuthorizeResult, + ConditionalPolicyDecision, PermissionCondition, PermissionCriteria, } from '@backstage/plugin-permission-common'; -import { ConditionalPolicyDecision } from '../policy'; import { PermissionRule } from '../types'; import { createConditionFactory } from './createConditionFactory'; diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts index 17e514432c..b598487062 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts @@ -21,6 +21,7 @@ import { InputError } from '@backstage/errors'; import { errorHandler } from '@backstage/backend-common'; import { AuthorizeResult, + DefinitivePolicyDecision, IdentifiedPermissionMessage, PermissionCondition, PermissionCriteria, @@ -32,7 +33,6 @@ import { isNotCriteria, isOrCriteria, } from './util'; -import { DefinitivePolicyDecision } from '../policy/types'; const permissionCriteriaSchema: z.ZodSchema< PermissionCriteria diff --git a/plugins/permission-node/src/policy/index.ts b/plugins/permission-node/src/policy/index.ts index 1d3fc4a737..988ce345a4 100644 --- a/plugins/permission-node/src/policy/index.ts +++ b/plugins/permission-node/src/policy/index.ts @@ -14,10 +14,4 @@ * limitations under the License. */ -export type { - ConditionalPolicyDecision, - DefinitivePolicyDecision, - PermissionPolicy, - PolicyAuthorizeQuery, - PolicyDecision, -} from './types'; +export type { PermissionPolicy, PolicyAuthorizeQuery } from './types'; diff --git a/plugins/permission-node/src/policy/types.ts b/plugins/permission-node/src/policy/types.ts index 19b12b8f28..fed803a2a9 100644 --- a/plugins/permission-node/src/policy/types.ts +++ b/plugins/permission-node/src/policy/types.ts @@ -16,9 +16,7 @@ import { AuthorizeQuery, - AuthorizeResult, - PermissionCondition, - PermissionCriteria, + PolicyDecision, } from '@backstage/plugin-permission-common'; import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; @@ -35,48 +33,6 @@ import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; */ export type PolicyAuthorizeQuery = Omit; -/** - * A definitive result to an authorization request, returned by the {@link PermissionPolicy}. - * - * @remarks - * - * This indicates that the policy unconditionally allows (or denies) the request. - * - * @public - */ -export type DefinitivePolicyDecision = { - result: AuthorizeResult.ALLOW | AuthorizeResult.DENY; -}; - -/** - * A conditional result to an authorization request, returned by the {@link PermissionPolicy}. - * - * @remarks - * - * This indicates that the policy allows authorization for the request, given that the returned - * conditions hold when evaluated. The conditions will be evaluated by the corresponding plugin - * which knows about the referenced permission rules. - * - * Similar to {@link @backstage/permission-common#AuthorizeDecision}, but with the plugin and resource - * identifiers needed to evaluate the returned conditions. - * @public - */ -export type ConditionalPolicyDecision = { - result: AuthorizeResult.CONDITIONAL; - pluginId: string; - resourceType: string; - conditions: PermissionCriteria; -}; - -/** - * The result of evaluating an authorization request with a {@link PermissionPolicy}. - * - * @public - */ -export type PolicyDecision = - | DefinitivePolicyDecision - | ConditionalPolicyDecision; - /** * A policy to evaluate authorization requests for any permissioned action performed in Backstage. * From e43290ce96b52e4a09267468282faaadcf5603f9 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Tue, 22 Mar 2022 10:24:08 -0400 Subject: [PATCH 174/225] Rename permission backend request and response types Signed-off-by: Joe Porpeglia --- .../apis/PermissionApi/MockPermissionApi.ts | 10 +++-- .../permission-backend/src/service/router.ts | 40 ++++++++++--------- .../src/PermissionClient.test.ts | 10 ++--- .../permission-common/src/PermissionClient.ts | 20 +++++----- plugins/permission-common/src/types/api.ts | 40 ++++++++++--------- plugins/permission-common/src/types/index.ts | 8 ++-- .../permission-common/src/types/permission.ts | 6 +-- .../src/ServerPermissionClient.test.ts | 4 +- .../src/ServerPermissionClient.ts | 12 +++--- plugins/permission-node/src/policy/types.ts | 7 +++- .../src/apis/IdentityPermissionApi.ts | 8 ++-- .../src/apis/PermissionApi.ts | 8 ++-- .../service/AuthorizedSearchEngine.test.ts | 18 ++++++--- .../src/service/AuthorizedSearchEngine.ts | 13 +++--- 14 files changed, 114 insertions(+), 90 deletions(-) diff --git a/packages/test-utils/src/testUtils/apis/PermissionApi/MockPermissionApi.ts b/packages/test-utils/src/testUtils/apis/PermissionApi/MockPermissionApi.ts index ac5c44248d..163af5dd53 100644 --- a/packages/test-utils/src/testUtils/apis/PermissionApi/MockPermissionApi.ts +++ b/packages/test-utils/src/testUtils/apis/PermissionApi/MockPermissionApi.ts @@ -16,8 +16,8 @@ import { PermissionApi } from '@backstage/plugin-permission-react'; import { - AuthorizeDecision, - AuthorizeQuery, + EvaluatePermissionResponse, + EvaluatePermissionRequest, AuthorizeResult, } from '@backstage/plugin-permission-common'; @@ -31,12 +31,14 @@ import { export class MockPermissionApi implements PermissionApi { constructor( private readonly requestHandler: ( - request: AuthorizeQuery, + request: EvaluatePermissionRequest, ) => AuthorizeResult.ALLOW | AuthorizeResult.DENY = () => AuthorizeResult.ALLOW, ) {} - async authorize(request: AuthorizeQuery): Promise { + async authorize( + request: EvaluatePermissionRequest, + ): Promise { return { result: this.requestHandler(request) }; } } diff --git a/plugins/permission-backend/src/service/router.ts b/plugins/permission-backend/src/service/router.ts index ca5467fa6e..ea7fbcca24 100644 --- a/plugins/permission-backend/src/service/router.ts +++ b/plugins/permission-backend/src/service/router.ts @@ -30,11 +30,11 @@ import { } from '@backstage/plugin-auth-node'; import { AuthorizeResult, - AuthorizeDecision, - AuthorizeQuery, + EvaluatePermissionResponse, + EvaluatePermissionRequest, IdentifiedPermissionMessage, - AuthorizeRequest, - AuthorizeResponse, + EvaluatePermissionRequestBatch, + EvaluatePermissionResponseBatch, isResourcePermission, PermissionAttributes, } from '@backstage/plugin-permission-common'; @@ -73,17 +73,19 @@ const permissionSchema = z.union([ }), ]); -const querySchema: z.ZodSchema> = - z.object({ - id: z.string(), - resourceRef: z.string().optional(), - permission: permissionSchema, - }); - -const requestSchema: z.ZodSchema = z.object({ - items: z.array(querySchema), +const evaluatePermissionRequestSchema: z.ZodSchema< + IdentifiedPermissionMessage +> = z.object({ + id: z.string(), + resourceRef: z.string().optional(), + permission: permissionSchema, }); +const evaluatePermissionRequestBatchSchema: z.ZodSchema = + z.object({ + items: z.array(evaluatePermissionRequestSchema), + }); + /** * Options required when constructing a new {@link express#Router} using * {@link createRouter}. @@ -99,12 +101,12 @@ export interface RouterOptions { } const handleRequest = async ( - requests: IdentifiedPermissionMessage[], + requests: IdentifiedPermissionMessage[], user: BackstageIdentityResponse | undefined, policy: PermissionPolicy, permissionIntegrationClient: PermissionIntegrationClient, authHeader?: string, -): Promise[]> => { +): Promise[]> => { const applyConditionsLoaderFor = memoize((pluginId: string) => { return new DataLoader< ApplyConditionsRequestEntry, @@ -184,15 +186,17 @@ export async function createRouter( router.post( '/authorize', async ( - req: Request, - res: Response, + req: Request, + res: Response, ) => { const token = getBearerTokenFromAuthorizationHeader( req.header('authorization'), ); const user = token ? await identity.authenticate(token) : undefined; - const parseResult = requestSchema.safeParse(req.body); + const parseResult = evaluatePermissionRequestBatchSchema.safeParse( + req.body, + ); if (!parseResult.success) { throw new InputError(parseResult.error.toString()); diff --git a/plugins/permission-common/src/PermissionClient.test.ts b/plugins/permission-common/src/PermissionClient.test.ts index 36f26d883f..65a7c7fbbe 100644 --- a/plugins/permission-common/src/PermissionClient.test.ts +++ b/plugins/permission-common/src/PermissionClient.test.ts @@ -19,7 +19,7 @@ import { setupServer } from 'msw/node'; import { ConfigReader } from '@backstage/config'; import { PermissionClient } from './PermissionClient'; import { - AuthorizeQuery, + EvaluatePermissionRequest, AuthorizeResult, IdentifiedPermissionMessage, } from './types/api'; @@ -59,7 +59,7 @@ describe('PermissionClient', () => { const mockAuthorizeHandler = jest.fn((req, res, { json }: RestContext) => { const responses = req.body.items.map( - (a: IdentifiedPermissionMessage) => ({ + (a: IdentifiedPermissionMessage) => ({ id: a.id, result: AuthorizeResult.ALLOW, }), @@ -147,7 +147,7 @@ describe('PermissionClient', () => { mockAuthorizeHandler.mockImplementationOnce( (req, res, { json }: RestContext) => { const responses = req.body.items.map( - (a: IdentifiedPermissionMessage) => ({ + (a: IdentifiedPermissionMessage) => ({ id: a.id, outcome: AuthorizeResult.ALLOW, }), @@ -165,7 +165,7 @@ describe('PermissionClient', () => { mockAuthorizeHandler.mockImplementationOnce( (req, res, { json }: RestContext) => { const responses = req.body.map( - (a: IdentifiedPermissionMessage) => ({ + (a: IdentifiedPermissionMessage) => ({ id: a.id, result: AuthorizeResult.DENY, }), @@ -189,7 +189,7 @@ describe('PermissionClient', () => { mockAuthorizeHandler.mockImplementationOnce( (req, res, { json }: RestContext) => { const responses = req.body.map( - (a: IdentifiedPermissionMessage) => ({ + (a: IdentifiedPermissionMessage) => ({ id: a.id, outcome: AuthorizeResult.DENY, }), diff --git a/plugins/permission-common/src/PermissionClient.ts b/plugins/permission-common/src/PermissionClient.ts index fbae34cc63..3027234b72 100644 --- a/plugins/permission-common/src/PermissionClient.ts +++ b/plugins/permission-common/src/PermissionClient.ts @@ -21,13 +21,13 @@ import * as uuid from 'uuid'; import { z } from 'zod'; import { AuthorizeResult, - AuthorizeQuery, - AuthorizeDecision, + EvaluatePermissionRequest, + EvaluatePermissionResponse, IdentifiedPermissionMessage, PermissionCriteria, PermissionCondition, - AuthorizeResponse, - AuthorizeRequest, + EvaluatePermissionResponseBatch, + EvaluatePermissionRequestBatch, } from './types/api'; import { DiscoveryApi } from './types/discovery'; import { @@ -107,9 +107,9 @@ export class PermissionClient implements PermissionAuthorizer { * @public */ async authorize( - queries: AuthorizeQuery[], + queries: EvaluatePermissionRequest[], options?: AuthorizeRequestOptions, - ): Promise { + ): Promise { // TODO(permissions): it would be great to provide some kind of typing guarantee that // conditional responses will only ever be returned for requests containing a resourceType // but no resourceRef. That way clients who aren't prepared to handle filtering according @@ -119,7 +119,7 @@ export class PermissionClient implements PermissionAuthorizer { return queries.map(_ => ({ result: AuthorizeResult.ALLOW })); } - const request: AuthorizeRequest = { + const request: EvaluatePermissionRequestBatch = { items: queries.map(query => ({ id: uuid.v4(), ...query, @@ -145,7 +145,7 @@ export class PermissionClient implements PermissionAuthorizer { const responsesById = responseBody.items.reduce((acc, r) => { acc[r.id] = r; return acc; - }, {} as Record>); + }, {} as Record>); return request.items.map(query => responsesById[query.id]); } @@ -155,9 +155,9 @@ export class PermissionClient implements PermissionAuthorizer { } private assertValidResponse( - request: AuthorizeRequest, + request: EvaluatePermissionRequestBatch, json: any, - ): asserts json is AuthorizeResponse { + ): asserts json is EvaluatePermissionResponseBatch { const authorizedResponses = responseSchema.parse(json); const responseIds = authorizedResponses.items.map(r => r.id); const hasAllRequestIds = request.items.every(r => diff --git a/plugins/permission-common/src/types/api.ts b/plugins/permission-common/src/types/api.ts index 97b1182805..b0bcf94f56 100644 --- a/plugins/permission-common/src/types/api.ts +++ b/plugins/permission-common/src/types/api.ts @@ -90,21 +90,6 @@ export type PolicyDecision = | DefinitivePolicyDecision | ConditionalPolicyDecision; -/** - * An individual authorization request for {@link PermissionClient#authorize}. - * @public - */ -export type AuthorizeQuery = { - permission: Permission; - resourceRef?: string; -}; - -/** - * A batch of authorization requests from {@link PermissionClient#authorize}. - * @public - */ -export type AuthorizeRequest = PermissionMessageBatch; - /** * A condition returned with a CONDITIONAL authorization response. * @@ -159,10 +144,26 @@ export type PermissionCriteria = | TQuery; /** - * An individual authorization response from {@link PermissionClient#authorize}. + * An individual request sent to the permission backend. * @public */ -export type AuthorizeDecision = +export type EvaluatePermissionRequest = { + permission: Permission; + resourceRef?: string; +}; + +/** + * A batch of requests sent to the permission backend. + * @public + */ +export type EvaluatePermissionRequestBatch = + PermissionMessageBatch; + +/** + * An individual response from the permission backend. + * @public + */ +export type EvaluatePermissionResponse = | { result: AuthorizeResult.ALLOW | AuthorizeResult.DENY } | { result: AuthorizeResult.CONDITIONAL; @@ -170,7 +171,8 @@ export type AuthorizeDecision = }; /** - * A batch of authorization responses from {@link PermissionClient#authorize}. + * A batch of responses the permission backend. * @public */ -export type AuthorizeResponse = PermissionMessageBatch; +export type EvaluatePermissionResponseBatch = + PermissionMessageBatch; diff --git a/plugins/permission-common/src/types/index.ts b/plugins/permission-common/src/types/index.ts index f89f0c8aec..1a993a981c 100644 --- a/plugins/permission-common/src/types/index.ts +++ b/plugins/permission-common/src/types/index.ts @@ -16,10 +16,10 @@ export { AuthorizeResult } from './api'; export type { - AuthorizeQuery, - AuthorizeRequest, - AuthorizeDecision, - AuthorizeResponse, + EvaluatePermissionRequest, + EvaluatePermissionRequestBatch, + EvaluatePermissionResponse, + EvaluatePermissionResponseBatch, IdentifiedPermissionMessage, PermissionMessageBatch, ConditionalPolicyDecision, diff --git a/plugins/permission-common/src/types/permission.ts b/plugins/permission-common/src/types/permission.ts index ebfdadb48b..34e7884793 100644 --- a/plugins/permission-common/src/types/permission.ts +++ b/plugins/permission-common/src/types/permission.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { AuthorizeQuery, AuthorizeDecision } from './api'; +import { EvaluatePermissionRequest, EvaluatePermissionResponse } from './api'; /** * The attributes related to a given permission; these should be generic and widely applicable to @@ -94,9 +94,9 @@ export type ResourcePermission = */ export interface PermissionAuthorizer { authorize( - queries: AuthorizeQuery[], + requests: EvaluatePermissionRequest[], options?: AuthorizeRequestOptions, - ): Promise; + ): Promise; } /** diff --git a/plugins/permission-node/src/ServerPermissionClient.test.ts b/plugins/permission-node/src/ServerPermissionClient.test.ts index 842f996a6a..f5711ed4a0 100644 --- a/plugins/permission-node/src/ServerPermissionClient.test.ts +++ b/plugins/permission-node/src/ServerPermissionClient.test.ts @@ -17,7 +17,7 @@ import { ServerPermissionClient } from './ServerPermissionClient'; import { IdentifiedPermissionMessage, - AuthorizeQuery, + EvaluatePermissionRequest, AuthorizeResult, createPermission, } from '@backstage/plugin-permission-common'; @@ -33,7 +33,7 @@ import { RestContext, rest } from 'msw'; const server = setupServer(); const mockAuthorizeHandler = jest.fn((req, res, { json }: RestContext) => { const responses = req.body.items.map( - (r: IdentifiedPermissionMessage) => ({ + (r: IdentifiedPermissionMessage) => ({ id: r.id, result: AuthorizeResult.ALLOW, }), diff --git a/plugins/permission-node/src/ServerPermissionClient.ts b/plugins/permission-node/src/ServerPermissionClient.ts index 8c03016268..56381dff17 100644 --- a/plugins/permission-node/src/ServerPermissionClient.ts +++ b/plugins/permission-node/src/ServerPermissionClient.ts @@ -20,9 +20,9 @@ import { } from '@backstage/backend-common'; import { Config } from '@backstage/config'; import { - AuthorizeQuery, + EvaluatePermissionRequest, AuthorizeRequestOptions, - AuthorizeDecision, + EvaluatePermissionResponse, AuthorizeResult, PermissionClient, PermissionAuthorizer, @@ -78,9 +78,9 @@ export class ServerPermissionClient implements PermissionAuthorizer { } async authorize( - queries: AuthorizeQuery[], + requests: EvaluatePermissionRequest[], options?: AuthorizeRequestOptions, - ): Promise { + ): Promise { // Check if permissions are enabled before validating the server token. That // way when permissions are disabled, the noop token manager can be used // without fouling up the logic inside the ServerPermissionClient, because @@ -89,9 +89,9 @@ export class ServerPermissionClient implements PermissionAuthorizer { !this.permissionEnabled || (await this.isValidServerToken(options?.token)) ) { - return queries.map(_ => ({ result: AuthorizeResult.ALLOW })); + return requests.map(_ => ({ result: AuthorizeResult.ALLOW })); } - return this.permissionClient.authorize(queries, options); + return this.permissionClient.authorize(requests, options); } private async isValidServerToken( diff --git a/plugins/permission-node/src/policy/types.ts b/plugins/permission-node/src/policy/types.ts index fed803a2a9..36145eea77 100644 --- a/plugins/permission-node/src/policy/types.ts +++ b/plugins/permission-node/src/policy/types.ts @@ -15,7 +15,7 @@ */ import { - AuthorizeQuery, + EvaluatePermissionRequest, PolicyDecision, } from '@backstage/plugin-permission-common'; import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; @@ -31,7 +31,10 @@ import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; * * @public */ -export type PolicyAuthorizeQuery = Omit; +export type PolicyAuthorizeQuery = Omit< + EvaluatePermissionRequest, + 'resourceRef' +>; /** * A policy to evaluate authorization requests for any permissioned action performed in Backstage. diff --git a/plugins/permission-react/src/apis/IdentityPermissionApi.ts b/plugins/permission-react/src/apis/IdentityPermissionApi.ts index 6e5d54f61d..80d4eb8859 100644 --- a/plugins/permission-react/src/apis/IdentityPermissionApi.ts +++ b/plugins/permission-react/src/apis/IdentityPermissionApi.ts @@ -17,8 +17,8 @@ import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; import { PermissionApi } from './PermissionApi'; import { - AuthorizeQuery, - AuthorizeDecision, + EvaluatePermissionRequest, + EvaluatePermissionResponse, PermissionClient, } from '@backstage/plugin-permission-common'; import { Config } from '@backstage/config'; @@ -44,7 +44,9 @@ export class IdentityPermissionApi implements PermissionApi { return new IdentityPermissionApi(permissionClient, identity); } - async authorize(request: AuthorizeQuery): Promise { + async authorize( + request: EvaluatePermissionRequest, + ): Promise { const response = await this.permissionClient.authorize( [request], await this.identityApi.getCredentials(), diff --git a/plugins/permission-react/src/apis/PermissionApi.ts b/plugins/permission-react/src/apis/PermissionApi.ts index 69a42cae91..d3a37421ef 100644 --- a/plugins/permission-react/src/apis/PermissionApi.ts +++ b/plugins/permission-react/src/apis/PermissionApi.ts @@ -15,8 +15,8 @@ */ import { - AuthorizeQuery, - AuthorizeDecision, + EvaluatePermissionRequest, + EvaluatePermissionResponse, } from '@backstage/plugin-permission-common'; import { ApiRef, createApiRef } from '@backstage/core-plugin-api'; @@ -27,7 +27,9 @@ import { ApiRef, createApiRef } from '@backstage/core-plugin-api'; * @public */ export type PermissionApi = { - authorize(request: AuthorizeQuery): Promise; + authorize( + request: EvaluatePermissionRequest, + ): Promise; }; /** diff --git a/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts b/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts index 4198730947..47503312fb 100644 --- a/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts +++ b/plugins/search-backend/src/service/AuthorizedSearchEngine.test.ts @@ -16,7 +16,7 @@ import { ConfigReader } from '@backstage/config'; import { - AuthorizeDecision, + EvaluatePermissionResponse, AuthorizeResult, createPermission, PermissionAuthorizer, @@ -243,7 +243,7 @@ describe('AuthorizedSearchEngine', () => { } return { result: AuthorizeResult.CONDITIONAL, - } as AuthorizeDecision; + } as EvaluatePermissionResponse; } return { @@ -294,7 +294,7 @@ describe('AuthorizedSearchEngine', () => { return { result: AuthorizeResult.CONDITIONAL, - } as AuthorizeDecision; + } as EvaluatePermissionResponse; }), ); @@ -336,7 +336,9 @@ describe('AuthorizedSearchEngine', () => { result: AuthorizeResult.ALLOW, }; } - return { result: AuthorizeResult.CONDITIONAL } as AuthorizeDecision; + return { + result: AuthorizeResult.CONDITIONAL, + } as EvaluatePermissionResponse; }), ); @@ -413,7 +415,9 @@ describe('AuthorizedSearchEngine', () => { : AuthorizeResult.ALLOW, }; } - return { result: AuthorizeResult.CONDITIONAL } as AuthorizeDecision; + return { + result: AuthorizeResult.CONDITIONAL, + } as EvaluatePermissionResponse; }), ); @@ -495,7 +499,9 @@ describe('AuthorizedSearchEngine', () => { if (query.resourceRef) { return { result: AuthorizeResult.ALLOW }; } - return { result: AuthorizeResult.CONDITIONAL } as AuthorizeDecision; + return { + result: AuthorizeResult.CONDITIONAL, + } as EvaluatePermissionResponse; }), ); diff --git a/plugins/search-backend/src/service/AuthorizedSearchEngine.ts b/plugins/search-backend/src/service/AuthorizedSearchEngine.ts index 3e7dc6e147..a529bf04c6 100644 --- a/plugins/search-backend/src/service/AuthorizedSearchEngine.ts +++ b/plugins/search-backend/src/service/AuthorizedSearchEngine.ts @@ -18,8 +18,8 @@ import { compact, zipObject } from 'lodash'; import qs from 'qs'; import DataLoader from 'dataloader'; import { - AuthorizeDecision, - AuthorizeQuery, + EvaluatePermissionResponse, + EvaluatePermissionRequest, AuthorizeResult, isResourcePermission, PermissionAuthorizer, @@ -90,7 +90,7 @@ export class AuthorizedSearchEngine implements SearchEngine { const queryStartTime = Date.now(); const authorizer = new DataLoader( - (requests: readonly AuthorizeQuery[]) => + (requests: readonly EvaluatePermissionRequest[]) => this.permissions.authorize(requests.slice(), options), { // Serialize the permission name and resourceRef as @@ -185,8 +185,11 @@ export class AuthorizedSearchEngine implements SearchEngine { private async filterResults( results: IndexableResult[], - typeDecisions: Record, - authorizer: DataLoader, + typeDecisions: Record, + authorizer: DataLoader< + EvaluatePermissionRequest, + EvaluatePermissionResponse + >, ) { return compact( await Promise.all( From 0b98a49509b11f09192e0d96f7d472aa8efcbf02 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Tue, 22 Mar 2022 10:49:42 -0400 Subject: [PATCH 175/225] Rename policy input type Signed-off-by: Joe Porpeglia --- plugins/permission-node/src/policy/index.ts | 2 +- plugins/permission-node/src/policy/types.ts | 18 ++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/plugins/permission-node/src/policy/index.ts b/plugins/permission-node/src/policy/index.ts index 988ce345a4..f151cfb4fb 100644 --- a/plugins/permission-node/src/policy/index.ts +++ b/plugins/permission-node/src/policy/index.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export type { PermissionPolicy, PolicyAuthorizeQuery } from './types'; +export type { PermissionPolicy, PolicyQuery } from './types'; diff --git a/plugins/permission-node/src/policy/types.ts b/plugins/permission-node/src/policy/types.ts index 36145eea77..0f469cfbfe 100644 --- a/plugins/permission-node/src/policy/types.ts +++ b/plugins/permission-node/src/policy/types.ts @@ -15,26 +15,24 @@ */ import { - EvaluatePermissionRequest, + Permission, PolicyDecision, } from '@backstage/plugin-permission-common'; import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; /** - * An authorization request to be evaluated by the {@link PermissionPolicy}. + * A query to be evaluated by the {@link PermissionPolicy}. * * @remarks * - * This differs from {@link @backstage/permission-common#AuthorizeQuery} in that `resourceRef` - * should never be provided. This forces policies to be written in a way that's compatible with - * filtering collections of resources at data load time. + * Unlike other parts of the permission API, the policy does not accept a resource ref. This keeps + * the policy decoupled from the resource loading and condition applying logic. * * @public */ -export type PolicyAuthorizeQuery = Omit< - EvaluatePermissionRequest, - 'resourceRef' ->; +export type PolicyQuery = { + permission: Permission; +}; /** * A policy to evaluate authorization requests for any permissioned action performed in Backstage. @@ -54,7 +52,7 @@ export type PolicyAuthorizeQuery = Omit< */ export interface PermissionPolicy { handle( - request: PolicyAuthorizeQuery, + request: PolicyQuery, user?: BackstageIdentityResponse, ): Promise; } From 979d4b976f008f22097f3a32dfe7fc69b512e433 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Tue, 22 Mar 2022 13:53:15 -0400 Subject: [PATCH 176/225] Update api-reports Signed-off-by: Joe Porpeglia --- packages/test-utils/api-report.md | 10 +-- plugins/catalog-backend/api-report.md | 2 +- plugins/permission-common/api-report.md | 83 ++++++++++++++++--------- plugins/permission-node/api-report.md | 44 +++++-------- plugins/permission-react/api-report.md | 12 ++-- 5 files changed, 83 insertions(+), 68 deletions(-) diff --git a/packages/test-utils/api-report.md b/packages/test-utils/api-report.md index 2f2671885e..94ef7af51e 100644 --- a/packages/test-utils/api-report.md +++ b/packages/test-utils/api-report.md @@ -7,8 +7,6 @@ import { AnalyticsApi } from '@backstage/core-plugin-api'; import { AnalyticsEvent } from '@backstage/core-plugin-api'; import { ApiHolder } from '@backstage/core-plugin-api'; import { ApiRef } from '@backstage/core-plugin-api'; -import { AuthorizeDecision } from '@backstage/plugin-permission-common'; -import { AuthorizeQuery } from '@backstage/plugin-permission-common'; import { AuthorizeResult } from '@backstage/plugin-permission-common'; import { ComponentType } from 'react'; import { Config } from '@backstage/config'; @@ -18,6 +16,8 @@ import { DiscoveryApi } from '@backstage/core-plugin-api'; import { ErrorApi } from '@backstage/core-plugin-api'; import { ErrorApiError } from '@backstage/core-plugin-api'; import { ErrorApiErrorContext } from '@backstage/core-plugin-api'; +import { EvaluatePermissionRequest } from '@backstage/plugin-permission-common'; +import { EvaluatePermissionResponse } from '@backstage/plugin-permission-common'; import { ExternalRouteRef } from '@backstage/core-plugin-api'; import { FetchApi } from '@backstage/core-plugin-api'; import { IdentityApi } from '@backstage/core-plugin-api'; @@ -150,11 +150,13 @@ export interface MockFetchApiOptions { export class MockPermissionApi implements PermissionApi { constructor( requestHandler?: ( - request: AuthorizeQuery, + request: EvaluatePermissionRequest, ) => AuthorizeResult.ALLOW | AuthorizeResult.DENY, ); // (undocumented) - authorize(request: AuthorizeQuery): Promise; + authorize( + request: EvaluatePermissionRequest, + ): Promise; } // @public diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index ad80e36232..0df10cf944 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -8,7 +8,7 @@ import { CatalogApi } from '@backstage/catalog-client'; import { CatalogEntityDocument } from '@backstage/plugin-catalog-common'; import { CompoundEntityRef } from '@backstage/catalog-model'; -import { ConditionalPolicyDecision } from '@backstage/plugin-permission-node'; +import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common'; import { Conditions } from '@backstage/plugin-permission-node'; import { Config } from '@backstage/config'; import { DocumentCollatorFactory } from '@backstage/plugin-search-common'; diff --git a/plugins/permission-common/api-report.md b/plugins/permission-common/api-report.md index 77ab94b4e3..001ba53f3a 100644 --- a/plugins/permission-common/api-report.md +++ b/plugins/permission-common/api-report.md @@ -15,37 +15,11 @@ export type AnyOfCriteria = { anyOf: NonEmptyArray>; }; -// @public -export type AuthorizeDecision = - | { - result: AuthorizeResult.ALLOW | AuthorizeResult.DENY; - } - | { - result: AuthorizeResult.CONDITIONAL; - conditions: PermissionCriteria; - }; - -// @public -export type AuthorizeQuery = { - permission: Permission; - resourceRef?: string; -}; - -// @public -export type AuthorizeRequest = { - items: Identified[]; -}; - // @public export type AuthorizeRequestOptions = { token?: string; }; -// @public -export type AuthorizeResponse = { - items: Identified[]; -}; - // @public export enum AuthorizeResult { ALLOW = 'ALLOW', @@ -56,6 +30,14 @@ export enum AuthorizeResult { // @public export type BasicPermission = PermissionBase<'basic', {}>; +// @public +export type ConditionalPolicyDecision = { + result: AuthorizeResult.CONDITIONAL; + pluginId: string; + resourceType: string; + conditions: PermissionCriteria; +}; + // @public export function createPermission(input: { name: string; @@ -69,13 +51,42 @@ export function createPermission(input: { attributes: PermissionAttributes; }): BasicPermission; +// @public +export type DefinitivePolicyDecision = { + result: AuthorizeResult.ALLOW | AuthorizeResult.DENY; +}; + // @public export type DiscoveryApi = { getBaseUrl(pluginId: string): Promise; }; // @public -export type Identified = T & { +export type EvaluatePermissionRequest = { + permission: Permission; + resourceRef?: string; +}; + +// @public +export type EvaluatePermissionRequestBatch = + PermissionMessageBatch; + +// @public +export type EvaluatePermissionResponse = + | { + result: AuthorizeResult.ALLOW | AuthorizeResult.DENY; + } + | { + result: AuthorizeResult.CONDITIONAL; + conditions: PermissionCriteria; + }; + +// @public +export type EvaluatePermissionResponseBatch = + PermissionMessageBatch; + +// @public +export type IdentifiedPermissionMessage = T & { id: string; }; @@ -114,9 +125,9 @@ export type PermissionAttributes = { export interface PermissionAuthorizer { // (undocumented) authorize( - queries: AuthorizeQuery[], + requests: EvaluatePermissionRequest[], options?: AuthorizeRequestOptions, - ): Promise; + ): Promise; } // @public @@ -131,9 +142,9 @@ export type PermissionBase = { export class PermissionClient implements PermissionAuthorizer { constructor(options: { discovery: DiscoveryApi; config: Config }); authorize( - queries: AuthorizeQuery[], + queries: EvaluatePermissionRequest[], options?: AuthorizeRequestOptions, - ): Promise; + ): Promise; } // @public @@ -149,6 +160,16 @@ export type PermissionCriteria = | NotCriteria | TQuery; +// @public +export type PermissionMessageBatch = { + items: IdentifiedPermissionMessage[]; +}; + +// @public +export type PolicyDecision = + | DefinitivePolicyDecision + | ConditionalPolicyDecision; + // @public export type ResourcePermission = PermissionBase< diff --git a/plugins/permission-node/api-report.md b/plugins/permission-node/api-report.md index f6de7f4909..fe4e70abf9 100644 --- a/plugins/permission-node/api-report.md +++ b/plugins/permission-node/api-report.md @@ -5,19 +5,22 @@ ```ts import { AllOfCriteria } from '@backstage/plugin-permission-common'; import { AnyOfCriteria } from '@backstage/plugin-permission-common'; -import { AuthorizeDecision } from '@backstage/plugin-permission-common'; -import { AuthorizeQuery } from '@backstage/plugin-permission-common'; import { AuthorizeRequestOptions } from '@backstage/plugin-permission-common'; -import { AuthorizeResult } from '@backstage/plugin-permission-common'; import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; +import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common'; import { Config } from '@backstage/config'; +import { DefinitivePolicyDecision } from '@backstage/plugin-permission-common'; +import { EvaluatePermissionRequest } from '@backstage/plugin-permission-common'; +import { EvaluatePermissionResponse } from '@backstage/plugin-permission-common'; import express from 'express'; -import { Identified } from '@backstage/plugin-permission-common'; +import { IdentifiedPermissionMessage } from '@backstage/plugin-permission-common'; import { NotCriteria } from '@backstage/plugin-permission-common'; +import { Permission } from '@backstage/plugin-permission-common'; import { PermissionAuthorizer } from '@backstage/plugin-permission-common'; import { PermissionCondition } from '@backstage/plugin-permission-common'; import { PermissionCriteria } from '@backstage/plugin-permission-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; +import { PolicyDecision } from '@backstage/plugin-permission-common'; import { TokenManager } from '@backstage/backend-common'; // @public @@ -26,7 +29,7 @@ export type ApplyConditionsRequest = { }; // @public -export type ApplyConditionsRequestEntry = Identified<{ +export type ApplyConditionsRequestEntry = IdentifiedPermissionMessage<{ resourceRef: string; resourceType: string; conditions: PermissionCriteria; @@ -38,7 +41,8 @@ export type ApplyConditionsResponse = { }; // @public -export type ApplyConditionsResponseEntry = Identified; +export type ApplyConditionsResponseEntry = + IdentifiedPermissionMessage; // @public export type Condition = TRule extends PermissionRule< @@ -49,14 +53,6 @@ export type Condition = TRule extends PermissionRule< ? (...params: TParams) => PermissionCondition : never; -// @public -export type ConditionalPolicyDecision = { - result: AuthorizeResult.CONDITIONAL; - pluginId: string; - resourceType: string; - conditions: PermissionCriteria; -}; - // @public export type Conditions< TRules extends Record>, @@ -116,11 +112,6 @@ export const createPermissionRule: < rule: PermissionRule, ) => PermissionRule; -// @public -export type DefinitivePolicyDecision = { - result: AuthorizeResult.ALLOW | AuthorizeResult.DENY; -}; - // @alpha export const isAndCriteria: ( criteria: PermissionCriteria, @@ -147,7 +138,7 @@ export const makeCreatePermissionRule: () => < export interface PermissionPolicy { // (undocumented) handle( - request: PolicyAuthorizeQuery, + request: PolicyQuery, user?: BackstageIdentityResponse, ): Promise; } @@ -165,20 +156,17 @@ export type PermissionRule< }; // @public -export type PolicyAuthorizeQuery = Omit; - -// @public -export type PolicyDecision = - | DefinitivePolicyDecision - | ConditionalPolicyDecision; +export type PolicyQuery = { + permission: Permission; +}; // @public export class ServerPermissionClient implements PermissionAuthorizer { // (undocumented) authorize( - queries: AuthorizeQuery[], + requests: EvaluatePermissionRequest[], options?: AuthorizeRequestOptions, - ): Promise; + ): Promise; // (undocumented) static fromConfig( config: Config, diff --git a/plugins/permission-react/api-report.md b/plugins/permission-react/api-report.md index 6b66376cb7..17b29a463a 100644 --- a/plugins/permission-react/api-report.md +++ b/plugins/permission-react/api-report.md @@ -4,11 +4,11 @@ ```ts import { ApiRef } from '@backstage/core-plugin-api'; -import { AuthorizeDecision } from '@backstage/plugin-permission-common'; -import { AuthorizeQuery } from '@backstage/plugin-permission-common'; import { ComponentProps } from 'react'; import { Config } from '@backstage/config'; import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { EvaluatePermissionRequest } from '@backstage/plugin-permission-common'; +import { EvaluatePermissionResponse } from '@backstage/plugin-permission-common'; import { IdentityApi } from '@backstage/core-plugin-api'; import { Permission } from '@backstage/plugin-permission-common'; import { ReactElement } from 'react'; @@ -25,7 +25,9 @@ export type AsyncPermissionResult = { // @public export class IdentityPermissionApi implements PermissionApi { // (undocumented) - authorize(request: AuthorizeQuery): Promise; + authorize( + request: EvaluatePermissionRequest, + ): Promise; // (undocumented) static create(options: { config: Config; @@ -36,7 +38,9 @@ export class IdentityPermissionApi implements PermissionApi { // @public export type PermissionApi = { - authorize(request: AuthorizeQuery): Promise; + authorize( + request: EvaluatePermissionRequest, + ): Promise; }; // @public From c98d27146630644b22e6ef4149235503c651138a Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Tue, 22 Mar 2022 14:46:01 -0400 Subject: [PATCH 177/225] Add changesets Signed-off-by: Joe Porpeglia --- .changeset/eleven-frogs-promise.md | 14 ++++++++++++++ .changeset/few-mayflies-divide.md | 8 ++++++++ .changeset/mean-tomatoes-shout.md | 7 +++++++ 3 files changed, 29 insertions(+) create mode 100644 .changeset/eleven-frogs-promise.md create mode 100644 .changeset/few-mayflies-divide.md create mode 100644 .changeset/mean-tomatoes-shout.md diff --git a/.changeset/eleven-frogs-promise.md b/.changeset/eleven-frogs-promise.md new file mode 100644 index 0000000000..1868bb9df5 --- /dev/null +++ b/.changeset/eleven-frogs-promise.md @@ -0,0 +1,14 @@ +--- +'@backstage/plugin-permission-common': minor +--- + +Refactor api types into more specific, decoupled names. + +- **BREAKING:** + - Renamed `AuthorizeDecision` to `EvaluatePermissionResponse` + - Renamed `AuthorizeQuery` to `EvaluatePermissionRequest` + - Renamed `AuthorizeRequest` to `EvaluatePermissionRequestBatch` + - Renamed `AuthorizeResponse` to `EvaluatePermissionResponseBatch` + - Renamed `Identified` to `IdentifiedPermissionMessage` +- Add `PermissionMessageBatch` helper type +- Add `ConditionalPolicyDecision`, `DefinitivePolicyDecision`, and `PolicyDecision` types from `@backstage/plugin-permission-node` diff --git a/.changeset/few-mayflies-divide.md b/.changeset/few-mayflies-divide.md new file mode 100644 index 0000000000..e8744c47da --- /dev/null +++ b/.changeset/few-mayflies-divide.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-permission-node': minor +--- + +**BREAKING:** + +- Rename `PolicyAuthorizeQuery` to `PolicyQuery` +- Remove `PolicyDecision`, `DefinitivePolicyDecision`, and `ConditionalPolicyDecision`. These types are now exported from `@backstage/plugin-permission-common` diff --git a/.changeset/mean-tomatoes-shout.md b/.changeset/mean-tomatoes-shout.md new file mode 100644 index 0000000000..6d51bd2929 --- /dev/null +++ b/.changeset/mean-tomatoes-shout.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-permission-backend': patch +'@backstage/plugin-permission-react': patch +'@backstage/plugin-search-backend': patch +--- + +Use updated types from `@backstage/plugin-permission-common` From 55f72c44457ad4e2eba2440b22c6ca9f18af247f Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Thu, 24 Mar 2022 11:33:47 -0400 Subject: [PATCH 178/225] Update comment Signed-off-by: Joe Porpeglia --- plugins/permission-common/src/types/api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/permission-common/src/types/api.ts b/plugins/permission-common/src/types/api.ts index b0bcf94f56..f8537f5d45 100644 --- a/plugins/permission-common/src/types/api.ts +++ b/plugins/permission-common/src/types/api.ts @@ -171,7 +171,7 @@ export type EvaluatePermissionResponse = }; /** - * A batch of responses the permission backend. + * A batch of responses from the permission backend. * @public */ export type EvaluatePermissionResponseBatch = From 678d81a6d59b43a4578e118d3eb300644fd603e0 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Thu, 24 Mar 2022 12:03:43 -0400 Subject: [PATCH 179/225] Remove duplicate type Signed-off-by: Joe Porpeglia --- plugins/permission-common/api-report.md | 9 +-------- plugins/permission-common/src/types/api.ts | 14 ++++++++------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/plugins/permission-common/api-report.md b/plugins/permission-common/api-report.md index 001ba53f3a..07c1904183 100644 --- a/plugins/permission-common/api-report.md +++ b/plugins/permission-common/api-report.md @@ -72,14 +72,7 @@ export type EvaluatePermissionRequestBatch = PermissionMessageBatch; // @public -export type EvaluatePermissionResponse = - | { - result: AuthorizeResult.ALLOW | AuthorizeResult.DENY; - } - | { - result: AuthorizeResult.CONDITIONAL; - conditions: PermissionCriteria; - }; +export type EvaluatePermissionResponse = PolicyDecision; // @public export type EvaluatePermissionResponseBatch = diff --git a/plugins/permission-common/src/types/api.ts b/plugins/permission-common/src/types/api.ts index f8537f5d45..66693ccf1b 100644 --- a/plugins/permission-common/src/types/api.ts +++ b/plugins/permission-common/src/types/api.ts @@ -161,14 +161,16 @@ export type EvaluatePermissionRequestBatch = /** * An individual response from the permission backend. + * + * @remarks + * + * This response type is an alias of {@link PolicyDecision} to maintain separation between the + * {@link @backstage/plugin-permission-node#PermissionPolicy} interface and the permission backend + * api. They may diverge at some point in the future. The response + * * @public */ -export type EvaluatePermissionResponse = - | { result: AuthorizeResult.ALLOW | AuthorizeResult.DENY } - | { - result: AuthorizeResult.CONDITIONAL; - conditions: PermissionCriteria; - }; +export type EvaluatePermissionResponse = PolicyDecision; /** * A batch of responses from the permission backend. From b9324fafe231ce46c2a4575ea0614cb4311b5bf9 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Thu, 24 Mar 2022 12:40:08 -0400 Subject: [PATCH 180/225] Remove unecessary type cast Signed-off-by: Joe Porpeglia --- plugins/permission-react/src/hooks/usePermission.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/permission-react/src/hooks/usePermission.ts b/plugins/permission-react/src/hooks/usePermission.ts index 1e7f45129d..069c2c8148 100644 --- a/plugins/permission-react/src/hooks/usePermission.ts +++ b/plugins/permission-react/src/hooks/usePermission.ts @@ -17,7 +17,6 @@ import { useApi } from '@backstage/core-plugin-api'; import { permissionApiRef } from '../apis'; import { - AuthorizeQuery, AuthorizeResult, isResourcePermission, Permission, @@ -72,7 +71,7 @@ export function usePermission( return AuthorizeResult.DENY; } - const { result } = await permissionApi.authorize(args as AuthorizeQuery); + const { result } = await permissionApi.authorize(args); return result; }); From 660f684d1788a148c213fd5b772846e8b98328eb Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Thu, 24 Mar 2022 12:47:57 -0400 Subject: [PATCH 181/225] Add test-utils to changeset Signed-off-by: Joe Porpeglia --- .changeset/mean-tomatoes-shout.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.changeset/mean-tomatoes-shout.md b/.changeset/mean-tomatoes-shout.md index 6d51bd2929..446e66d386 100644 --- a/.changeset/mean-tomatoes-shout.md +++ b/.changeset/mean-tomatoes-shout.md @@ -2,6 +2,7 @@ '@backstage/plugin-permission-backend': patch '@backstage/plugin-permission-react': patch '@backstage/plugin-search-backend': patch +'@backstage/test-utils': patch --- Use updated types from `@backstage/plugin-permission-common` From 434c2d2313c2e41d1feb1bf187b468774dc7c9c0 Mon Sep 17 00:00:00 2001 From: Simon Gellis Date: Fri, 25 Mar 2022 14:15:46 -0400 Subject: [PATCH 182/225] Add to next minor version Signed-off-by: Simon Gellis --- .changeset/moody-ducks-return.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/moody-ducks-return.md b/.changeset/moody-ducks-return.md index 93d03be66d..314f8fc705 100644 --- a/.changeset/moody-ducks-return.md +++ b/.changeset/moody-ducks-return.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-scaffolder-backend': minor --- Add new option to create draft GitHub PRs From ca911071102a26e1e78dadfbce8c8c580ce78aa3 Mon Sep 17 00:00:00 2001 From: Sven Sander Date: Fri, 25 Mar 2022 21:34:04 +0100 Subject: [PATCH 183/225] Fixed possible type error if jenkins response contains null values Signed-off-by: Sven Sander --- .changeset/unlucky-snakes-turn.md | 5 + .../src/service/jenkinsApi.test.ts | 210 ++++++++++++++++++ .../jenkins-backend/src/service/jenkinsApi.ts | 8 +- 3 files changed, 219 insertions(+), 4 deletions(-) create mode 100644 .changeset/unlucky-snakes-turn.md diff --git a/.changeset/unlucky-snakes-turn.md b/.changeset/unlucky-snakes-turn.md new file mode 100644 index 0000000000..bcb31feb40 --- /dev/null +++ b/.changeset/unlucky-snakes-turn.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-jenkins-backend': patch +--- + +Fixed possible type error if jenkins response contains null values diff --git a/plugins/jenkins-backend/src/service/jenkinsApi.test.ts b/plugins/jenkins-backend/src/service/jenkinsApi.test.ts index bc7d2cb029..1d72dbf71c 100644 --- a/plugins/jenkins-backend/src/service/jenkinsApi.test.ts +++ b/plugins/jenkins-backend/src/service/jenkinsApi.test.ts @@ -352,6 +352,216 @@ describe('JenkinsApi', () => { const result = await jenkinsApi.getProjects(jenkinsInfo); + expect(result).toHaveLength(1); + expect(result[0].lastBuild!.tests).toEqual({ + total: 635, + passed: 632, + skipped: 1, + failed: 2, + testUrl: + 'https://jenkins.example.com/job/example-jobName/job/exampleBuild/7/testReport/', + }); + }); + }); + describe('augmented with null values', () => { + const projectWithScmActionsAndNulls: JenkinsProject = { + actions: [ + {}, + {}, + null, + {}, + { + _class: 'jenkins.scm.api.metadata.ContributorMetadataAction', + contributor: 'testuser', + contributorDisplayName: 'Mr. T User', + contributorEmail: null, + }, + {}, + { + _class: 'jenkins.scm.api.metadata.ObjectMetadataAction', + objectDescription: '', + objectDisplayName: 'Add LICENSE, CoC etc', + objectUrl: 'https://github.com/backstage/backstage/pull/1', + }, + {}, + {}, + { + _class: 'com.cloudbees.plugins.credentials.ViewCredentialsAction', + stores: {}, + }, + ], + displayName: 'Example Build', + fullDisplayName: 'Example jobName » Example Build', + fullName: 'example-jobName/exampleBuild', + inQueue: false, + lastBuild: { + actions: [ + { + _class: 'hudson.model.CauseAction', + causes: [ + { + _class: 'jenkins.branch.BranchIndexingCause', + shortDescription: 'Branch indexing', + }, + ], + }, + null, + {}, + {}, + { + _class: 'org.jenkinsci.plugins.workflow.cps.EnvActionImpl', + environment: {}, + }, + {}, + {}, + {}, + {}, + {}, + { + _class: 'hudson.plugins.git.util.BuildData', + buildsByBranchName: { + 'PR-1': { + _class: 'hudson.plugins.git.util.Build', + buildNumber: 5, + buildResult: null, + marked: { + SHA1: '14d31bde346fcad64ab939f82d195db36701cfcb', + branch: [ + { + SHA1: '14d31bde346fcad64ab939f82d195db36701cfcb', + name: 'PR-1', + }, + ], + }, + revision: { + SHA1: '6c6b34c0fb91cf077a01fe62d3e8e996b4ea5861', + branch: [ + { + SHA1: '14d31bde346fcad64ab939f82d195db36701cfcb', + name: 'PR-1', + }, + ], + }, + }, + }, + lastBuiltRevision: { + SHA1: '6c6b34c0fb91cf077a01fe62d3e8e996b4ea5861', + branch: [ + { + SHA1: '14d31bde346fcad64ab939f82d195db36701cfcb', + name: 'PR-1', + }, + ], + }, + remoteUrls: ['https://github.com/backstage/backstage.git'], + scmName: '', + }, + { + _class: 'hudson.plugins.git.util.BuildData', + buildsByBranchName: { + master: { + _class: 'hudson.plugins.git.util.Build', + buildNumber: 5, + buildResult: null, + marked: { + SHA1: '14d31bde346fcad64ab939f82d195db36701cfcb', + branch: [ + { + SHA1: '14d31bde346fcad64ab939f82d195db36701cfcb', + name: 'master', + }, + ], + }, + revision: { + SHA1: '6c6b34c0fb91cf077a01fe62d3e8e996b4ea5861', + branch: [ + { + SHA1: '14d31bde346fcad64ab939f82d195db36701cfcb', + name: 'master', + }, + ], + }, + }, + }, + lastBuiltRevision: { + SHA1: '6c6b34c0fb91cf077a01fe62d3e8e996b4ea5861', + branch: [ + { + SHA1: '14d31bde346fcad64ab939f82d195db36701cfcb', + name: 'master', + }, + ], + }, + remoteUrls: ['https://github.com/backstage/backstage.git'], + scmName: '', + }, + {}, + {}, + { + _class: 'hudson.tasks.junit.TestResultAction', + failCount: 2, + skipCount: 1, + totalCount: 635, + urlName: 'testReport', + }, + {}, + {}, + { + _class: + 'org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction', + restartEnabled: false, + restartableStages: [], + }, + {}, + ], + timestamp: 1, + building: false, + duration: 10, + result: 'success', + displayName: '#7', + fullDisplayName: 'Example jobName » Example Build #7', + url: 'https://jenkins.example.com/job/example-jobName/job/exampleBuild/7/', + number: 7, + }, + }; + + it('augments project', async () => { + mockedJenkinsClient.job.get.mockResolvedValueOnce({ + jobs: [projectWithScmActionsAndNulls], + }); + + const result = await jenkinsApi.getProjects(jenkinsInfo); + + expect(result).toHaveLength(1); + expect(result[0].status).toEqual('success'); + }); + it('augments build', async () => { + mockedJenkinsClient.job.get.mockResolvedValueOnce({ + jobs: [projectWithScmActionsAndNulls], + }); + + const result = await jenkinsApi.getProjects(jenkinsInfo); + + expect(result).toHaveLength(1); + // TODO: I am really just asserting the previous behaviour with no understanding here. + // In my 2 Jenkins instances, 1 returns a lot of different and confusing BuildData sections and 1 returns none ☹️ + expect(result[0].lastBuild!.source).toEqual({ + branchName: 'master', + commit: { + hash: '14d31bde', + }, + url: 'https://github.com/backstage/backstage/pull/1', + displayName: 'Add LICENSE, CoC etc', + author: 'Mr. T User', + }); + }); + it('finds test report', async () => { + mockedJenkinsClient.job.get.mockResolvedValueOnce({ + jobs: [projectWithScmActionsAndNulls], + }); + + const result = await jenkinsApi.getProjects(jenkinsInfo); + expect(result).toHaveLength(1); expect(result[0].lastBuild!.tests).toEqual({ total: 635, diff --git a/plugins/jenkins-backend/src/service/jenkinsApi.ts b/plugins/jenkins-backend/src/service/jenkinsApi.ts index ddc2bb0ea3..38ab20b17b 100644 --- a/plugins/jenkins-backend/src/service/jenkinsApi.ts +++ b/plugins/jenkins-backend/src/service/jenkinsApi.ts @@ -211,7 +211,7 @@ export class JenkinsApiImpl { build.actions .filter( (action: any) => - action._class === 'hudson.plugins.git.util.BuildData', + action?._class === 'hudson.plugins.git.util.BuildData', ) .map((action: any) => { const [first]: any = Object.values(action.buildsByBranchName); @@ -253,7 +253,7 @@ export class JenkinsApiImpl { const scmInfo: ScmDetails | undefined = project.actions .filter( (action: any) => - action._class === 'jenkins.scm.api.metadata.ObjectMetadataAction', + action?._class === 'jenkins.scm.api.metadata.ObjectMetadataAction', ) .map((action: any) => { return { @@ -272,7 +272,7 @@ export class JenkinsApiImpl { const author = project.actions .filter( (action: any) => - action._class === + action?._class === 'jenkins.scm.api.metadata.ContributorMetadataAction', ) .map((action: any) => { @@ -297,7 +297,7 @@ export class JenkinsApiImpl { return build.actions .filter( (action: any) => - action._class === 'hudson.tasks.junit.TestResultAction', + action?._class === 'hudson.tasks.junit.TestResultAction', ) .map((action: any) => { return { From 4c93fd36ee8af3232421f4f708a3fb3213aa135f Mon Sep 17 00:00:00 2001 From: Patrick Jungermann Date: Sat, 26 Mar 2022 01:11:48 +0100 Subject: [PATCH 184/225] feat: allow overriding `getMarkdownCode` allow overriding `DefaultBadgeBuilder.getMarkdownCode` Signed-off-by: Patrick Jungermann --- .changeset/fresh-bulldogs-own.md | 5 +++++ plugins/badges-backend/api-report.md | 2 ++ .../src/lib/BadgeBuilder/DefaultBadgeBuilder.ts | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/fresh-bulldogs-own.md diff --git a/.changeset/fresh-bulldogs-own.md b/.changeset/fresh-bulldogs-own.md new file mode 100644 index 0000000000..7772262efe --- /dev/null +++ b/.changeset/fresh-bulldogs-own.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-badges-backend': patch +--- + +allow overriding `DefaultBadgeBuilder.getMarkdownCode` diff --git a/plugins/badges-backend/api-report.md b/plugins/badges-backend/api-report.md index 01b14cc8ee..0660d23fdb 100644 --- a/plugins/badges-backend/api-report.md +++ b/plugins/badges-backend/api-report.md @@ -122,6 +122,8 @@ export class DefaultBadgeBuilder implements BadgeBuilder { createBadgeSvg(options: BadgeOptions): Promise; // (undocumented) getBadges(): Promise; + // (undocumented) + protected getMarkdownCode(params: Badge, badgeUrl: string): string; } // Warning: (ae-missing-release-tag) "RouterOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/badges-backend/src/lib/BadgeBuilder/DefaultBadgeBuilder.ts b/plugins/badges-backend/src/lib/BadgeBuilder/DefaultBadgeBuilder.ts index 7f9d2580f9..78e34351a0 100644 --- a/plugins/badges-backend/src/lib/BadgeBuilder/DefaultBadgeBuilder.ts +++ b/plugins/badges-backend/src/lib/BadgeBuilder/DefaultBadgeBuilder.ts @@ -70,7 +70,7 @@ export class DefaultBadgeBuilder implements BadgeBuilder { } } - private getMarkdownCode(params: Badge, badgeUrl: string): string { + protected getMarkdownCode(params: Badge, badgeUrl: string): string { let altText = `${params.label}: ${params.message}`; if (params.description && params.description !== params.label) { altText = `${params.description}, ${altText}`; From 2c77266deb25c08fc0c174967f3c3223d92eb474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Sat, 26 Mar 2022 10:13:47 +0100 Subject: [PATCH 185/225] vale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .github/styles/vocab.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/styles/vocab.txt b/.github/styles/vocab.txt index c9382b1fd0..4070e5600a 100644 --- a/.github/styles/vocab.txt +++ b/.github/styles/vocab.txt @@ -137,6 +137,7 @@ inlinehilite interop JaCoCo JavaScript +jenkins Jira jq js From 4dd6a05f020ef2147231e60d3853f09666a602f9 Mon Sep 17 00:00:00 2001 From: Sven Sander Date: Sat, 26 Mar 2022 12:03:13 +0100 Subject: [PATCH 186/225] Fixed type error in test case Signed-off-by: Sven Sander --- plugins/jenkins-backend/src/service/jenkinsApi.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jenkins-backend/src/service/jenkinsApi.test.ts b/plugins/jenkins-backend/src/service/jenkinsApi.test.ts index 1d72dbf71c..a5453b5ebe 100644 --- a/plugins/jenkins-backend/src/service/jenkinsApi.test.ts +++ b/plugins/jenkins-backend/src/service/jenkinsApi.test.ts @@ -368,7 +368,7 @@ describe('JenkinsApi', () => { actions: [ {}, {}, - null, + {}, {}, { _class: 'jenkins.scm.api.metadata.ContributorMetadataAction', From a45bce06e3c614ab4dfb689f71018b59c80ca06c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Sat, 26 Mar 2022 19:02:38 +0100 Subject: [PATCH 187/225] handle trailing slashes on enterpriseInstanceUrl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/rotten-planes-watch.md | 5 +++++ plugins/auth-backend/src/providers/github/provider.ts | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .changeset/rotten-planes-watch.md diff --git a/.changeset/rotten-planes-watch.md b/.changeset/rotten-planes-watch.md new file mode 100644 index 0000000000..25aa6b83df --- /dev/null +++ b/.changeset/rotten-planes-watch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': patch +--- + +Handle trailing slashes on GitHub `enterpriseInstanceUrl` settings diff --git a/plugins/auth-backend/src/providers/github/provider.ts b/plugins/auth-backend/src/providers/github/provider.ts index 29e8679fe0..c875f856b6 100644 --- a/plugins/auth-backend/src/providers/github/provider.ts +++ b/plugins/auth-backend/src/providers/github/provider.ts @@ -318,9 +318,9 @@ export const createGithubProvider = ( OAuthEnvironmentHandler.mapConfig(config, envConfig => { const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const enterpriseInstanceUrl = envConfig.getOptionalString( - 'enterpriseInstanceUrl', - ); + const enterpriseInstanceUrl = envConfig + .getOptionalString('enterpriseInstanceUrl') + ?.replace(/\/$/, ''); const customCallbackUrl = envConfig.getOptionalString('callbackUrl'); const authorizationUrl = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/login/oauth/authorize` From 37b04b5a5ee4f209548c572068f888eeb35440b7 Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Sat, 26 Mar 2022 18:25:31 +0000 Subject: [PATCH 188/225] Fixed bad help link in Entity Inspector The help link for labels in the entity inspector was 404ing, so removed it. Signed-off-by: Alex Crome --- .changeset/purple-laws-give.md | 5 +++++ .../InspectEntityDialog/components/OverviewPage.tsx | 10 +--------- 2 files changed, 6 insertions(+), 9 deletions(-) create mode 100644 .changeset/purple-laws-give.md diff --git a/.changeset/purple-laws-give.md b/.changeset/purple-laws-give.md new file mode 100644 index 0000000000..7e985092e2 --- /dev/null +++ b/.changeset/purple-laws-give.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Removed broken link from Labels section of entity inspector. diff --git a/plugins/catalog-react/src/components/InspectEntityDialog/components/OverviewPage.tsx b/plugins/catalog-react/src/components/InspectEntityDialog/components/OverviewPage.tsx index a4e8523beb..f0adb878d6 100644 --- a/plugins/catalog-react/src/components/InspectEntityDialog/components/OverviewPage.tsx +++ b/plugins/catalog-react/src/components/InspectEntityDialog/components/OverviewPage.tsx @@ -107,15 +107,7 @@ export function OverviewPage(props: { entity: AlphaEntity }) { )} {!!Object.keys(metadata.labels || {}).length && ( - - Labels - - - } - > + Labels}> {Object.entries(metadata.labels!).map(entry => ( ))} From bdd27732027092f0813cd84f6f58ff9b65590c88 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 27 Mar 2022 23:03:48 +0200 Subject: [PATCH 189/225] changesets: add missing changeset for TaskWorker refactor Signed-off-by: Patrik Oldsberg --- .changeset/brave-chairs-stare.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/brave-chairs-stare.md diff --git a/.changeset/brave-chairs-stare.md b/.changeset/brave-chairs-stare.md new file mode 100644 index 0000000000..8a2dd91e91 --- /dev/null +++ b/.changeset/brave-chairs-stare.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-tasks': patch +--- + +Refactored the internal `TaskWorker` class to make it easier to test. From 3419d8a9569adf5e036169e28fae9aad28fa1171 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 04:09:43 +0000 Subject: [PATCH 190/225] build(deps): bump cookie-parser from 1.4.5 to 1.4.6 Bumps [cookie-parser](https://github.com/expressjs/cookie-parser) from 1.4.5 to 1.4.6. - [Release notes](https://github.com/expressjs/cookie-parser/releases) - [Changelog](https://github.com/expressjs/cookie-parser/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/cookie-parser/compare/1.4.5...1.4.6) --- updated-dependencies: - dependency-name: cookie-parser dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index c87087fa05..c5d7a060a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9880,11 +9880,11 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: safe-buffer "~5.1.1" cookie-parser@^1.4.5: - version "1.4.5" - resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49" - integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw== + version "1.4.6" + resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" + integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== dependencies: - cookie "0.4.0" + cookie "0.4.1" cookie-signature "1.0.6" cookie-signature@1.0.6: @@ -9892,11 +9892,6 @@ cookie-signature@1.0.6: resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - cookie@0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" From a36e62611c4d326e64d6ceb99ba085ba2ba4f465 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 04:10:41 +0000 Subject: [PATCH 191/225] build(deps): bump @types/json-schema from 7.0.10 to 7.0.11 Bumps [@types/json-schema](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/json-schema) from 7.0.10 to 7.0.11. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/json-schema) --- updated-dependencies: - dependency-name: "@types/json-schema" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c87087fa05..0928bd9a3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6238,9 +6238,9 @@ "@types/json-schema" "*" "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.10" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" - integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/json-stable-stringify@^1.0.32": version "1.0.32" From 2bf91d2c90bb9cfac960885fedce63660d15f4c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 04:10:55 +0000 Subject: [PATCH 192/225] build(deps-dev): bump prettier from 2.6.0 to 2.6.1 in /microsite Bumps [prettier](https://github.com/prettier/prettier) from 2.6.0 to 2.6.1. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.6.0...2.6.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- microsite/package.json | 2 +- microsite/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/microsite/package.json b/microsite/package.json index 7c770bafc1..427731ea47 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -19,7 +19,7 @@ "@spotify/prettier-config": "^13.0.0", "docusaurus": "^2.0.0-alpha.70", "js-yaml": "^4.1.0", - "prettier": "^2.6.0", + "prettier": "^2.6.1", "yarn-lock-check": "^1.0.5" }, "prettier": "@spotify/prettier-config" diff --git a/microsite/yarn.lock b/microsite/yarn.lock index e854dc9b09..efd56a9f28 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -5209,10 +5209,10 @@ prepend-http@^2.0.0: resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prettier@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4" - integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A== +prettier@^2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17" + integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A== prismjs@^1.22.0: version "1.27.0" From 7e22a6eb6048a523f24d730962c9459e10d82dee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 04:11:20 +0000 Subject: [PATCH 193/225] build(deps): bump ajv from 8.10.0 to 8.11.0 Bumps [ajv](https://github.com/ajv-validator/ajv) from 8.10.0 to 8.11.0. - [Release notes](https://github.com/ajv-validator/ajv/releases) - [Commits](https://github.com/ajv-validator/ajv/compare/v8.10.0...v8.11.0) --- updated-dependencies: - dependency-name: ajv dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c87087fa05..f423bda690 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7484,9 +7484,9 @@ ajv@^7.0.3: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.10.0, ajv@^8.8.0: - version "8.10.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" - integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== + version "8.11.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" From 3a80ce73f6869dafe26a822efc30f97a7b879774 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 04:12:43 +0000 Subject: [PATCH 194/225] build(deps): bump react-hook-form from 7.27.1 to 7.28.1 Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.27.1 to 7.28.1. - [Release notes](https://github.com/react-hook-form/react-hook-form/releases) - [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.27.1...v7.28.1) --- updated-dependencies: - dependency-name: react-hook-form dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c87087fa05..bd84662874 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20953,9 +20953,9 @@ react-helmet@6.1.0: react-side-effect "^2.1.0" react-hook-form@^7.12.2, react-hook-form@^7.13.0: - version "7.27.1" - resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.27.1.tgz#fe5fbcb6bf58751f66d9569e998d671480cc57f6" - integrity sha512-N3a7A6zIQ8DJeThisVZGtOUabTbJw+7DHJidmB9w8m3chckv2ZWKb5MHps9d2pPJqmCDoWe53Bos56bYmJms5w== + version "7.28.1" + resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.28.1.tgz#95fc37be6c6b9d57212eb7eca055fb36d079b3b7" + integrity sha512-mgwxvXuvt3FMY/mdnWbPc++Zf1U5xYzkhOaL05mtFMLvXc9MvUhMUlKtUVuO12sOrgT3nPXBgVFawtiJ4ONrgg== react-hot-loader@^4.13.0: version "4.13.0" From 1d90a820ce1f2a27e1e4b56a185bba46dd6f71fe Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 28 Mar 2022 10:30:37 +0200 Subject: [PATCH 195/225] Changeset fixups Signed-off-by: Emma Indal Co-authored-by: Johan Haals --- .changeset/four-birds-peel.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/four-birds-peel.md b/.changeset/four-birds-peel.md index f315f7a326..e90f631858 100644 --- a/.changeset/four-birds-peel.md +++ b/.changeset/four-birds-peel.md @@ -2,6 +2,6 @@ '@backstage/plugin-home': patch --- -- Adds new HomePageStackOverflowQuestions component which renders a list of stack overflow questions on your homepage. +- Adds new `HomePageStackOverflowQuestions` component which renders a list of stack overflow questions on your homepage. -- Exports ComponentRenderer type. +- Exports `ComponentRenderer` type. From 67334496418d73227680458391cf1e58caa4d3df Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 28 Mar 2022 10:35:15 +0200 Subject: [PATCH 196/225] add @public to ComponentRenderer Signed-off-by: Emma Indal --- plugins/home/api-report.md | 6 ++---- plugins/home/src/extensions.tsx | 3 +++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/home/api-report.md b/plugins/home/api-report.md index 8cb5ef3d1c..d5f5c52ea1 100644 --- a/plugins/home/api-report.md +++ b/plugins/home/api-report.md @@ -39,8 +39,6 @@ export const ComponentAccordion: ({ ContextProvider?: ((props: any) => JSX.Element) | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "ComponentRenderer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type ComponentRenderer = { Renderer?: (props: RendererProps) => JSX.Element; @@ -167,6 +165,6 @@ export const WelcomeTitle: () => JSX.Element; // Warnings were encountered during analysis: // -// src/extensions.d.ts:3:5 - (ae-forgotten-export) The symbol "RendererProps" needs to be exported by the entry point index.d.ts -// src/extensions.d.ts:24:5 - (ae-forgotten-export) The symbol "ComponentParts" needs to be exported by the entry point index.d.ts +// src/extensions.d.ts:6:5 - (ae-forgotten-export) The symbol "RendererProps" needs to be exported by the entry point index.d.ts +// src/extensions.d.ts:27:5 - (ae-forgotten-export) The symbol "ComponentParts" needs to be exported by the entry point index.d.ts ``` diff --git a/plugins/home/src/extensions.tsx b/plugins/home/src/extensions.tsx index 4a234f9813..4139e301a3 100644 --- a/plugins/home/src/extensions.tsx +++ b/plugins/home/src/extensions.tsx @@ -21,6 +21,9 @@ import { InfoCard } from '@backstage/core-components'; import { SettingsModal } from './components'; import { createReactExtension, useApp } from '@backstage/core-plugin-api'; +/** + * @public + */ export type ComponentRenderer = { Renderer?: (props: RendererProps) => JSX.Element; }; From 216c262bf2833ab7a6883331f971abbdfcc74a49 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 28 Mar 2022 08:51:07 +0200 Subject: [PATCH 197/225] fix(techdocs): mobile sidebar width Signed-off-by: Camila Belo --- .../techdocs/src/reader/components/Reader.tsx | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 9ce9ad5d6d..0d7615fab3 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -450,12 +450,6 @@ export const useTechDocsReaderDom = ( scrollbar-color: rgb(193, 193, 193) #eee; scrollbar-width: thin; } - .md-sidebar .md-sidebar__scrollwrap { - width: calc(16rem - 10px); - } - .md-sidebar--secondary { - right: ${theme.spacing(3)}px; - } .md-sidebar::-webkit-scrollbar { width: 5px; } @@ -478,6 +472,12 @@ export const useTechDocsReaderDom = ( .md-sidebar::-webkit-scrollbar-thumb:hover { background: rgb(125, 125, 125); } + .md-sidebar--secondary { + right: ${theme.spacing(3)}px; + } + .md-sidebar__scrollwrap { + overflow: unset !important; + } .md-content { max-width: calc(100% - 16rem * 2); @@ -556,15 +556,18 @@ export const useTechDocsReaderDom = ( height: 100%; } .md-sidebar--primary { - width: 12.1rem !important; + width: 16rem !important; z-index: 200; left: ${ - isPinned ? 'calc(-12.1rem + 242px)' : 'calc(-12.1rem + 72px)' + isPinned ? 'calc(-16rem + 242px)' : 'calc(-16rem + 72px)' } !important; } .md-sidebar--secondary:not([hidden]) { display: none; } + [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary { + transform: translateX(16rem); + } .md-content { max-width: 100%; @@ -593,8 +596,8 @@ export const useTechDocsReaderDom = ( @media screen and (max-width: 600px) { .md-sidebar--primary { - left: -12.1rem !important; - width: 12.1rem; + left: -16rem !important; + width: 16rem; } } `, From e56bcbfb0ccaa65d3f4ff21235a1a00a4a5f8389 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 28 Mar 2022 09:05:16 +0200 Subject: [PATCH 198/225] fix(techdocs): footer link width Signed-off-by: Camila Belo --- plugins/techdocs/src/reader/components/Reader.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 0d7615fab3..6d180b1d50 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -492,7 +492,7 @@ export const useTechDocsReaderDom = ( .md-footer__title { background-color: unset; } - .md-footer-nav__link { + .md-footer__link, .md-footer-nav__link { width: 16rem; } @@ -588,7 +588,7 @@ export const useTechDocsReaderDom = ( position: static; padding-left: 0; } - .md-footer-nav__link { + .md-footer__link, .md-footer-nav__link { /* footer links begin to overlap at small sizes without setting width */ width: 50%; } From 52708317f9aafb9a0cd743b72d1e9963c91efc14 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 28 Mar 2022 09:09:46 +0200 Subject: [PATCH 199/225] fix(techdocs): inner content width Signed-off-by: Camila Belo --- plugins/techdocs/src/reader/components/Reader.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 6d180b1d50..5391863b50 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -573,6 +573,9 @@ export const useTechDocsReaderDom = ( max-width: 100%; margin-left: 0; } + .md-content__inner { + margin: 0; + } .md-header__button { margin: 0.4rem 0; From bf4d0528971fe42f9ce4efebb05348ef12307bd4 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 28 Mar 2022 10:44:43 +0200 Subject: [PATCH 200/225] fix(techdocs): code block margins Signed-off-by: Camila Belo --- plugins/techdocs/src/reader/components/Reader.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 5391863b50..02a7929539 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -576,6 +576,10 @@ export const useTechDocsReaderDom = ( .md-content__inner { margin: 0; } + .md-content__inner .highlighttable { + max-width: 100%; + margin: 1em 0; + } .md-header__button { margin: 0.4rem 0; @@ -707,7 +711,7 @@ export const useTechDocsReaderDom = ( .highlight .md-clipboard:after { content: unset; } - + .highlight .nx { color: ${isDarkTheme ? '#ff53a3' : '#ec407a'}; } From 49f646a9c953ffea3bce348563d5fbfe94312abe Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 28 Mar 2022 10:45:46 +0200 Subject: [PATCH 201/225] fix(techdocs): drawer toggle margins Signed-off-by: Camila Belo --- .../techdocs/src/reader/transformers/addSidebarToggle.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/techdocs/src/reader/transformers/addSidebarToggle.ts b/plugins/techdocs/src/reader/transformers/addSidebarToggle.ts index 9d9db15e45..69256d3ed6 100644 --- a/plugins/techdocs/src/reader/transformers/addSidebarToggle.ts +++ b/plugins/techdocs/src/reader/transformers/addSidebarToggle.ts @@ -34,10 +34,11 @@ export const addSidebarToggle = (): Transformer => { const toggleSidebar = mkdocsToggleSidebar.cloneNode() as HTMLLabelElement; ReactDOM.render(React.createElement(MenuIcon), toggleSidebar); - toggleSidebar.style.paddingLeft = '5px'; - toggleSidebar.classList.add('md-content__button'); - toggleSidebar.title = 'Toggle Sidebar'; toggleSidebar.id = 'toggle-sidebar'; + toggleSidebar.title = 'Toggle Sidebar'; + toggleSidebar.classList.add('md-content__button'); + toggleSidebar.style.setProperty('padding', '0 0 0 5px'); + toggleSidebar.style.setProperty('margin', '0.4rem 0 0.4rem 0.4rem'); article?.prepend(toggleSidebar); return dom; }; From 0152c0de2290fa9391c6008e13a267e7feaba6b1 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 28 Mar 2022 10:50:24 +0200 Subject: [PATCH 202/225] fix(techdocs): add changeset file Signed-off-by: Camila Belo --- .changeset/techdocs-parents-suffer.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .changeset/techdocs-parents-suffer.md diff --git a/.changeset/techdocs-parents-suffer.md b/.changeset/techdocs-parents-suffer.md new file mode 100644 index 0000000000..8e366dd506 --- /dev/null +++ b/.changeset/techdocs-parents-suffer.md @@ -0,0 +1,12 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Some documentation layout tweaks: + +- drawer toggle margins +- code block margins +- sidebar drawer width +- inner content width +- footer link width +- sidebar table of contents scroll From bf6d36a062cb911d26ed25c3483ffd08fd5ab69f Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Mon, 28 Mar 2022 11:45:42 +0200 Subject: [PATCH 203/225] update changeset Signed-off-by: Johan Haals --- .changeset/moody-ducks-return.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/moody-ducks-return.md b/.changeset/moody-ducks-return.md index 314f8fc705..090b2f5db4 100644 --- a/.changeset/moody-ducks-return.md +++ b/.changeset/moody-ducks-return.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-backend': minor --- -Add new option to create draft GitHub PRs +Add new `draft` option to the `publish:github:pull-request` action. From 8012ac46a0f426464ce136f5c12c1d7de29ebe77 Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Mon, 28 Mar 2022 11:06:38 +0100 Subject: [PATCH 204/225] permissions: ensure returned conditions match permission in `PermissionPolicy#handle` (#10075) * permission-node: fix signature of permission rule in test suites Signed-off-by: Mike Lewis * permission-common: add isPermission helper for comparing permissions Signed-off-by: Mike Lewis * permission-node: adjust createConditionExports for more type safety Signed-off-by: Mike Lewis * permissions: add resourceType property to PermissionCondition and PermissionRule Signed-off-by: Mike Lewis * catalog: handle changes to PermissionCondition and PermissionRule types Signed-off-by: Mike Lewis * catalog-backend: avoid re-exporting alpha import cf. https://github.com/backstage/backstage/pull/10128 Signed-off-by: Mike Lewis * Update changeset Signed-off-by: Joe Porpeglia * Resolve api-report conflict Signed-off-by: Joon Park Co-authored-by: Joe Porpeglia Co-authored-by: Joon Park --- .changeset/beige-avocados-matter.md | 28 +++ .changeset/calm-walls-heal.md | 5 + .changeset/dry-fans-arrive.md | 63 +++++++ .changeset/modern-actors-notice.md | 5 + .changeset/sour-cameras-deliver.md | 10 + .changeset/sour-lobsters-sniff.md | 5 + .changeset/stale-carrots-smile.md | 5 + plugins/catalog-backend/api-report.md | 65 +++++-- .../src/permissions/conditionExports.ts | 32 ++-- .../catalog-backend/src/permissions/index.ts | 2 +- .../permissions/rules/createPropertyRule.ts | 2 + .../src/permissions/rules/hasAnnotation.ts | 2 + .../src/permissions/rules/hasLabel.ts | 2 + .../src/permissions/rules/index.ts | 1 + .../src/permissions/rules/isEntityKind.ts | 2 + .../src/permissions/rules/isEntityOwner.ts | 2 + .../src/permissions/rules/util.ts | 19 +- .../service/AuthorizedEntitiesCatalog.test.ts | 12 +- .../src/service/CatalogBuilder.ts | 23 +-- .../src/service/createRouter.test.ts | 16 +- .../PermissionIntegrationClient.test.ts | 51 +++-- plugins/permission-common/api-report.md | 12 +- .../permission-common/src/PermissionClient.ts | 1 + .../permission-common/src/permissions/util.ts | 11 ++ plugins/permission-common/src/types/api.ts | 6 +- plugins/permission-node/api-report.md | 63 ++++--- .../createConditionExports.test.ts | 45 ++++- .../src/integration/createConditionExports.ts | 38 ++-- .../createConditionFactory.test.ts | 7 +- .../src/integration/createConditionFactory.ts | 8 +- .../createConditionTransformer.test.ts | 95 ++++++++-- .../integration/createConditionTransformer.ts | 4 +- .../createPermissionIntegrationRouter.test.ts | 175 +++++++++++++++--- .../createPermissionIntegrationRouter.ts | 28 ++- .../src/integration/createPermissionRule.ts | 7 +- .../src/integration/util.test.ts | 11 +- .../permission-node/src/integration/util.ts | 4 +- plugins/permission-node/src/types.ts | 2 + 38 files changed, 676 insertions(+), 193 deletions(-) create mode 100644 .changeset/beige-avocados-matter.md create mode 100644 .changeset/calm-walls-heal.md create mode 100644 .changeset/dry-fans-arrive.md create mode 100644 .changeset/modern-actors-notice.md create mode 100644 .changeset/sour-cameras-deliver.md create mode 100644 .changeset/sour-lobsters-sniff.md create mode 100644 .changeset/stale-carrots-smile.md diff --git a/.changeset/beige-avocados-matter.md b/.changeset/beige-avocados-matter.md new file mode 100644 index 0000000000..d6c1e3b2a5 --- /dev/null +++ b/.changeset/beige-avocados-matter.md @@ -0,0 +1,28 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +**BREAKING (alpha api):** Replace `createCatalogPolicyDecision` export with `createCatalogConditionalDecision`, which accepts a permission parameter of type `ResourcePermission<'catalog-entity'>` along with conditions. The permission passed is expected to be the handled permission in `PermissionPolicy#handle`, whose type must first be narrowed using methods like `isPermission` and `isResourcePermission`: + +```typescript +class TestPermissionPolicy implements PermissionPolicy { + async handle( + request: PolicyQuery, + _user?: BackstageIdentityResponse, + ): Promise { + if ( + // Narrow type of `request.permission` to `ResourcePermission<'catalog-entity'> + isResourcePermission(request.permission, RESOURCE_TYPE_CATALOG_ENTITY) + ) { + return createCatalogConditionalDecision( + request.permission, + catalogConditions.isEntityOwner( + _user?.identity.ownershipEntityRefs ?? [], + ), + ); + } + + return { + result: AuthorizeResult.ALLOW, + }; +``` diff --git a/.changeset/calm-walls-heal.md b/.changeset/calm-walls-heal.md new file mode 100644 index 0000000000..f47ce4a0e9 --- /dev/null +++ b/.changeset/calm-walls-heal.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-common': minor +--- + +Add `resourceType` property to `PermissionCondition` type to allow matching them with `ResourcePermission` instances. diff --git a/.changeset/dry-fans-arrive.md b/.changeset/dry-fans-arrive.md new file mode 100644 index 0000000000..6947703e7f --- /dev/null +++ b/.changeset/dry-fans-arrive.md @@ -0,0 +1,63 @@ +--- +'@backstage/plugin-permission-node': minor +--- + +**BREAKING**: Stronger typing in `PermissionPolicy` 🎉. + +Previously, it was entirely the responsibility of the `PermissionPolicy` author to only return `CONDITIONAL` decisions for permissions that are associated with a resource, and to return the correct kind of `PermissionCondition` instances inside the decision. Now, the policy authoring helpers provided in this package now ensure that the decision and permission match. + +**For policy authors**: rename and adjust api of `createConditionExports`. Previously, the function returned a factory for creating conditional decisions named `createPolicyDecision`, which had a couple of drawbacks: + +1. The function always creates a _conditional_ policy decision, but this was not reflected in the name. +2. Conditional decisions should only ever be returned from `PermissionPolicy#handle` for resource permissions, but there was nothing in the API that encoded this constraint. + +This change addresses the drawbacks above by making the following changes for policy authors: + +- The `createPolicyDecision` method has been renamed to `createConditionalDecision`. +- Along with conditions, the method now accepts a permission, which must be a `ResourcePermission`. This is expected to be the handled permission in `PermissionPolicy#handle`, whose type must first be narrowed using methods like `isPermission` and `isResourcePermission`: + +```typescript +class TestPermissionPolicy implements PermissionPolicy { + async handle( + request: PolicyQuery, + _user?: BackstageIdentityResponse, + ): Promise { + if ( + // Narrow type of `request.permission` to `ResourcePermission<'catalog-entity'> + isResourcePermission(request.permission, RESOURCE_TYPE_CATALOG_ENTITY) + ) { + return createCatalogConditionalDecision( + request.permission, + catalogConditions.isEntityOwner( + _user?.identity.ownershipEntityRefs ?? [], + ), + ); + } + + return { + result: AuthorizeResult.ALLOW, + }; +``` + +**BREAKING**: when creating `PermissionRule`s, provide a `resourceType`. + +```diff +export const isEntityOwner = createCatalogPermissionRule({ + name: 'IS_ENTITY_OWNER', + description: 'Allow entities owned by the current user', ++ resourceType: RESOURCE_TYPE_CATALOG_ENTITY, + apply: (resource: Entity, claims: string[]) => { + if (!resource.relations) { + return false; + } + + return resource.relations + .filter(relation => relation.type === RELATION_OWNED_BY) + .some(relation => claims.includes(relation.targetRef)); + }, + toQuery: (claims: string[]) => ({ + key: 'relations.ownedBy', + values: claims, + }), +}); +``` diff --git a/.changeset/modern-actors-notice.md b/.changeset/modern-actors-notice.md new file mode 100644 index 0000000000..20dde7f42d --- /dev/null +++ b/.changeset/modern-actors-notice.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +**BREAKING:** Mark CatalogBuilder#addPermissionRules as @alpha. diff --git a/.changeset/sour-cameras-deliver.md b/.changeset/sour-cameras-deliver.md new file mode 100644 index 0000000000..21e23e7833 --- /dev/null +++ b/.changeset/sour-cameras-deliver.md @@ -0,0 +1,10 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Handle changes to @alpha permission-related types. + +- All exported permission rules and conditions now have a `resourceType`. +- `createCatalogConditionalDecision` now expects supplied conditions to have the appropriate `resourceType`. +- `createCatalogPermissionRule` now expects `resourceType` as part of the supplied rule object. +- Introduce new `CatalogPermissionRule` convenience type. diff --git a/.changeset/sour-lobsters-sniff.md b/.changeset/sour-lobsters-sniff.md new file mode 100644 index 0000000000..fb8d1f2076 --- /dev/null +++ b/.changeset/sour-lobsters-sniff.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-node': patch +--- + +Fix signature of permission rule in test suites diff --git a/.changeset/stale-carrots-smile.md b/.changeset/stale-carrots-smile.md new file mode 100644 index 0000000000..20b77dd834 --- /dev/null +++ b/.changeset/stale-carrots-smile.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-common': patch +--- + +Add `isPermission` helper method. diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index 0df10cf944..bd99205189 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -25,6 +25,7 @@ import { PermissionRule } from '@backstage/plugin-permission-node'; import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { Readable } from 'stream'; +import { ResourcePermission } from '@backstage/plugin-permission-common'; import { Router } from 'express'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { TokenManager } from '@backstage/backend-common'; @@ -109,13 +110,8 @@ export class BuiltinKindsEntityProcessor implements CatalogProcessor { export class CatalogBuilder { addEntityPolicy(...policies: EntityPolicy[]): CatalogBuilder; addEntityProvider(...providers: EntityProvider[]): CatalogBuilder; - addPermissionRules( - ...permissionRules: PermissionRule< - Entity, - EntitiesSearchFilter, - unknown[] - >[] - ): void; + // @alpha + addPermissionRules(...permissionRules: CatalogPermissionRule[]): void; addProcessor(...processors: CatalogProcessor[]): CatalogBuilder; build(): Promise<{ processingEngine: CatalogProcessingEngine; @@ -143,23 +139,37 @@ export const catalogConditions: Conditions<{ hasAnnotation: PermissionRule< Entity, EntitiesSearchFilter, + 'catalog-entity', [annotation: string] >; - hasLabel: PermissionRule; + hasLabel: PermissionRule< + Entity, + EntitiesSearchFilter, + 'catalog-entity', + [label: string] + >; hasMetadata: PermissionRule< Entity, EntitiesSearchFilter, + 'catalog-entity', [key: string, value?: string | undefined] >; hasSpec: PermissionRule< Entity, EntitiesSearchFilter, + 'catalog-entity', [key: string, value?: string | undefined] >; - isEntityKind: PermissionRule; + isEntityKind: PermissionRule< + Entity, + EntitiesSearchFilter, + 'catalog-entity', + [kinds: string[]] + >; isEntityOwner: PermissionRule< Entity, EntitiesSearchFilter, + 'catalog-entity', [claims: string[]] >; }>; @@ -173,6 +183,10 @@ export type CatalogEnvironment = { permissions: PermissionAuthorizer; }; +// @alpha +export type CatalogPermissionRule = + PermissionRule; + // @public (undocumented) export interface CatalogProcessingEngine { // (undocumented) @@ -277,14 +291,17 @@ export class CodeOwnersProcessor implements CatalogProcessor { } // @alpha -export const createCatalogPermissionRule: ( - rule: PermissionRule, -) => PermissionRule; +export const createCatalogConditionalDecision: ( + permission: ResourcePermission<'catalog-entity'>, + conditions: PermissionCriteria< + PermissionCondition<'catalog-entity', unknown[]> + >, +) => ConditionalPolicyDecision; // @alpha -export const createCatalogPolicyDecision: ( - conditions: PermissionCriteria>, -) => ConditionalPolicyDecision; +export const createCatalogPermissionRule: ( + rule: PermissionRule, +) => PermissionRule; // @public export function createRandomProcessingInterval(options: { @@ -469,23 +486,37 @@ export const permissionRules: { hasAnnotation: PermissionRule< Entity, EntitiesSearchFilter, + 'catalog-entity', [annotation: string] >; - hasLabel: PermissionRule; + hasLabel: PermissionRule< + Entity, + EntitiesSearchFilter, + 'catalog-entity', + [label: string] + >; hasMetadata: PermissionRule< Entity, EntitiesSearchFilter, + 'catalog-entity', [key: string, value?: string | undefined] >; hasSpec: PermissionRule< Entity, EntitiesSearchFilter, + 'catalog-entity', [key: string, value?: string | undefined] >; - isEntityKind: PermissionRule; + isEntityKind: PermissionRule< + Entity, + EntitiesSearchFilter, + 'catalog-entity', + [kinds: string[]] + >; isEntityOwner: PermissionRule< Entity, EntitiesSearchFilter, + 'catalog-entity', [claims: string[]] >; }; diff --git a/plugins/catalog-backend/src/permissions/conditionExports.ts b/plugins/catalog-backend/src/permissions/conditionExports.ts index 2846c8c3ec..1c1ba70631 100644 --- a/plugins/catalog-backend/src/permissions/conditionExports.ts +++ b/plugins/catalog-backend/src/permissions/conditionExports.ts @@ -18,41 +18,49 @@ import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; import { createConditionExports } from '@backstage/plugin-permission-node'; import { permissionRules } from './rules'; -const conditionExports = createConditionExports({ +const { conditions, createConditionalDecision } = createConditionExports({ pluginId: 'catalog', resourceType: RESOURCE_TYPE_CATALOG_ENTITY, rules: permissionRules, }); /** - * These conditions are used when creating conditional decisions that are returned - * by authorization policies. + * These conditions are used when creating conditional decisions for catalog + * entities that are returned by authorization policies. * * @alpha */ -export const catalogConditions = conditionExports.conditions; +export const catalogConditions = conditions; /** - * `createCatalogPolicyDecision` can be used when authoring policies to create - * conditional decisions. + * `createCatalogConditionalDecision` can be used when authoring policies to + * create conditional decisions. It requires a permission of type + * `ResourcePermission<'catalog-entity'>` to be passed as the first parameter. + * It's recommended that you use the provided `isResourcePermission` and + * `isPermission` helper methods to narrow the type of the permission passed to + * the handle method as shown below. * * ``` * // MyAuthorizationPolicy.ts * ... * import { createCatalogPolicyDecision } from '@backstage/plugin-catalog-backend'; + * import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; * * class MyAuthorizationPolicy implements PermissionPolicy { * async handle(request, user) { * ... * - * return createCatalogPolicyDecision({ - * anyOf: [...insert conditions here...], - * }); - * } + * if (isResourcePermission(request.permission, RESOURCE_TYPE_CATALOG_ENTITY)) { + * return createCatalogConditionalDecision( + * request.permission, + * { anyOf: [...insert conditions here...] } + * ); + * } + * + * ... * } * ``` * * @alpha */ -export const createCatalogPolicyDecision = - conditionExports.createPolicyDecision; +export const createCatalogConditionalDecision = createConditionalDecision; diff --git a/plugins/catalog-backend/src/permissions/index.ts b/plugins/catalog-backend/src/permissions/index.ts index cefc17ed99..19d57de908 100644 --- a/plugins/catalog-backend/src/permissions/index.ts +++ b/plugins/catalog-backend/src/permissions/index.ts @@ -16,6 +16,6 @@ export { catalogConditions, - createCatalogPolicyDecision, + createCatalogConditionalDecision, } from './conditionExports'; export * from './rules'; diff --git a/plugins/catalog-backend/src/permissions/rules/createPropertyRule.ts b/plugins/catalog-backend/src/permissions/rules/createPropertyRule.ts index 27a6033362..3808eced7b 100644 --- a/plugins/catalog-backend/src/permissions/rules/createPropertyRule.ts +++ b/plugins/catalog-backend/src/permissions/rules/createPropertyRule.ts @@ -16,12 +16,14 @@ import { get } from 'lodash'; import { Entity } from '@backstage/catalog-model'; +import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; import { createCatalogPermissionRule } from './util'; export const createPropertyRule = (propertyType: 'metadata' | 'spec') => createCatalogPermissionRule({ name: `HAS_${propertyType.toUpperCase()}`, description: `Allow entities which have the specified ${propertyType} subfield.`, + resourceType: RESOURCE_TYPE_CATALOG_ENTITY, apply: (resource: Entity, key: string, value?: string) => { const foundValue = get(resource[propertyType], key); if (value !== undefined) { diff --git a/plugins/catalog-backend/src/permissions/rules/hasAnnotation.ts b/plugins/catalog-backend/src/permissions/rules/hasAnnotation.ts index c6c5951153..68ca65418d 100644 --- a/plugins/catalog-backend/src/permissions/rules/hasAnnotation.ts +++ b/plugins/catalog-backend/src/permissions/rules/hasAnnotation.ts @@ -15,6 +15,7 @@ */ import { Entity } from '@backstage/catalog-model'; +import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; import { createCatalogPermissionRule } from './util'; /** @@ -27,6 +28,7 @@ export const hasAnnotation = createCatalogPermissionRule({ name: 'HAS_ANNOTATION', description: 'Allow entities which are annotated with the specified annotation', + resourceType: RESOURCE_TYPE_CATALOG_ENTITY, apply: (resource: Entity, annotation: string) => !!resource.metadata.annotations?.hasOwnProperty(annotation), toQuery: (annotation: string) => ({ diff --git a/plugins/catalog-backend/src/permissions/rules/hasLabel.ts b/plugins/catalog-backend/src/permissions/rules/hasLabel.ts index 7296eecd89..9f37cbfb59 100644 --- a/plugins/catalog-backend/src/permissions/rules/hasLabel.ts +++ b/plugins/catalog-backend/src/permissions/rules/hasLabel.ts @@ -15,6 +15,7 @@ */ import { Entity } from '@backstage/catalog-model'; +import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; import { createCatalogPermissionRule } from './util'; /** @@ -25,6 +26,7 @@ import { createCatalogPermissionRule } from './util'; export const hasLabel = createCatalogPermissionRule({ name: 'HAS_LABEL', description: 'Allow entities which have the specified label metadata.', + resourceType: RESOURCE_TYPE_CATALOG_ENTITY, apply: (resource: Entity, label: string) => !!resource.metadata.labels?.hasOwnProperty(label), toQuery: (label: string) => ({ diff --git a/plugins/catalog-backend/src/permissions/rules/index.ts b/plugins/catalog-backend/src/permissions/rules/index.ts index f9d192781e..d3f405621a 100644 --- a/plugins/catalog-backend/src/permissions/rules/index.ts +++ b/plugins/catalog-backend/src/permissions/rules/index.ts @@ -36,4 +36,5 @@ export const permissionRules = { isEntityOwner, }; +export type { CatalogPermissionRule } from './util'; export { createCatalogPermissionRule } from './util'; diff --git a/plugins/catalog-backend/src/permissions/rules/isEntityKind.ts b/plugins/catalog-backend/src/permissions/rules/isEntityKind.ts index c330c903d9..3bd600e8fe 100644 --- a/plugins/catalog-backend/src/permissions/rules/isEntityKind.ts +++ b/plugins/catalog-backend/src/permissions/rules/isEntityKind.ts @@ -14,6 +14,7 @@ * limitations under the License. */ import { Entity } from '@backstage/catalog-model'; +import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; import { EntitiesSearchFilter } from '../../catalog/types'; import { createCatalogPermissionRule } from './util'; @@ -25,6 +26,7 @@ import { createCatalogPermissionRule } from './util'; export const isEntityKind = createCatalogPermissionRule({ name: 'IS_ENTITY_KIND', description: 'Allow entities with the specified kind', + resourceType: RESOURCE_TYPE_CATALOG_ENTITY, apply(resource: Entity, kinds: string[]) { const resourceKind = resource.kind.toLocaleLowerCase('en-US'); return kinds.some(kind => kind.toLocaleLowerCase('en-US') === resourceKind); diff --git a/plugins/catalog-backend/src/permissions/rules/isEntityOwner.ts b/plugins/catalog-backend/src/permissions/rules/isEntityOwner.ts index 23f118abc4..5403da2310 100644 --- a/plugins/catalog-backend/src/permissions/rules/isEntityOwner.ts +++ b/plugins/catalog-backend/src/permissions/rules/isEntityOwner.ts @@ -15,6 +15,7 @@ */ import { Entity, RELATION_OWNED_BY } from '@backstage/catalog-model'; +import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; import { createCatalogPermissionRule } from './util'; /** @@ -26,6 +27,7 @@ import { createCatalogPermissionRule } from './util'; export const isEntityOwner = createCatalogPermissionRule({ name: 'IS_ENTITY_OWNER', description: 'Allow entities owned by the current user', + resourceType: RESOURCE_TYPE_CATALOG_ENTITY, apply: (resource: Entity, claims: string[]) => { if (!resource.relations) { return false; diff --git a/plugins/catalog-backend/src/permissions/rules/util.ts b/plugins/catalog-backend/src/permissions/rules/util.ts index a1316c7fb2..36b351595d 100644 --- a/plugins/catalog-backend/src/permissions/rules/util.ts +++ b/plugins/catalog-backend/src/permissions/rules/util.ts @@ -15,9 +15,23 @@ */ import { Entity } from '@backstage/catalog-model'; -import { makeCreatePermissionRule } from '@backstage/plugin-permission-node'; +import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; +import { + makeCreatePermissionRule, + PermissionRule, +} from '@backstage/plugin-permission-node'; import { EntitiesSearchFilter } from '../../catalog/types'; +/** + * Convenience type for {@link @backstage/plugin-permission-node#PermissionRule} + * instances with the correct resource type, resource, and filter to work with + * the catalog. + * + * @alpha + */ +export type CatalogPermissionRule = + PermissionRule; + /** * Helper function for creating correctly-typed * {@link @backstage/plugin-permission-node#PermissionRule}s for the @@ -27,5 +41,6 @@ import { EntitiesSearchFilter } from '../../catalog/types'; */ export const createCatalogPermissionRule = makeCreatePermissionRule< Entity, - EntitiesSearchFilter + EntitiesSearchFilter, + typeof RESOURCE_TYPE_CATALOG_ENTITY >(); diff --git a/plugins/catalog-backend/src/service/AuthorizedEntitiesCatalog.test.ts b/plugins/catalog-backend/src/service/AuthorizedEntitiesCatalog.test.ts index 1f0e5ea644..b29e1121b3 100644 --- a/plugins/catalog-backend/src/service/AuthorizedEntitiesCatalog.test.ts +++ b/plugins/catalog-backend/src/service/AuthorizedEntitiesCatalog.test.ts @@ -14,15 +14,11 @@ * limitations under the License. */ -import { Entity } from '@backstage/catalog-model'; import { NotAllowedError } from '@backstage/errors'; import { AuthorizeResult } from '@backstage/plugin-permission-common'; -import { - createConditionTransformer, - PermissionRule, -} from '@backstage/plugin-permission-node'; -import { EntitiesSearchFilter } from '../catalog/types'; +import { createConditionTransformer } from '@backstage/plugin-permission-node'; import { isEntityKind } from '../permissions/rules/isEntityKind'; +import { CatalogPermissionRule } from '../permissions/rules'; import { AuthorizedEntitiesCatalog } from './AuthorizedEntitiesCatalog'; describe('AuthorizedEntitiesCatalog', () => { @@ -36,9 +32,7 @@ describe('AuthorizedEntitiesCatalog', () => { authorize: jest.fn(), }; - const createCatalog = ( - ...rules: PermissionRule[] - ) => + const createCatalog = (...rules: CatalogPermissionRule[]) => new AuthorizedEntitiesCatalog( fakeCatalog, fakePermissionApi, diff --git a/plugins/catalog-backend/src/service/CatalogBuilder.ts b/plugins/catalog-backend/src/service/CatalogBuilder.ts index fb4ed6086f..99d7f0e41a 100644 --- a/plugins/catalog-backend/src/service/CatalogBuilder.ts +++ b/plugins/catalog-backend/src/service/CatalogBuilder.ts @@ -17,7 +17,6 @@ import { PluginDatabaseManager, UrlReader } from '@backstage/backend-common'; import { DefaultNamespaceEntityPolicy, - Entity, EntityPolicies, EntityPolicy, FieldFormatEntityPolicy, @@ -32,7 +31,6 @@ import { ScmIntegrations } from '@backstage/integration'; import { createHash } from 'crypto'; import { Router } from 'express'; import lodash, { keyBy } from 'lodash'; -import { EntitiesSearchFilter } from '../catalog'; import { CatalogProcessor, @@ -77,10 +75,12 @@ import { DefaultCatalogRulesEnforcer } from '../ingestion/CatalogRules'; import { Config } from '@backstage/config'; import { Logger } from 'winston'; import { connectEntityProviders } from '../processing/connectEntityProviders'; -import { permissionRules as catalogPermissionRules } from '../permissions/rules'; +import { + CatalogPermissionRule, + permissionRules as catalogPermissionRules, +} from '../permissions/rules'; import { PermissionAuthorizer } from '@backstage/plugin-permission-common'; import { - PermissionRule, createConditionTransformer, createPermissionIntegrationRouter, } from '@backstage/plugin-permission-node'; @@ -135,11 +135,7 @@ export class CatalogBuilder { maxSeconds: 150, }); private locationAnalyzer: LocationAnalyzer | undefined = undefined; - private permissionRules: PermissionRule< - Entity, - EntitiesSearchFilter, - unknown[] - >[]; + private permissionRules: CatalogPermissionRule[]; /** * Creates a catalog builder. @@ -339,14 +335,9 @@ export class CatalogBuilder { * {@link @backstage/plugin-permission-node#PermissionRule}. * * @param permissionRules - Additional permission rules + * @alpha */ - addPermissionRules( - ...permissionRules: PermissionRule< - Entity, - EntitiesSearchFilter, - unknown[] - >[] - ) { + addPermissionRules(...permissionRules: CatalogPermissionRule[]) { this.permissionRules.push(...permissionRules); } diff --git a/plugins/catalog-backend/src/service/createRouter.test.ts b/plugins/catalog-backend/src/service/createRouter.test.ts index 1602d07d28..6def04a11c 100644 --- a/plugins/catalog-backend/src/service/createRouter.test.ts +++ b/plugins/catalog-backend/src/service/createRouter.test.ts @@ -26,7 +26,10 @@ import { LocationInput, LocationService, RefreshService } from './types'; import { basicEntityFilter } from './request'; import { createRouter } from './createRouter'; import { AuthorizeResult } from '@backstage/plugin-permission-common'; -import { createPermissionIntegrationRouter } from '@backstage/plugin-permission-node'; +import { + createPermissionIntegrationRouter, + createPermissionRule, +} from '@backstage/plugin-permission-node'; import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; describe('createRouter readonly disabled', () => { @@ -568,12 +571,13 @@ describe('NextRouter permissioning', () => { let app: express.Express; let refreshService: RefreshService; - const fakeRule = { + const fakeRule = createPermissionRule({ name: 'FAKE_RULE', description: 'fake rule', + resourceType: RESOURCE_TYPE_CATALOG_ENTITY, apply: () => true, toQuery: () => ({ key: '', values: [] }), - }; + }); beforeAll(async () => { entitiesCatalog = { @@ -631,7 +635,11 @@ describe('NextRouter permissioning', () => { id: '123', resourceType: 'catalog-entity', resourceRef: 'component:default/spidey-sense', - conditions: { rule: 'FAKE_RULE', params: ['user:default/spiderman'] }, + conditions: { + rule: 'FAKE_RULE', + resourceType: 'catalog-entity', + params: ['user:default/spiderman'], + }, }, ], }; diff --git a/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts b/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts index 9981496658..451a6895a9 100644 --- a/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts +++ b/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts @@ -25,7 +25,10 @@ import { PermissionCondition, PermissionCriteria, } from '@backstage/plugin-permission-common'; -import { createPermissionIntegrationRouter } from '@backstage/plugin-permission-node'; +import { + createPermissionIntegrationRouter, + createPermissionRule, +} from '@backstage/plugin-permission-node'; import { PermissionIntegrationClient } from './PermissionIntegrationClient'; describe('PermissionIntegrationClient', () => { @@ -35,8 +38,8 @@ describe('PermissionIntegrationClient', () => { const mockConditions: PermissionCriteria = { not: { allOf: [ - { rule: 'RULE_1', params: [] }, - { rule: 'RULE_2', params: ['abc'] }, + { rule: 'RULE_1', resourceType: 'test-resource', params: [] }, + { rule: 'RULE_2', resourceType: 'test-resource', params: ['abc'] }, ], }, }; @@ -272,22 +275,24 @@ describe('PermissionIntegrationClient', () => { id: resourceRef, })), rules: [ - { + createPermissionRule({ name: 'RULE_1', description: 'Test rule 1', + resourceType: 'test-resource', apply: (_resource: any, input: 'yes' | 'no') => input === 'yes', toQuery: () => { throw new Error('Not implemented'); }, - }, - { + }), + createPermissionRule({ name: 'RULE_2', description: 'Test rule 2', + resourceType: 'test-resource', apply: (_resource: any, input: 'yes' | 'no') => input === 'yes', toQuery: () => { throw new Error('Not implemented'); }, - }, + }), ], }), ); @@ -336,7 +341,11 @@ describe('PermissionIntegrationClient', () => { id: '123', resourceRef: 'testResource1', resourceType: 'test-resource', - conditions: { rule: 'RULE_1', params: ['no'] }, + conditions: { + rule: 'RULE_1', + resourceType: 'test-resource', + params: ['no'], + }, }, ]), ).resolves.toEqual([{ id: '123', result: AuthorizeResult.DENY }]); @@ -353,15 +362,33 @@ describe('PermissionIntegrationClient', () => { allOf: [ { allOf: [ - { rule: 'RULE_1', params: ['yes'] }, - { not: { rule: 'RULE_2', params: ['no'] } }, + { + rule: 'RULE_1', + resourceType: 'test-resource', + params: ['yes'], + }, + { + not: { + rule: 'RULE_2', + resourceType: 'test-resource', + params: ['no'], + }, + }, ], }, { not: { allOf: [ - { rule: 'RULE_1', params: ['no'] }, - { rule: 'RULE_2', params: ['yes'] }, + { + rule: 'RULE_1', + resourceType: 'test-resource', + params: ['no'], + }, + { + rule: 'RULE_2', + resourceType: 'test-resource', + params: ['yes'], + }, ], }, }, diff --git a/plugins/permission-common/api-report.md b/plugins/permission-common/api-report.md index 07c1904183..ab0c68470d 100644 --- a/plugins/permission-common/api-report.md +++ b/plugins/permission-common/api-report.md @@ -89,6 +89,12 @@ export function isCreatePermission(permission: Permission): boolean; // @public export function isDeletePermission(permission: Permission): boolean; +// @public +export function isPermission( + permission: Permission, + comparedPermission: T, +): permission is T; + // @public export function isReadPermission(permission: Permission): boolean; @@ -141,7 +147,11 @@ export class PermissionClient implements PermissionAuthorizer { } // @public -export type PermissionCondition = { +export type PermissionCondition< + TResourceType extends string = string, + TParams extends unknown[] = unknown[], +> = { + resourceType: TResourceType; rule: string; params: TParams; }; diff --git a/plugins/permission-common/src/PermissionClient.ts b/plugins/permission-common/src/PermissionClient.ts index 3027234b72..72f6b04567 100644 --- a/plugins/permission-common/src/PermissionClient.ts +++ b/plugins/permission-common/src/PermissionClient.ts @@ -41,6 +41,7 @@ const permissionCriteriaSchema: z.ZodSchema< z .object({ rule: z.string(), + resourceType: z.string(), params: z.array(z.unknown()), }) .strict() diff --git a/plugins/permission-common/src/permissions/util.ts b/plugins/permission-common/src/permissions/util.ts index 2843d97419..1a5ed434a7 100644 --- a/plugins/permission-common/src/permissions/util.ts +++ b/plugins/permission-common/src/permissions/util.ts @@ -16,6 +16,17 @@ import { Permission, ResourcePermission } from '../types'; +/** + * Check if the two parameters are equivalent permissions. + * @public + */ +export function isPermission( + permission: Permission, + comparedPermission: T, +): permission is T { + return permission.name === comparedPermission.name; +} + /** * Check if a given permission is a {@link ResourcePermission}. When * `resourceType` is supplied as the second parameter, also checks if diff --git a/plugins/permission-common/src/types/api.ts b/plugins/permission-common/src/types/api.ts index 66693ccf1b..6aaabf978d 100644 --- a/plugins/permission-common/src/types/api.ts +++ b/plugins/permission-common/src/types/api.ts @@ -98,7 +98,11 @@ export type PolicyDecision = * claims from a identity token. * @public */ -export type PermissionCondition = { +export type PermissionCondition< + TResourceType extends string = string, + TParams extends unknown[] = unknown[], +> = { + resourceType: TResourceType; rule: string; params: TParams; }; diff --git a/plugins/permission-node/api-report.md b/plugins/permission-node/api-report.md index fe4e70abf9..57379dd68b 100644 --- a/plugins/permission-node/api-report.md +++ b/plugins/permission-node/api-report.md @@ -21,6 +21,7 @@ import { PermissionCondition } from '@backstage/plugin-permission-common'; import { PermissionCriteria } from '@backstage/plugin-permission-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PolicyDecision } from '@backstage/plugin-permission-common'; +import { ResourcePermission } from '@backstage/plugin-permission-common'; import { TokenManager } from '@backstage/backend-common'; // @public @@ -48,14 +49,15 @@ export type ApplyConditionsResponseEntry = export type Condition = TRule extends PermissionRule< any, any, + infer TResourceType, infer TParams > - ? (...params: TParams) => PermissionCondition + ? (...params: TParams) => PermissionCondition : never; // @public export type Conditions< - TRules extends Record>, + TRules extends Record>, > = { [Name in keyof TRules]: Condition; }; @@ -67,39 +69,49 @@ export type ConditionTransformer = ( // @public export const createConditionExports: < + TResourceType extends string, TResource, - TRules extends Record>, + TRules extends Record< + string, + PermissionRule + >, >(options: { pluginId: string; - resourceType: string; + resourceType: TResourceType; rules: TRules; }) => { conditions: Conditions; - createPolicyDecision: ( - conditions: PermissionCriteria, + createConditionalDecision: ( + permission: ResourcePermission, + conditions: PermissionCriteria< + PermissionCondition + >, ) => ConditionalPolicyDecision; }; // @public -export const createConditionFactory: ( - rule: PermissionRule, -) => (...params: TParams) => { - rule: string; - params: TParams; -}; +export const createConditionFactory: < + TResourceType extends string, + TParams extends any[], +>( + rule: PermissionRule, +) => (...params: TParams) => PermissionCondition; // @public export const createConditionTransformer: < TQuery, - TRules extends PermissionRule[], + TRules extends PermissionRule[], >( permissionRules: [...TRules], ) => ConditionTransformer; // @public -export const createPermissionIntegrationRouter: (options: { - resourceType: string; - rules: PermissionRule[]; +export const createPermissionIntegrationRouter: < + TResourceType extends string, + TResource, +>(options: { + resourceType: TResourceType; + rules: PermissionRule, unknown[]>[]; getResources: (resourceRefs: string[]) => Promise<(TResource | undefined)[]>; }) => express.Router; @@ -107,10 +119,11 @@ export const createPermissionIntegrationRouter: (options: { export const createPermissionRule: < TResource, TQuery, + TResourceType extends string, TParams extends unknown[], >( - rule: PermissionRule, -) => PermissionRule; + rule: PermissionRule, +) => PermissionRule; // @alpha export const isAndCriteria: ( @@ -128,11 +141,13 @@ export const isOrCriteria: ( ) => criteria is AnyOfCriteria; // @public -export const makeCreatePermissionRule: () => < - TParams extends unknown[], ->( - rule: PermissionRule, -) => PermissionRule; +export const makeCreatePermissionRule: < + TResource, + TQuery, + TResourceType extends string, +>() => ( + rule: PermissionRule, +) => PermissionRule; // @public export interface PermissionPolicy { @@ -147,10 +162,12 @@ export interface PermissionPolicy { export type PermissionRule< TResource, TQuery, + TResourceType extends string, TParams extends unknown[] = unknown[], > = { name: string; description: string; + resourceType: TResourceType; apply(resource: TResource, ...params: TParams): boolean; toQuery(...params: TParams): PermissionCriteria; }; diff --git a/plugins/permission-node/src/integration/createConditionExports.test.ts b/plugins/permission-node/src/integration/createConditionExports.test.ts index f3585d11ad..54d5652996 100644 --- a/plugins/permission-node/src/integration/createConditionExports.test.ts +++ b/plugins/permission-node/src/integration/createConditionExports.test.ts @@ -14,17 +14,22 @@ * limitations under the License. */ -import { AuthorizeResult } from '@backstage/plugin-permission-common'; +import { + AuthorizeResult, + createPermission, +} from '@backstage/plugin-permission-common'; import { createConditionExports } from './createConditionExports'; +import { createPermissionRule } from './createPermissionRule'; const testIntegration = () => createConditionExports({ pluginId: 'test-plugin', resourceType: 'test-resource', rules: { - testRule1: { + testRule1: createPermissionRule({ name: 'testRule1', description: 'Test rule 1', + resourceType: 'test-resource', apply: jest.fn( (_resource: any, _firstParam: string, _secondParam: number) => true, ), @@ -32,16 +37,17 @@ const testIntegration = () => query: 'testRule1', params: [firstParam, secondParam], })), - }, - testRule2: { + }), + testRule2: createPermissionRule({ name: 'testRule2', description: 'Test rule 2', - apply: jest.fn((_firstParam: object) => false), + resourceType: 'test-resource', + apply: jest.fn((_resource: any, _firstParam: object) => false), toQuery: jest.fn((firstParam: object) => ({ query: 'testRule2', params: [firstParam], })), - }, + }), }, }); @@ -52,11 +58,13 @@ describe('createConditionExports', () => { expect(conditions.testRule1('a', 1)).toEqual({ rule: 'testRule1', + resourceType: 'test-resource', params: ['a', 1], }); expect(conditions.testRule2({ baz: 'quux' })).toEqual({ rule: 'testRule2', + resourceType: 'test-resource', params: [{ baz: 'quux' }], }); }); @@ -64,18 +72,35 @@ describe('createConditionExports', () => { describe('createPolicyDecisions', () => { it('wraps conditions in an object with resourceType and pluginId', () => { - const { createPolicyDecision } = testIntegration(); + const { createConditionalDecision } = testIntegration(); + const testPermission = createPermission({ + name: 'test.permission', + attributes: {}, + resourceType: 'test-resource', + }); expect( - createPolicyDecision({ - allOf: [{ rule: 'testRule1', params: ['a', 1] }], + createConditionalDecision(testPermission, { + allOf: [ + { + rule: 'testRule1', + resourceType: 'test-resource', + params: ['a', 1], + }, + ], }), ).toEqual({ result: AuthorizeResult.CONDITIONAL, pluginId: 'test-plugin', resourceType: 'test-resource', conditions: { - allOf: [{ rule: 'testRule1', params: ['a', 1] }], + allOf: [ + { + rule: 'testRule1', + resourceType: 'test-resource', + params: ['a', 1], + }, + ], }, }); }); diff --git a/plugins/permission-node/src/integration/createConditionExports.ts b/plugins/permission-node/src/integration/createConditionExports.ts index ab88987389..ba34c07fed 100644 --- a/plugins/permission-node/src/integration/createConditionExports.ts +++ b/plugins/permission-node/src/integration/createConditionExports.ts @@ -19,6 +19,7 @@ import { ConditionalPolicyDecision, PermissionCondition, PermissionCriteria, + ResourcePermission, } from '@backstage/plugin-permission-common'; import { PermissionRule } from '../types'; import { createConditionFactory } from './createConditionFactory'; @@ -32,9 +33,10 @@ import { createConditionFactory } from './createConditionFactory'; export type Condition = TRule extends PermissionRule< any, any, + infer TResourceType, infer TParams > - ? (...params: TParams) => PermissionCondition + ? (...params: TParams) => PermissionCondition : never; /** @@ -44,39 +46,44 @@ export type Condition = TRule extends PermissionRule< * @public */ export type Conditions< - TRules extends Record>, + TRules extends Record>, > = { [Name in keyof TRules]: Condition; }; /** - * Creates the recommended condition-related exports for a given plugin based on the built-in - * {@link PermissionRule}s it supports. + * Creates the recommended condition-related exports for a given plugin based on + * the built-in {@link PermissionRule}s it supports. * * @remarks * * The function returns a `conditions` object containing a - * {@link @backstage/plugin-permission-common#PermissionCondition} factory for each of the - * supplied {@link PermissionRule}s, along with a `createConditions` function which builds the - * wrapper object needed to enclose conditions when authoring {@link PermissionPolicy} implementations. + * {@link @backstage/plugin-permission-common#PermissionCondition} factory for + * each of the supplied {@link PermissionRule}s, along with a + * `createConditionalDecision` function which builds the wrapper object needed + * to enclose conditions when authoring {@link PermissionPolicy} + * implementations. * - * Plugin authors should generally call this method with all the built-in {@link PermissionRule}s - * the plugin supports, and export the resulting `conditions` object and `createConditions` - * function so that they can be used by {@link PermissionPolicy} authors. + * Plugin authors should generally call this method with all the built-in + * {@link PermissionRule}s the plugin supports, and export the resulting + * `conditions` object and `createConditionalDecision` function so that they can + * be used by {@link PermissionPolicy} authors. * * @public */ export const createConditionExports = < + TResourceType extends string, TResource, - TRules extends Record>, + TRules extends Record>, >(options: { pluginId: string; - resourceType: string; + resourceType: TResourceType; rules: TRules; }): { conditions: Conditions; - createPolicyDecision: ( - conditions: PermissionCriteria, + createConditionalDecision: ( + permission: ResourcePermission, + conditions: PermissionCriteria>, ) => ConditionalPolicyDecision; } => { const { pluginId, resourceType, rules } = options; @@ -89,7 +96,8 @@ export const createConditionExports = < }), {} as Conditions, ), - createPolicyDecision: ( + createConditionalDecision: ( + _permission: ResourcePermission, conditions: PermissionCriteria, ) => ({ result: AuthorizeResult.CONDITIONAL, diff --git a/plugins/permission-node/src/integration/createConditionFactory.test.ts b/plugins/permission-node/src/integration/createConditionFactory.test.ts index 8dd43f5da6..1941b5ac0b 100644 --- a/plugins/permission-node/src/integration/createConditionFactory.test.ts +++ b/plugins/permission-node/src/integration/createConditionFactory.test.ts @@ -15,14 +15,16 @@ */ import { createConditionFactory } from './createConditionFactory'; +import { createPermissionRule } from './createPermissionRule'; describe('createConditionFactory', () => { - const testRule = { + const testRule = createPermissionRule({ name: 'test-rule', description: 'test-description', + resourceType: 'test-resource', apply: jest.fn(), toQuery: jest.fn(), - }; + }); it('returns a function', () => { expect(createConditionFactory(testRule)).toEqual(expect.any(Function)); @@ -33,6 +35,7 @@ describe('createConditionFactory', () => { const conditionFactory = createConditionFactory(testRule); expect(conditionFactory('a', 'b', 1, 2)).toEqual({ rule: 'test-rule', + resourceType: 'test-resource', params: ['a', 'b', 1, 2], }); }); diff --git a/plugins/permission-node/src/integration/createConditionFactory.ts b/plugins/permission-node/src/integration/createConditionFactory.ts index 84a8dc86a6..15a5b4fd08 100644 --- a/plugins/permission-node/src/integration/createConditionFactory.ts +++ b/plugins/permission-node/src/integration/createConditionFactory.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { PermissionCondition } from '@backstage/plugin-permission-common'; import { PermissionRule } from '../types'; /** @@ -33,8 +34,11 @@ import { PermissionRule } from '../types'; * @public */ export const createConditionFactory = - (rule: PermissionRule) => - (...params: TParams) => ({ + ( + rule: PermissionRule, + ) => + (...params: TParams): PermissionCondition => ({ rule: rule.name, + resourceType: rule.resourceType, params, }); diff --git a/plugins/permission-node/src/integration/createConditionTransformer.test.ts b/plugins/permission-node/src/integration/createConditionTransformer.test.ts index 8a93a4ea27..917449561d 100644 --- a/plugins/permission-node/src/integration/createConditionTransformer.test.ts +++ b/plugins/permission-node/src/integration/createConditionTransformer.test.ts @@ -19,25 +19,28 @@ import { PermissionCriteria, } from '@backstage/plugin-permission-common'; import { createConditionTransformer } from './createConditionTransformer'; +import { createPermissionRule } from './createPermissionRule'; const transformConditions = createConditionTransformer([ - { + createPermissionRule({ name: 'test-rule-1', description: 'Test rule 1', + resourceType: 'test-resource', apply: jest.fn(), toQuery: jest.fn( (firstParam: string, secondParam: number) => `test-rule-1:${firstParam}/${secondParam}`, ), - }, - { + }), + createPermissionRule({ name: 'test-rule-2', description: 'Test rule 2', + resourceType: 'test-resource', apply: jest.fn(), toQuery: jest.fn( (firstParam: object) => `test-rule-2:${JSON.stringify(firstParam)}`, ), - }, + }), ]); describe('createConditionTransformer', () => { @@ -46,18 +49,30 @@ describe('createConditionTransformer', () => { expectedResult: PermissionCriteria; }[] = [ { - conditions: { rule: 'test-rule-1', params: ['abc', 123] }, + conditions: { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['abc', 123], + }, expectedResult: 'test-rule-1:abc/123', }, { - conditions: { rule: 'test-rule-2', params: [{ foo: 0 }] }, + conditions: { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{ foo: 0 }], + }, expectedResult: 'test-rule-2:{"foo":0}', }, { conditions: { anyOf: [ - { rule: 'test-rule-1', params: ['a', 1] }, - { rule: 'test-rule-2', params: [{}] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['a', 1], + }, + { rule: 'test-rule-2', resourceType: 'test-resource', params: [{}] }, ], }, expectedResult: { @@ -67,8 +82,12 @@ describe('createConditionTransformer', () => { { conditions: { allOf: [ - { rule: 'test-rule-1', params: ['a', 1] }, - { rule: 'test-rule-2', params: [{}] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['a', 1], + }, + { rule: 'test-rule-2', resourceType: 'test-resource', params: [{}] }, ], }, expectedResult: { @@ -77,7 +96,11 @@ describe('createConditionTransformer', () => { }, { conditions: { - not: { rule: 'test-rule-2', params: [{}] }, + not: { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{}], + }, }, expectedResult: { not: 'test-rule-2:{}', @@ -88,15 +111,31 @@ describe('createConditionTransformer', () => { allOf: [ { anyOf: [ - { rule: 'test-rule-1', params: ['a', 1] }, - { rule: 'test-rule-2', params: [{}] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['a', 1], + }, + { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{}], + }, ], }, { not: { allOf: [ - { rule: 'test-rule-1', params: ['b', 2] }, - { rule: 'test-rule-2', params: [{ c: 3 }] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['b', 2], + }, + { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{ c: 3 }], + }, ], }, }, @@ -120,15 +159,33 @@ describe('createConditionTransformer', () => { allOf: [ { anyOf: [ - { rule: 'test-rule-1', params: ['a', 1] }, - { rule: 'test-rule-2', params: [{ b: 2 }] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['a', 1], + }, + { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{ b: 2 }], + }, ], }, { not: { allOf: [ - { rule: 'test-rule-1', params: ['c', 3] }, - { not: { rule: 'test-rule-2', params: [{ d: 4 }] } }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['c', 3], + }, + { + not: { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{ d: 4 }], + }, + }, ], }, }, diff --git a/plugins/permission-node/src/integration/createConditionTransformer.ts b/plugins/permission-node/src/integration/createConditionTransformer.ts index ee4224b8bd..112bb30d01 100644 --- a/plugins/permission-node/src/integration/createConditionTransformer.ts +++ b/plugins/permission-node/src/integration/createConditionTransformer.ts @@ -29,7 +29,7 @@ import { const mapConditions = ( criteria: PermissionCriteria, - getRule: (name: string) => PermissionRule, + getRule: (name: string) => PermissionRule, ): PermissionCriteria => { if (isAndCriteria(criteria)) { return { @@ -70,7 +70,7 @@ export type ConditionTransformer = ( */ export const createConditionTransformer = < TQuery, - TRules extends PermissionRule[], + TRules extends PermissionRule[], >( permissionRules: [...TRules], ): ConditionTransformer => { diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts index 6408de46a1..65c43c7f30 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts @@ -18,6 +18,7 @@ import { AuthorizeResult } from '@backstage/plugin-permission-common'; import express, { Express, Router } from 'express'; import request, { Response } from 'supertest'; import { createPermissionIntegrationRouter } from './createPermissionIntegrationRouter'; +import { createPermissionRule } from './createPermissionRule'; const mockGetResources: jest.MockedFunction< Parameters[0]['getResources'] @@ -25,21 +26,23 @@ const mockGetResources: jest.MockedFunction< resourceRefs.map(resourceRef => ({ id: resourceRef })), ); -const testRule1 = { +const testRule1 = createPermissionRule({ name: 'test-rule-1', description: 'Test rule 1', + resourceType: 'test-resource', apply: jest.fn( (_resource: any, _firstParam: string, _secondParam: number) => true, ), toQuery: jest.fn(), -}; +}); -const testRule2 = { +const testRule2 = createPermissionRule({ name: 'test-rule-2', description: 'Test rule 2', - apply: jest.fn((_firstParam: object) => false), + resourceType: 'test-resource', + apply: jest.fn((_resource: any, _firstParam: object) => false), toQuery: jest.fn(), -}; +}); describe('createPermissionIntegrationRouter', () => { let app: Express; @@ -65,29 +68,57 @@ describe('createPermissionIntegrationRouter', () => { describe('POST /.well-known/backstage/permissions/apply-conditions', () => { it.each([ - { rule: 'test-rule-1', params: ['abc', 123] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['abc', 123], + }, { anyOf: [ - { rule: 'test-rule-1', params: ['a', 1] }, - { rule: 'test-rule-2', params: [{}] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['a', 1], + }, + { rule: 'test-rule-2', resourceType: 'test-resource', params: [{}] }, ], }, { - not: { rule: 'test-rule-2', params: [{}] }, + not: { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{}], + }, }, { allOf: [ { anyOf: [ - { rule: 'test-rule-1', params: ['a', 1] }, - { rule: 'test-rule-2', params: [{}] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['a', 1], + }, + { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{}], + }, ], }, { not: { allOf: [ - { rule: 'test-rule-1', params: ['b', 2] }, - { rule: 'test-rule-2', params: [{ c: 3 }] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['b', 2], + }, + { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{ c: 3 }], + }, ], }, }, @@ -119,26 +150,52 @@ describe('createPermissionIntegrationRouter', () => { }); it.each([ - { rule: 'test-rule-2', params: [{ foo: 0 }] }, + { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{ foo: 0 }], + }, { allOf: [ - { rule: 'test-rule-1', params: ['a', 1] }, - { rule: 'test-rule-2', params: [{}] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['a', 1], + }, + { rule: 'test-rule-2', resourceType: 'test-resource', params: [{}] }, ], }, { allOf: [ { anyOf: [ - { rule: 'test-rule-1', params: ['a', 1] }, - { rule: 'test-rule-2', params: [{ b: 2 }] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['a', 1], + }, + { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{ b: 2 }], + }, ], }, { not: { allOf: [ - { rule: 'test-rule-1', params: ['c', 3] }, - { not: { rule: 'test-rule-2', params: [{ d: 4 }] } }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: ['c', 3], + }, + { + not: { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [{ d: 4 }], + }, + }, ], }, }, @@ -179,25 +236,45 @@ describe('createPermissionIntegrationRouter', () => { id: '123', resourceRef: 'default:test/resource-1', resourceType: 'test-resource', - conditions: { rule: 'test-rule-1', params: [] }, + conditions: { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: [], + }, }, { id: '234', resourceRef: 'default:test/resource-1', resourceType: 'test-resource', - conditions: { rule: 'test-rule-2', params: [] }, + conditions: { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [], + }, }, { id: '345', resourceRef: 'default:test/resource-2', resourceType: 'test-resource', - conditions: { not: { rule: 'test-rule-1', params: [] } }, + conditions: { + not: { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: [], + }, + }, }, { id: '456', resourceRef: 'default:test/resource-3', resourceType: 'test-resource', - conditions: { not: { rule: 'test-rule-2', params: [] } }, + conditions: { + not: { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [], + }, + }, }, { id: '567', @@ -205,8 +282,16 @@ describe('createPermissionIntegrationRouter', () => { resourceType: 'test-resource', conditions: { anyOf: [ - { rule: 'test-rule-1', params: [] }, - { rule: 'test-rule-2', params: [] }, + { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: [], + }, + { + rule: 'test-rule-2', + resourceType: 'test-resource', + params: [], + }, ], }, }, @@ -248,6 +333,7 @@ describe('createPermissionIntegrationRouter', () => { resourceType: 'test-incorrect-resource-1', conditions: { rule: 'test-rule-1', + resourceType: 'test-incorrect-resource-1', params: [{}], }, }, @@ -257,6 +343,7 @@ describe('createPermissionIntegrationRouter', () => { resourceType: 'test-resource', conditions: { rule: 'test-rule-1', + resourceType: 'test-resource', params: [{}], }, }, @@ -266,6 +353,7 @@ describe('createPermissionIntegrationRouter', () => { resourceType: 'test-incorrect-resource-2', conditions: { rule: 'test-rule-1', + resourceType: 'test-incorrect-resource-2', params: [{}], }, }, @@ -291,7 +379,11 @@ describe('createPermissionIntegrationRouter', () => { id: '123', resourceRef: 'default:test/resource', resourceType: 'test-resource', - conditions: { rule: 'test-rule-1', params: [] }, + conditions: { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: [], + }, }, ], }); @@ -324,19 +416,31 @@ describe('createPermissionIntegrationRouter', () => { id: '123', resourceRef: 'default:test/resource-1', resourceType: 'test-resource', - conditions: { rule: 'test-rule-1', params: [] }, + conditions: { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: [], + }, }, { id: '234', resourceRef: 'default:test/missing-resource', resourceType: 'test-resource', - conditions: { rule: 'test-rule-1', params: [] }, + conditions: { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: [], + }, }, { id: '345', resourceRef: 'default:test/resource-2', resourceType: 'test-resource', - conditions: { rule: 'test-rule-1', params: [] }, + conditions: { + rule: 'test-rule-1', + resourceType: 'test-resource', + params: [], + }, }, ], }); @@ -377,6 +481,17 @@ describe('createPermissionIntegrationRouter', () => { ], }, { items: [{ conditions: { anyOf: [] } }] }, + { + items: [ + { conditions: { rule: 'TEST_RULE', resourceType: 'test-resource' } }, + ], + }, + { items: [{ conditions: { rule: 'TEST_RULE', params: ['foo'] } }] }, + { + items: [ + { conditions: { resourceType: 'test-resource', params: ['foo'] } }, + ], + }, ])(`returns 400 for invalid input %#`, async input => { const response = await request(app) .post('/.well-known/backstage/permissions/apply-conditions') diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts index b598487062..b4cf4ac08c 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts @@ -44,6 +44,7 @@ const permissionCriteriaSchema: z.ZodSchema< z .object({ rule: z.string(), + resourceType: z.string(), params: z.array(z.unknown()), }) .strict(), @@ -100,10 +101,10 @@ export type ApplyConditionsResponse = { items: ApplyConditionsResponseEntry[]; }; -const applyConditions = ( - criteria: PermissionCriteria, +const applyConditions = ( + criteria: PermissionCriteria>, resource: TResource | undefined, - getRule: (name: string) => PermissionRule, + getRule: (name: string) => PermissionRule, ): boolean => { // If resource was not found, deny. This avoids leaking information from the // apply-conditions API which would allow a user to differentiate between @@ -127,6 +128,14 @@ const applyConditions = ( return getRule(criteria.rule).apply(resource, ...criteria.params); }; +/** + * Prevent use of type parameter from contributing to type inference. + * + * https://github.com/Microsoft/TypeScript/issues/14829#issuecomment-980401795 + * @ignore + */ +type NoInfer = T extends infer S ? S : never; + /** * Create an express Router which provides an authorization route to allow * integration between the permission backend and other Backstage backend @@ -162,9 +171,16 @@ const applyConditions = ( * * @public */ -export const createPermissionIntegrationRouter = (options: { - resourceType: string; - rules: PermissionRule[]; +export const createPermissionIntegrationRouter = < + TResourceType extends string, + TResource, +>(options: { + resourceType: TResourceType; + // Do not infer value of TResourceType from supplied rules. + // instead only consider the resourceType parameter, and + // consider any rules whose resource type does not match + // to be an error. + rules: PermissionRule>[]; getResources: ( resourceRefs: string[], ) => Promise>; diff --git a/plugins/permission-node/src/integration/createPermissionRule.ts b/plugins/permission-node/src/integration/createPermissionRule.ts index f3a0519a70..6673fe76de 100644 --- a/plugins/permission-node/src/integration/createPermissionRule.ts +++ b/plugins/permission-node/src/integration/createPermissionRule.ts @@ -24,9 +24,10 @@ import { PermissionRule } from '../types'; export const createPermissionRule = < TResource, TQuery, + TResourceType extends string, TParams extends unknown[], >( - rule: PermissionRule, + rule: PermissionRule, ) => rule; /** @@ -38,8 +39,8 @@ export const createPermissionRule = < * @public */ export const makeCreatePermissionRule = - () => + () => ( - rule: PermissionRule, + rule: PermissionRule, ) => createPermissionRule(rule); diff --git a/plugins/permission-node/src/integration/util.test.ts b/plugins/permission-node/src/integration/util.test.ts index d27c0a4243..17e27b6028 100644 --- a/plugins/permission-node/src/integration/util.test.ts +++ b/plugins/permission-node/src/integration/util.test.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { createPermissionRule } from './createPermissionRule'; import { createGetRule, isAndCriteria, @@ -25,19 +26,21 @@ describe('permission integration utils', () => { describe('createGetRule', () => { let getRule: ReturnType; - const testRule1 = { + const testRule1 = createPermissionRule({ name: 'test-rule-1', description: 'Test rule 1', + resourceType: 'test-resource', apply: jest.fn(), toQuery: jest.fn(), - }; + }); - const testRule2 = { + const testRule2 = createPermissionRule({ name: 'test-rule-2', description: 'Test rule 2', + resourceType: 'test-resource', apply: jest.fn(), toQuery: jest.fn(), - }; + }); beforeEach(() => { getRule = createGetRule([testRule1, testRule2]); diff --git a/plugins/permission-node/src/integration/util.ts b/plugins/permission-node/src/integration/util.ts index 9102f092c4..68b7fff2b8 100644 --- a/plugins/permission-node/src/integration/util.ts +++ b/plugins/permission-node/src/integration/util.ts @@ -62,11 +62,11 @@ export const isNotCriteria = ( Object.prototype.hasOwnProperty.call(criteria, 'not'); export const createGetRule = ( - rules: PermissionRule[], + rules: PermissionRule[], ) => { const rulesMap = new Map(Object.values(rules).map(rule => [rule.name, rule])); - return (name: string): PermissionRule => { + return (name: string): PermissionRule => { const rule = rulesMap.get(name); if (!rule) { diff --git a/plugins/permission-node/src/types.ts b/plugins/permission-node/src/types.ts index d5035f10dc..66b4a7b22b 100644 --- a/plugins/permission-node/src/types.ts +++ b/plugins/permission-node/src/types.ts @@ -35,10 +35,12 @@ import type { PermissionCriteria } from '@backstage/plugin-permission-common'; export type PermissionRule< TResource, TQuery, + TResourceType extends string, TParams extends unknown[] = unknown[], > = { name: string; description: string; + resourceType: TResourceType; /** * Apply this rule to a resource already loaded from a backing data source. The params are From e8d84d2ee6969e64dee30c61cf217c92b6bfb375 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 28 Mar 2022 13:45:00 +0200 Subject: [PATCH 205/225] fix(techdocs): use sidebar config Signed-off-by: Camila Belo --- plugins/techdocs/src/reader/components/Reader.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 02a7929539..b3cb8ec6ae 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -38,7 +38,10 @@ import { CompoundEntityRef } from '@backstage/catalog-model'; import { useApi, configApiRef } from '@backstage/core-plugin-api'; import { scmIntegrationsApiRef } from '@backstage/integration-react'; import { BackstageTheme } from '@backstage/theme'; -import { SidebarPinStateContext } from '@backstage/core-components'; +import { + sidebarConfig, + SidebarPinStateContext, +} from '@backstage/core-components'; import { techdocsStorageApiRef } from '../../api'; @@ -559,7 +562,9 @@ export const useTechDocsReaderDom = ( width: 16rem !important; z-index: 200; left: ${ - isPinned ? 'calc(-16rem + 242px)' : 'calc(-16rem + 72px)' + isPinned + ? `calc(-16rem + ${sidebarConfig.drawerWidthOpen}px)` + : `calc(-16rem + ${sidebarConfig.drawerWidthClosed}px)` } !important; } .md-sidebar--secondary:not([hidden]) { From fb02d2d94d95aaa6cdfed904fe2590f11bcce6ea Mon Sep 17 00:00:00 2001 From: Patrick Jungermann Date: Fri, 25 Mar 2022 20:43:32 +0100 Subject: [PATCH 206/225] feat: export `locationSpecToLocationEntity` Export function `locationSpecToLocationEntity` which helps with converting `LocationSpec` to `LocationEntityV1alpha1` and hereby, make it usable in other packages/plugins. Change signature to be easier to extend in the future. Signed-off-by: Patrick Jungermann --- .changeset/short-knives-wave.md | 5 +++++ plugins/catalog-backend/api-report.md | 7 +++++++ plugins/catalog-backend/src/index.ts | 7 ++++--- .../core/ConfigLocationEntityProvider.ts | 6 ++++-- .../src/modules/core/DefaultLocationStore.ts | 6 +++--- .../src/processing/ProcessorOutputCollector.ts | 8 ++++---- plugins/catalog-backend/src/util/conversion.ts | 12 ++++++++---- plugins/catalog-backend/src/util/index.ts | 17 +++++++++++++++++ 8 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 .changeset/short-knives-wave.md create mode 100644 plugins/catalog-backend/src/util/index.ts diff --git a/.changeset/short-knives-wave.md b/.changeset/short-knives-wave.md new file mode 100644 index 0000000000..a7372618e2 --- /dev/null +++ b/.changeset/short-knives-wave.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +export `locationSpecToLocationEntity` diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index 0df10cf944..15c108f9f6 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -16,6 +16,7 @@ import { Entity } from '@backstage/catalog-model'; import { EntityPolicy } from '@backstage/catalog-model'; import { GetEntitiesRequest } from '@backstage/catalog-client'; import { JsonValue } from '@backstage/types'; +import { LocationEntityV1alpha1 } from '@backstage/catalog-model'; import { Logger } from 'winston'; import { Permission } from '@backstage/plugin-permission-common'; import { PermissionAuthorizer } from '@backstage/plugin-permission-common'; @@ -458,6 +459,12 @@ export type LocationSpec = { presence?: 'optional' | 'required'; }; +// @public (undocumented) +export function locationSpecToLocationEntity(opts: { + location: LocationSpec; + parentEntity?: Entity; +}): LocationEntityV1alpha1; + // @public (undocumented) export function parseEntityYaml( data: Buffer, diff --git a/plugins/catalog-backend/src/index.ts b/plugins/catalog-backend/src/index.ts index 437c1f4598..c5c653f0dd 100644 --- a/plugins/catalog-backend/src/index.ts +++ b/plugins/catalog-backend/src/index.ts @@ -24,7 +24,8 @@ export * from './api'; export * from './catalog'; export * from './ingestion'; export * from './modules'; -export * from './search'; -export * from './processing'; -export * from './service'; export * from './permissions'; +export * from './processing'; +export * from './search'; +export * from './service'; +export * from './util'; diff --git a/plugins/catalog-backend/src/modules/core/ConfigLocationEntityProvider.ts b/plugins/catalog-backend/src/modules/core/ConfigLocationEntityProvider.ts index 9529a5b608..69827b1380 100644 --- a/plugins/catalog-backend/src/modules/core/ConfigLocationEntityProvider.ts +++ b/plugins/catalog-backend/src/modules/core/ConfigLocationEntityProvider.ts @@ -60,8 +60,10 @@ export class ConfigLocationEntityProvider implements EntityProvider { const type = location.getString('type'); const target = location.getString('target'); const entity = locationSpecToLocationEntity({ - type, - target: type === 'file' ? path.resolve(target) : target, + location: { + type, + target: type === 'file' ? path.resolve(target) : target, + }, }); const locationKey = getEntityLocationRef(entity); return { entity, locationKey }; diff --git a/plugins/catalog-backend/src/modules/core/DefaultLocationStore.ts b/plugins/catalog-backend/src/modules/core/DefaultLocationStore.ts index 0d4bedabbb..33ab046104 100644 --- a/plugins/catalog-backend/src/modules/core/DefaultLocationStore.ts +++ b/plugins/catalog-backend/src/modules/core/DefaultLocationStore.ts @@ -58,7 +58,7 @@ export class DefaultLocationStore implements LocationStore, EntityProvider { return inner; }); - const entity = locationSpecToLocationEntity(location); + const entity = locationSpecToLocationEntity({ location }); await this.connection.applyMutation({ type: 'delta', added: [{ entity, locationKey: getEntityLocationRef(entity) }], @@ -100,7 +100,7 @@ export class DefaultLocationStore implements LocationStore, EntityProvider { await tx('locations').where({ id }).del(); return location; }); - const entity = locationSpecToLocationEntity(deleted); + const entity = locationSpecToLocationEntity({ location: deleted }); await this.connection.applyMutation({ type: 'delta', added: [], @@ -122,7 +122,7 @@ export class DefaultLocationStore implements LocationStore, EntityProvider { const locations = await this.locations(); const entities = locations.map(location => { - const entity = locationSpecToLocationEntity(location); + const entity = locationSpecToLocationEntity({ location }); return { entity, locationKey: getEntityLocationRef(entity) }; }); diff --git a/plugins/catalog-backend/src/processing/ProcessorOutputCollector.ts b/plugins/catalog-backend/src/processing/ProcessorOutputCollector.ts index cc3e1401bd..db7a050dce 100644 --- a/plugins/catalog-backend/src/processing/ProcessorOutputCollector.ts +++ b/plugins/catalog-backend/src/processing/ProcessorOutputCollector.ts @@ -106,10 +106,10 @@ export class ProcessorOutputCollector { this.deferredEntities.push({ entity, locationKey: location }); } else if (i.type === 'location') { - const entity = locationSpecToLocationEntity( - i.location, - this.parentEntity, - ); + const entity = locationSpecToLocationEntity({ + location: i.location, + parentEntity: this.parentEntity, + }); const locationKey = getEntityLocationRef(entity); this.deferredEntities.push({ entity, locationKey }); } else if (i.type === 'relation') { diff --git a/plugins/catalog-backend/src/util/conversion.ts b/plugins/catalog-backend/src/util/conversion.ts index 63771d1028..d61304a419 100644 --- a/plugins/catalog-backend/src/util/conversion.ts +++ b/plugins/catalog-backend/src/util/conversion.ts @@ -32,10 +32,14 @@ export function locationSpecToMetadataName(location: LocationSpec) { return `generated-${hash}`; } -export function locationSpecToLocationEntity( - location: LocationSpec, - parentEntity?: Entity, -): LocationEntityV1alpha1 { +/** @public */ +export function locationSpecToLocationEntity(opts: { + location: LocationSpec; + parentEntity?: Entity; +}): LocationEntityV1alpha1 { + const location = opts.location; + const parentEntity = opts.parentEntity; + let ownLocation: string; let originLocation: string; if (parentEntity) { diff --git a/plugins/catalog-backend/src/util/index.ts b/plugins/catalog-backend/src/util/index.ts new file mode 100644 index 0000000000..b3bd4d5316 --- /dev/null +++ b/plugins/catalog-backend/src/util/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { locationSpecToLocationEntity } from './conversion'; From c6616e6fc9e7fb4e72c497c83d6aaf96b9f48eff Mon Sep 17 00:00:00 2001 From: Alex Rybchenko Date: Mon, 28 Mar 2022 15:06:19 +0200 Subject: [PATCH 207/225] Fixed issue when not all calendars were fetched for some accounts Signed-off-by: Alex Rybchenko --- .changeset/tasty-goats-shout.md | 5 +++++ plugins/gcalendar/src/api/client.ts | 4 ++-- plugins/gcalendar/src/api/types.ts | 2 ++ .../components/CalendarCard/CalendarCard.tsx | 10 +++++----- .../gcalendar/src/hooks/useCalendarsQuery.ts | 20 +++++++++++++++---- 5 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 .changeset/tasty-goats-shout.md diff --git a/.changeset/tasty-goats-shout.md b/.changeset/tasty-goats-shout.md new file mode 100644 index 0000000000..617485bead --- /dev/null +++ b/.changeset/tasty-goats-shout.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-gcalendar': patch +--- + +Fixed issue when not all calendars were fetched for some accounts diff --git a/plugins/gcalendar/src/api/client.ts b/plugins/gcalendar/src/api/client.ts index 5b6ea96339..084c302636 100644 --- a/plugins/gcalendar/src/api/client.ts +++ b/plugins/gcalendar/src/api/client.ts @@ -15,7 +15,7 @@ */ import { OAuthApi, createApiRef, FetchApi } from '@backstage/core-plugin-api'; -import { GCalendar, GCalendarEvent } from './types'; +import { GCalendarEvent, GCalendarList } from './types'; import { ResponseError } from '@backstage/errors'; type Options = { @@ -58,7 +58,7 @@ export class GCalendarApiClient { } public async getCalendars(params?: any) { - return this.get<{ items: GCalendar[] }>( + return this.get( '/calendar/v3/users/me/calendarList', params, ); diff --git a/plugins/gcalendar/src/api/types.ts b/plugins/gcalendar/src/api/types.ts index 1423b91aca..b6d9a36eb9 100644 --- a/plugins/gcalendar/src/api/types.ts +++ b/plugins/gcalendar/src/api/types.ts @@ -17,6 +17,8 @@ /// /// +export type GCalendarList = gapi.client.calendar.CalendarList; + export type GCalendar = gapi.client.calendar.CalendarListEntry; export type EventAttendee = gapi.client.calendar.EventAttendee; diff --git a/plugins/gcalendar/src/components/CalendarCard/CalendarCard.tsx b/plugins/gcalendar/src/components/CalendarCard/CalendarCard.tsx index 7b7c02b883..b698c23ea1 100644 --- a/plugins/gcalendar/src/components/CalendarCard/CalendarCard.tsx +++ b/plugins/gcalendar/src/components/CalendarCard/CalendarCard.tsx @@ -15,7 +15,7 @@ */ import { sortBy } from 'lodash'; import { DateTime } from 'luxon'; -import React, { useEffect, useMemo, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { InfoCard, Progress } from '@backstage/core-components'; import { useAnalytics } from '@backstage/core-plugin-api'; @@ -51,10 +51,10 @@ export const CalendarCard = () => { signIn(true); }, [signIn]); - const { isLoading: isCalendarLoading, data } = useCalendarsQuery({ - enabled: isSignedIn, - }); - const calendars = useMemo(() => data?.items || [], [data]); + const { isLoading: isCalendarLoading, data: calendars = [] } = + useCalendarsQuery({ + enabled: isSignedIn, + }); const primaryCalendarId = calendars.find(c => c.primary === true)?.id; const defaultSelectedCalendars = primaryCalendarId ? [primaryCalendarId] : []; const [storedCalendars, setStoredCalendars] = useStoredCalendars( diff --git a/plugins/gcalendar/src/hooks/useCalendarsQuery.ts b/plugins/gcalendar/src/hooks/useCalendarsQuery.ts index ed31e23c79..a76142ff09 100644 --- a/plugins/gcalendar/src/hooks/useCalendarsQuery.ts +++ b/plugins/gcalendar/src/hooks/useCalendarsQuery.ts @@ -30,10 +30,22 @@ export const useCalendarsQuery = ({ enabled }: Options) => { return useQuery( ['calendars'], - async () => - calendarApi.getCalendars({ - minAccessRole: 'reader', - }), + async () => { + const calendars = []; + let token = ''; + do { + const { nextPageToken = '', items = [] } = + await calendarApi.getCalendars({ + maxResults: 100, + minAccessRole: 'reader', + pageToken: token, + }); + token = nextPageToken; + calendars.push(...items); + } while (token); + + return calendars; + }, { enabled, keepPreviousData: true, From d5e0531122fccbfacf6b5696844d4e83abc5c7dc Mon Sep 17 00:00:00 2001 From: Alex Rybchenko Date: Mon, 28 Mar 2022 15:07:05 +0200 Subject: [PATCH 208/225] updated gcalendar codeowners Signed-off-by: Alex Rybchenko --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index cfe405b7d3..3665a4952d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -32,6 +32,7 @@ /plugins/explore @backstage/reviewers @backstage/sda-se-reviewers /plugins/explore-react @backstage/reviewers @backstage/sda-se-reviewers /plugins/fossa @backstage/reviewers @backstage/sda-se-reviewers +/plugins/gcalendar @backstage/reviewers @szubster @ptychu @kielosz @alexrybch /plugins/git-release-manager @backstage/reviewers @erikengervall /plugins/home @backstage/reviewers @backstage/techdocs-core /plugins/ilert @backstage/reviewers @yacut From e203d9dadb106d37ef2af439411e3f929e9d73b5 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Mon, 28 Mar 2022 09:46:05 -0400 Subject: [PATCH 209/225] Add missing whitespace Signed-off-by: Taras --- microsite/pages/en/community.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/pages/en/community.js b/microsite/pages/en/community.js index a6795e2c24..be5f85d289 100644 --- a/microsite/pages/en/community.js +++ b/microsite/pages/en/community.js @@ -125,7 +125,7 @@ const Background = props => { A monthly casual get together of Backstage users sharing their experiences and helping each other. Hosted by{' '} - Roadie.io and + Roadie.io and{' '} Frontside Software.
    From 179b5070fc6418c74223b32dc287c722b347e513 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 28 Mar 2022 14:54:45 +0200 Subject: [PATCH 210/225] fix(techdocs): apply review suggestion Signed-off-by: Camila Belo --- plugins/techdocs/src/reader/components/Reader.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index b3cb8ec6ae..28453b8201 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -611,6 +611,9 @@ export const useTechDocsReaderDom = ( left: -16rem !important; width: 16rem; } + .md-sidebar--primary .md-sidebar__scrollwrap { + bottom: ${sidebarConfig.mobileSidebarHeight}px; + } } `, }), From 1270f07d7cd25a88b3484801c28ecb56a24eb4b2 Mon Sep 17 00:00:00 2001 From: Esteban Torres Date: Mon, 28 Mar 2022 16:39:38 +0200 Subject: [PATCH 211/225] Fixes CNCF footer link Signed-off-by: Esteban Torres @jenjamall noticed on #10376 that the footer linking to `CNCF` projects was outdated and pointing to `sandbox` projects instead of the ones in incubation and graduated. --- microsite/core/Footer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/core/Footer.js b/microsite/core/Footer.js index a7e5a1076c..f0917d3255 100644 --- a/microsite/core/Footer.js +++ b/microsite/core/Footer.js @@ -51,7 +51,7 @@ class Footer extends React.Component { Subscribe to our newsletter - CNCF Incubation + CNCF Incubation
    More
    From 1691c6c5c29112c3f255270b629db115000a7bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 28 Mar 2022 16:32:51 +0200 Subject: [PATCH 212/225] Make User and Group not default allowed by rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/beige-baboons-walk.md | 7 +++ .changeset/clean-lions-taste.md | 52 +++++++++++++++++++ docs/integrations/github/org.md | 2 + docs/integrations/ldap/org.md | 2 + .../templates/default-app/app-config.yaml.hbs | 2 +- packages/integration/CHANGELOG.md | 2 + .../catalog-backend-module-msgraph/README.md | 2 - plugins/catalog-backend/CHANGELOG.md | 2 + 8 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 .changeset/beige-baboons-walk.md create mode 100644 .changeset/clean-lions-taste.md diff --git a/.changeset/beige-baboons-walk.md b/.changeset/beige-baboons-walk.md new file mode 100644 index 0000000000..a5b424a489 --- /dev/null +++ b/.changeset/beige-baboons-walk.md @@ -0,0 +1,7 @@ +--- +'@backstage/integration': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-catalog-backend-module-msgraph': patch +--- + +Clarify that config locations that emit User and Group kinds now need to declare so in the `catalog.locations.[].rules` diff --git a/.changeset/clean-lions-taste.md b/.changeset/clean-lions-taste.md new file mode 100644 index 0000000000..d4179fa39a --- /dev/null +++ b/.changeset/clean-lions-taste.md @@ -0,0 +1,52 @@ +--- +'@backstage/create-app': patch +--- + +Made `User` and `Group` entity kinds not permitted by the default +`catalog.rules` config. + +The effect of this is that after creating a new Backstage repository, its +catalog no longer permits regular users to register `User` or `Group` entities +using the Backstage interface. Additionally, if you have config locations that +result in `User` or `Group` entities, you need to add those kinds to its own +specific rules: + +```yaml +catalog: + locations: + # This applies for example to url type locations + - type: url + target: https://example.com/org.yaml + rules: + allow: [User, Group] + # But also note that this applies to ALL org location types! + - type: github-org + target: https://github.com/my-org-name + rules: + allow: [User, Group] +``` + +This rule change does NOT affect entity providers, only things that are emitted +by entity processors. + +We recommend that this change is applied to your own Backstage repository, since +it makes it impossible for regular end users to affect your org data through +e.g. YAML files. To do so, remove the two kinds from the default rules in your config: + +```diff + catalog: + rules: +- - allow: [Component, System, API, Group, User, Resource, Location] ++ - allow: [Component, System, API, Resource, Location] +``` + +And for any location that in any way results in org data being ingested, add the corresponding rule to it: + +```diff + catalog: + locations: + - type: github-org + target: https://github.com/my-org-name ++ rules: ++ allow: [User, Group] +``` diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md index 975df2e555..7d810ace1f 100644 --- a/docs/integrations/github/org.md +++ b/docs/integrations/github/org.md @@ -31,6 +31,8 @@ catalog: locations: - type: github-org target: https://github.com/my-org-name + rules: + allow: [User, Group] ``` If Backstage is configured to use GitHub Apps authentication you must grant diff --git a/docs/integrations/ldap/org.md b/docs/integrations/ldap/org.md index f7f4e25b1a..14c31c50e4 100644 --- a/docs/integrations/ldap/org.md +++ b/docs/integrations/ldap/org.md @@ -365,4 +365,6 @@ catalog: locations: - type: ldap-org target: ldaps://ds.example.net + rules: + allow: [User, Group] ``` diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index 02139f8084..380d2a765d 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -85,7 +85,7 @@ catalog: entityFilename: catalog-info.yaml pullRequestBranchName: backstage-integration rules: - - allow: [Component, System, API, Group, User, Resource, Location] + - allow: [Component, System, API, Resource, Location] locations: # Backstage example components - type: url diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 7df271fdd4..9c226ff1d5 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -237,6 +237,8 @@ locations: - type: github-multi-org target: https://github.myorg.com + rules: + allow: [User, Group] processors: githubMultiOrg: diff --git a/plugins/catalog-backend-module-msgraph/README.md b/plugins/catalog-backend-module-msgraph/README.md index 741e378fd4..bf23e93770 100644 --- a/plugins/catalog-backend-module-msgraph/README.md +++ b/plugins/catalog-backend-module-msgraph/README.md @@ -141,8 +141,6 @@ catalog: locations: - type: microsoft-graph-org target: https://graph.microsoft.com/v1.0 - # If you catalog doesn't allow to import Group and User entities by - # default, allow them here rules: - allow: [Group, User] … diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 89e0408cc8..5506c649c4 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1394,6 +1394,8 @@ locations: - type: github-multi-org target: https://github.myorg.com + rules: + allow: [User, Group] processors: githubMultiOrg: From a3ba359d73c0e48f29b0740ce2909f933149373c Mon Sep 17 00:00:00 2001 From: Alex Rybchenko Date: Mon, 28 Mar 2022 17:11:28 +0200 Subject: [PATCH 213/225] updated api report Signed-off-by: Alex Rybchenko --- plugins/gcalendar/api-report.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/gcalendar/api-report.md b/plugins/gcalendar/api-report.md index 276c144400..b4aebf1ff3 100644 --- a/plugins/gcalendar/api-report.md +++ b/plugins/gcalendar/api-report.md @@ -29,9 +29,7 @@ export class GCalendarApiClient { // Warning: (ae-forgotten-export) The symbol "Options" needs to be exported by the entry point index.d.ts constructor(options: Options); // (undocumented) - getCalendars(params?: any): Promise<{ - items: GCalendar[]; - }>; + getCalendars(params?: any): Promise; // (undocumented) getEvents( calendarId: string, @@ -55,6 +53,11 @@ export type GCalendarEvent = gapi.client.calendar.Event & calendarId?: string; }; +// Warning: (ae-missing-release-tag) "GCalendarList" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type GCalendarList = gapi.client.calendar.CalendarList; + // Warning: (ae-missing-release-tag) "gcalendarPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) From f5225716fe69d59dcb881c6827a14791d72392cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 04:09:28 +0000 Subject: [PATCH 214/225] build(deps): bump @typescript-eslint/parser from 5.16.0 to 5.17.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.16.0 to 5.17.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.17.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e6629ecf1..9ce54b056c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7036,13 +7036,13 @@ eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz#e4de1bde4b4dad5b6124d3da227347616ed55508" - integrity sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA== + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz#7def77d5bcd8458d12d52909118cf3f0a45f89d5" + integrity sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig== dependencies: - "@typescript-eslint/scope-manager" "5.16.0" - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/typescript-estree" "5.16.0" + "@typescript-eslint/scope-manager" "5.17.0" + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/typescript-estree" "5.17.0" debug "^4.3.2" "@typescript-eslint/scope-manager@5.14.0": @@ -7061,6 +7061,14 @@ "@typescript-eslint/types" "5.16.0" "@typescript-eslint/visitor-keys" "5.16.0" +"@typescript-eslint/scope-manager@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" + integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== + dependencies: + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/scope-manager@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz#02dfef920290c1dcd7b1999455a3eaae7a1a3117" @@ -7088,6 +7096,11 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== +"@typescript-eslint/types@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" + integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== + "@typescript-eslint/types@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" @@ -7119,6 +7132,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" + integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== + dependencies: + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/visitor-keys" "5.17.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/typescript-estree@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz#0e5c6f03f982931abbfbc3c1b9df5fbf92a3490f" @@ -7172,6 +7198,14 @@ "@typescript-eslint/types" "5.16.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" + integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== + dependencies: + "@typescript-eslint/types" "5.17.0" + eslint-visitor-keys "^3.0.0" + "@typescript-eslint/visitor-keys@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" From 62c9506390670c5fd8f005312580024a7235369e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 04:10:36 +0000 Subject: [PATCH 215/225] build(deps): bump testcontainers from 8.2.0 to 8.6.0 Bumps [testcontainers](https://github.com/testcontainers/testcontainers-node) from 8.2.0 to 8.6.0. - [Release notes](https://github.com/testcontainers/testcontainers-node/releases) - [Commits](https://github.com/testcontainers/testcontainers-node/compare/v8.2.0...v8.6.0) --- updated-dependencies: - dependency-name: testcontainers dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 51 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e6629ecf1..f4687d6cbc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1593,6 +1593,11 @@ resolved "https://registry.npmjs.org/@backstage/types/-/types-0.1.3.tgz#6613d8cbdf97d42d31cd1e66a833df533e7ccf14" integrity sha512-fJVi4oVrlO+G3PRv1fYSll9/X4pE11HLnkI//Geare9sP6wSfp/2zXpLYfKVsG0e24jOl7Swkc8lwLkQ90zMaQ== +"@balena/dockerignore@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz#9ffe4726915251e8eb69f44ef3547e0da2c03e0d" + integrity sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q== + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -5955,10 +5960,10 @@ "@types/node" "*" "@types/ssh2" "*" -"@types/dockerode@^3.2.5", "@types/dockerode@^3.3.0": - version "3.3.3" - resolved "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.3.tgz#993de5d8bd3ecb0b0a9277cccc189e9a74e9fbd1" - integrity sha512-DBFTE/wiZKodQhDrdkzLVT3K0X1JO/1fTxPaTQN0jiPNdTOFoPt8LYnuYEzalPgVpZbGEeuJTls7qn6jMvuydg== +"@types/dockerode@^3.2.7", "@types/dockerode@^3.3.0": + version "3.3.6" + resolved "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.6.tgz#14b7f1f7b5d2a2d3929440c8e3d1020daf182e65" + integrity sha512-jzL+tRwmtsqWT4owNTHmEWUexkeWLSirXFbWZzx/N5jX7hPIrbF5K8e8OPhYsqQrilqZSdcy6Y96iOXOxklvVA== dependencies: "@types/docker-modem" "*" "@types/node" "*" @@ -10765,10 +10770,10 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.3, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: - version "4.3.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -10779,6 +10784,13 @@ debug@4.3.2: dependencies: ms "2.1.2" +debug@4.3.3: + version "4.3.3" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + debug@^3.1.0, debug@^3.1.1, debug@^3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -11167,10 +11179,10 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -docker-compose@^0.23.13: - version "0.23.13" - resolved "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.13.tgz#77d37bd05b6a966345f631e6d05e961c79514f06" - integrity sha512-/9fYC4g3AO+qsqxIZhmbVnFvJJPcYEV2yJbAPPXH+6AytU3urIY8lUAXOlvY8sl4u25pdKu1JrOfAmWC7lJDJg== +docker-compose@^0.23.17: + version "0.23.17" + resolved "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.17.tgz#8816bef82562d9417dc8c790aa4871350f93a2ba" + integrity sha512-YJV18YoYIcxOdJKeFcCFihE6F4M2NExWM/d4S1ITcS9samHKnNUihz9kjggr0dNtsrbpFNc7/Yzd19DWs+m1xg== dependencies: yaml "^1.10.2" @@ -23803,21 +23815,20 @@ test-exclude@^6.0.0: minimatch "^3.0.4" testcontainers@^8.1.2: - version "8.2.0" - resolved "https://registry.npmjs.org/testcontainers/-/testcontainers-8.2.0.tgz#41a9ff1b9a1fb50654eeec5478c0451a0179bcef" - integrity sha512-s+w9WtgAPHkuEo+eLKEynT3EutaHeGsVqdZCe5xLDFzklToBF/jcUcfIFmI4rxDUI1kJqSnjr0dALzETiqnU6w== + version "8.6.0" + resolved "https://registry.npmjs.org/testcontainers/-/testcontainers-8.6.0.tgz#71e52b95b6dcc7765f2338d90ccc3973cfcc0ff3" + integrity sha512-pFc4TGe340xnM/Vwrcv6aC8F4/FsV461h0+f2WBVQ1n+vqBRof+qVaGa9jHm+dk3iVYY0BCkCItoSYFD4Q/3eQ== dependencies: + "@balena/dockerignore" "^1.0.2" "@types/archiver" "^5.1.1" - "@types/dockerode" "^3.2.5" + "@types/dockerode" "^3.2.7" archiver "^5.3.0" byline "^5.0.0" - debug "^4.3.2" - docker-compose "^0.23.13" + debug "^4.3.4" + docker-compose "^0.23.17" dockerode "^3.3.1" get-port "^5.1.1" - glob "^7.2.0" properties-reader "^2.2.0" - slash "^3.0.0" ssh-remote-port-forward "^1.0.4" tar-fs "^2.1.1" From 864e68492e56e6ab8518c591481a3bb499fdae3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 04:11:19 +0000 Subject: [PATCH 216/225] build(deps): bump @typescript-eslint/eslint-plugin from 5.14.0 to 5.17.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.14.0 to 5.17.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.17.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 116 ++++++++++++++++++++++++------------------------------ 1 file changed, 52 insertions(+), 64 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e6629ecf1..b0f99c4b93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7009,13 +7009,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz#5119b67152356231a0e24b998035288a9cd21335" - integrity sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w== + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz#704eb4e75039000531255672bf1c85ee85cf1d67" + integrity sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ== dependencies: - "@typescript-eslint/scope-manager" "5.14.0" - "@typescript-eslint/type-utils" "5.14.0" - "@typescript-eslint/utils" "5.14.0" + "@typescript-eslint/scope-manager" "5.17.0" + "@typescript-eslint/type-utils" "5.17.0" + "@typescript-eslint/utils" "5.17.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -7045,14 +7045,6 @@ "@typescript-eslint/typescript-estree" "5.16.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" - integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw== - dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" - "@typescript-eslint/scope-manager@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz#7e7909d64bd0c4d8aef629cdc764b9d3e1d3a69a" @@ -7061,6 +7053,14 @@ "@typescript-eslint/types" "5.16.0" "@typescript-eslint/visitor-keys" "5.16.0" +"@typescript-eslint/scope-manager@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" + integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== + dependencies: + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/scope-manager@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz#02dfef920290c1dcd7b1999455a3eaae7a1a3117" @@ -7069,43 +7069,30 @@ "@typescript-eslint/types" "5.9.0" "@typescript-eslint/visitor-keys" "5.9.0" -"@typescript-eslint/type-utils@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz#711f08105860b12988454e91df433567205a8f0b" - integrity sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw== +"@typescript-eslint/type-utils@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz#1c4549d68c89877662224aabb29fbbebf5fc9672" + integrity sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg== dependencies: - "@typescript-eslint/utils" "5.14.0" + "@typescript-eslint/utils" "5.17.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" - integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== - "@typescript-eslint/types@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== +"@typescript-eslint/types@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" + integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== + "@typescript-eslint/types@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== -"@typescript-eslint/typescript-estree@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" - integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== - dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" @@ -7119,6 +7106,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" + integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== + dependencies: + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/visitor-keys" "5.17.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/typescript-estree@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz#0e5c6f03f982931abbfbc3c1b9df5fbf92a3490f" @@ -7132,38 +7132,18 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4" - integrity sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w== +"@typescript-eslint/utils@5.17.0", "@typescript-eslint/utils@^5.10.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz#549a9e1d491c6ccd3624bc3c1b098f5cfb45f306" + integrity sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.14.0" - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/typescript-estree" "5.14.0" + "@typescript-eslint/scope-manager" "5.17.0" + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/typescript-estree" "5.17.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/utils@^5.10.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz#42218b459d6d66418a4eb199a382bdc261650679" - integrity sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.16.0" - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/typescript-estree" "5.16.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.14.0": - version "5.14.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" - integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== - dependencies: - "@typescript-eslint/types" "5.14.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.16.0": version "5.16.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz#f27dc3b943e6317264c7492e390c6844cd4efbbb" @@ -7172,6 +7152,14 @@ "@typescript-eslint/types" "5.16.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.17.0": + version "5.17.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" + integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== + dependencies: + "@typescript-eslint/types" "5.17.0" + eslint-visitor-keys "^3.0.0" + "@typescript-eslint/visitor-keys@5.9.0": version "5.9.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz#7585677732365e9d27f1878150fab3922784a1a6" From 7a18ba87aa781f76a923eaef4c4064ff0c4ed1c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 04:11:52 +0000 Subject: [PATCH 217/225] build(deps): bump @octokit/webhooks from 9.22.0 to 9.23.0 Bumps [@octokit/webhooks](https://github.com/octokit/webhooks.js) from 9.22.0 to 9.23.0. - [Release notes](https://github.com/octokit/webhooks.js/releases) - [Commits](https://github.com/octokit/webhooks.js/compare/v9.22.0...v9.23.0) --- updated-dependencies: - dependency-name: "@octokit/webhooks" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e6629ecf1..b1375f18f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4960,19 +4960,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-2.0.0.tgz#1108b9ea661ca6c81e4a8bfa63a09eb27d5bc2db" integrity sha512-35cfQ4YWlnZnmZKmIxlGPUPLtbkF8lr/A/1Sk1eC0ddLMwQN06dOuLc+dI3YLQS+T+MoNt3DIQ0NynwgKPilig== -"@octokit/webhooks-types@5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-5.2.0.tgz#9d1d451f37460107409c81cab04dd473108abb02" - integrity sha512-OZhKy1w8/GF4GWtdiJc+o8sloWAHRueGB78FWFLZnueK7EHV9MzDVr4weJZMflJwMK4uuYLzcnJVnAoy3yB35g== +"@octokit/webhooks-types@5.5.1": + version "5.5.1" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-5.5.1.tgz#3ab94e890bee827302c6312e80497426d6627cbf" + integrity sha512-FaBbqZS2e4fCdQvUqeBKpJJOVsRxGcrf0NA91WBXz9GP5/4xgQgdjpbzAcDOSfESBYDYD78HeI5VeihfCW28Ew== "@octokit/webhooks@^9.0.1", "@octokit/webhooks@^9.14.1": - version "9.22.0" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-9.22.0.tgz#07a36a10358d39c1870758fae2b1ad3c24ca578d" - integrity sha512-wUd7nGfDRHG6xkz311djmq6lIB2tQ+r94SNkyv9o0bQhOsrkwH8fQCM7uVsbpkGUU2lqCYsVoa8z/UC9HJgRaw== + version "9.23.0" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-9.23.0.tgz#16fc24284afdf3e119d32928dd3f8b338890e56c" + integrity sha512-4+imw+CajrKpafaE9oLCtXyU3ZAcCLwuoeZ3XmFruQZCEcBBJYE/juSFvU3x1HkFFeKwsUyr+nRikRwiK/VSmA== dependencies: "@octokit/request-error" "^2.0.2" "@octokit/webhooks-methods" "^2.0.0" - "@octokit/webhooks-types" "5.2.0" + "@octokit/webhooks-types" "5.5.1" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3": From 0177b56623c5d586ca3a71c1b963c44b3243d16f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 04:13:09 +0000 Subject: [PATCH 218/225] build(deps): bump esbuild from 0.14.27 to 0.14.28 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.14.27 to 0.14.28. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.14.27...v0.14.28) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 206 +++++++++++++++++++++++++++--------------------------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e6629ecf1..f1ec7206b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11622,75 +11622,75 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz#b868bbd9955a92309c69df628d8dd1945478b45c" - integrity sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ== +esbuild-android-64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.28.tgz#69c7a8a4f4a888eb5584afb035524b0fda7affff" + integrity sha512-A52C3zq+9tNwCqZ+4kVLBxnk/WnrYM8P2+QNvNE9B6d2OVPs214lp3g6UyO+dKDhUdefhfPCuwkP8j2A/+szNA== -esbuild-android-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz#e7d6430555e8e9c505fd87266bbc709f25f1825c" - integrity sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ== +esbuild-android-arm64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.28.tgz#110ff82019e75b866b53844c32f19f7933b4ce36" + integrity sha512-sm0fDEGElZhMC3HLZeECI2juE4aG7uPfMBMqNUhy9CeX399Pz8rC6e78OXMXInGjSdEAwQmCOHmfsP7uv3Q8rA== -esbuild-darwin-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz#4dc7484127564e89b4445c0a560a3cb50b3d68e1" - integrity sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g== +esbuild-darwin-64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.28.tgz#d929ce16035da6047504fe8a71587d2ac9b756ed" + integrity sha512-nzDd7mQ44FvsFHtOafZdBgn3Li5SMsnMnoz1J2MM37xJmR3wGNTFph88KypjHgWqwbxCI7MXS1U+sN4qDeeW6Q== -esbuild-darwin-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz#469e59c665f84a8ed323166624c5e7b9b2d22ac1" - integrity sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ== +esbuild-darwin-arm64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.28.tgz#75e1cb75c2230c541be1707c6751395fee9f6bbd" + integrity sha512-XEq/bLR/glsUl+uGrBimQzOVs/CmwI833fXUhP9xrLI3IJ+rKyrZ5IA8u+1crOEf1LoTn8tV+hInmX6rGjbScw== -esbuild-freebsd-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz#895df03bf5f87094a56c9a5815bf92e591903d70" - integrity sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA== +esbuild-freebsd-64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.28.tgz#3579fd41f4c090d52e1a9134743e591c6aea49d7" + integrity sha512-rTKLgUj/HEcPeE5XZ7IZwWpFx7IWMfprN7QRk/TUJE1s1Ipb58esboIesUpjirJz/BwrgHq+FDG9ChAI8dZAtQ== -esbuild-freebsd-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz#0b72a41a6b8655e9a8c5608f2ec1afdcf6958441" - integrity sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA== +esbuild-freebsd-arm64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.28.tgz#de1c102a40005fa9da5160c0242b2de89ffd2d7b" + integrity sha512-sBffxD1UMOsB7aWMoExmipycjcy3HJGwmqE4GQZUTZvdiH4GhjgUiVdtPyt7kSCdL40JqnWQJ4b1l8Y51oCF4Q== -esbuild-linux-32@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz#43b8ba3803b0bbe7f051869c6a8bf6de1e95de28" - integrity sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw== +esbuild-linux-32@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.28.tgz#cdb8ac2000df06044450bf33a93b9d63d61bb669" + integrity sha512-+Wxidh3fBEQ9kHcCsD4etlBTMb1n6QY2uXv3rFhVn88CY/JP782MhA57/ipLMY4kOLeSKEuFGN4rtjHuhmRMig== -esbuild-linux-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz#dc8072097327ecfadba1735562824ce8c05dd0bd" - integrity sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg== +esbuild-linux-64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.28.tgz#b1e961d42af89dab8c3c0ce86420a7657765f0ae" + integrity sha512-7+xgsC4LvR6cnzaBdiljNnPDjbkwzahogN+S9uy9AoYw7ZjPnnXc6sjQAVCbqGb7MEgrWdpa6u/Tao79i4lWxg== -esbuild-linux-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz#c52b58cbe948426b1559910f521b0a3f396f10b8" - integrity sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ== +esbuild-linux-arm64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.28.tgz#f69e6ace792a4985b9760b443dbf627e5e3d2126" + integrity sha512-EjRHgwg+kgXABzyoPGPOPg4d5wZqRnZ/ZAxBDzLY+i6DS8OUfTSlZHWIOZzU4XF7125WxRBg9ULbrFJBl+57Eg== -esbuild-linux-arm@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz#df869dbd67d4ee3a04b3c7273b6bd2b233e78a18" - integrity sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw== +esbuild-linux-arm@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.28.tgz#9c2fa45578686370a5d782314f321a2c6b641270" + integrity sha512-L5isjmlLbh9E0WVllXiVETbScgMbth/+XkXQii1WwgO1RvLIfaGrVFz8d2n6EH/ImtgYxPYGx+OcvIKQBc91Rg== -esbuild-linux-mips64le@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz#a2b646d9df368b01aa970a7b8968be6dd6b01d19" - integrity sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A== +esbuild-linux-mips64le@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.28.tgz#99d78f0380640aa7faa2c4c49ac21229bdf33c7c" + integrity sha512-krx9SSg7yfiUKk64EmjefOyiEF6nv2bRE4um/LiTaQ6Y/6FP4UF3/Ou/AxZVyR154uSRq63xejcAsmswXAYRsw== -esbuild-linux-ppc64le@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz#9a21af766a0292578a3009c7408b8509cac7cefd" - integrity sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA== +esbuild-linux-ppc64le@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.28.tgz#7388fa0c76033b4ca85b74071cb793d41ae77642" + integrity sha512-LD0Xxu9g+DNuhsEBV5QuVZ4uKVBMup0xPIruLweuAf9/mHXFnaCuNXUBF5t0DxKl7GQ5MSioKtnb92oMo+QXEw== -esbuild-linux-riscv64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz#344a27f91568056a5903ad5841b447e00e78d740" - integrity sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg== +esbuild-linux-riscv64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.28.tgz#99e4a8afe4762e927ebe02009e1927e38f3256ab" + integrity sha512-L/DWfRh2P0vxq4Y+qieSNXKGdMg+e9Qe8jkbN2/8XSGYDTPzO2OcAxSujob4qIh7iSl+cknbXV+BvH0YFR0jbg== -esbuild-linux-s390x@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz#73a7309bd648a07ef58f069658f989a5096130db" - integrity sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg== +esbuild-linux-s390x@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.28.tgz#38a625399ffc78f3b8b555ebe2013347256a9a8a" + integrity sha512-rrgxmsbmL8QQknWGnAL9bGJRQYLOi2AzXy5OTwfhxnj9eqjo5mSVbJXjgiq5LPUAMQZGdPH5yaNK0obAXS81Zw== esbuild-loader@^2.18.0: version "2.18.0" @@ -11704,61 +11704,61 @@ esbuild-loader@^2.18.0: tapable "^2.2.0" webpack-sources "^2.2.0" -esbuild-netbsd-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz#482a587cdbd18a6c264a05136596927deb46c30a" - integrity sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q== +esbuild-netbsd-64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.28.tgz#fdc09dd69313f42be034276cc780bf60c09266b6" + integrity sha512-h8wntIyOR8/xMVVM6TvJxxWKh4AjmLK87IPKpuVi8Pq0kyk0RMA+eo4PFGk5j2XK0D7dj8PcSF5NSlP9kN/j0A== -esbuild-openbsd-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz#e99f8cdc63f1628747b63edd124d53cf7796468d" - integrity sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw== +esbuild-openbsd-64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.28.tgz#9d7b0ca421ae580ab945c69c33eabd793262a84c" + integrity sha512-HBv18rVapbuDx52/fhZ/c/w6TXyaQAvRxiDDn5Hz/pBcwOs3cdd2WxeIKlWmDoqm2JMx5EVlq4IWgoaRX9mVkw== -esbuild-sunos-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz#8611d825bcb8239c78d57452e83253a71942f45c" - integrity sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg== +esbuild-sunos-64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.28.tgz#5b82807ebe435519a2689e1a4d50b8a3cc5c64c0" + integrity sha512-zlIxePhZxKYheR2vBCgPVvTixgo/ozOfOMoP6RZj8dxzquU1NgeyhjkcRXucbLCtmoNJ+i4PtWwPZTLuDd3bGg== -esbuild-windows-32@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz#c06374206d4d92dd31d4fda299b09f51a35e82f6" - integrity sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw== +esbuild-windows-32@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.28.tgz#5cf740782fadc865c00aa0d8388e42012bcf496e" + integrity sha512-am9DIJxXlld1BOAY/VlvBQHMUCPL7S3gB/lnXIY3M4ys0gfuRqPf4EvMwZMzYUbFKBY+/Qb8SRgPRRGhwnJ8Kg== -esbuild-windows-64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz#756631c1d301dfc0d1a887deed2459ce4079582f" - integrity sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg== +esbuild-windows-64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.28.tgz#6e3ec1b0225d668a2da21e2ffeff2353b5c9a567" + integrity sha512-78PhySDnmRZlsPNp/W/5Fim8iivlBQQxfhBFIqR7xwvfDmCFUSByyMKP7LCHgNtb04yNdop8nJJkJaQ8Xnwgiw== -esbuild-windows-arm64@0.14.27: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz#ad7e187193dcd18768b16065a950f4441d7173f4" - integrity sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg== +esbuild-windows-arm64@0.14.28: + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.28.tgz#c527d52ec7d1f868259d0f74ecc4003e8475125d" + integrity sha512-VhXGBTo6HELD8zyHXynV6+L2jWx0zkKnGx4TmEdSBK7UVFACtOyfUqpToG0EtnYyRZ0HESBhzPSVpP781ovmvA== esbuild@^0.14.1, esbuild@^0.14.10, esbuild@^0.14.6: - version "0.14.27" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz#41fe0f1b6b68b9f77cac025009bc54bb96e616f1" - integrity sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q== + version "0.14.28" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.28.tgz#7738635d2ea19e446bd319d83a1802545e6aebb8" + integrity sha512-YLNprkCcMVKQ5sekmCKEQ3Obu/L7s6+iij38xNKyBeSmSsTWur4Ky/9zB3XIGT8SCJITG/bZwAR2l7YOAXch4Q== optionalDependencies: - esbuild-android-64 "0.14.27" - esbuild-android-arm64 "0.14.27" - esbuild-darwin-64 "0.14.27" - esbuild-darwin-arm64 "0.14.27" - esbuild-freebsd-64 "0.14.27" - esbuild-freebsd-arm64 "0.14.27" - esbuild-linux-32 "0.14.27" - esbuild-linux-64 "0.14.27" - esbuild-linux-arm "0.14.27" - esbuild-linux-arm64 "0.14.27" - esbuild-linux-mips64le "0.14.27" - esbuild-linux-ppc64le "0.14.27" - esbuild-linux-riscv64 "0.14.27" - esbuild-linux-s390x "0.14.27" - esbuild-netbsd-64 "0.14.27" - esbuild-openbsd-64 "0.14.27" - esbuild-sunos-64 "0.14.27" - esbuild-windows-32 "0.14.27" - esbuild-windows-64 "0.14.27" - esbuild-windows-arm64 "0.14.27" + esbuild-android-64 "0.14.28" + esbuild-android-arm64 "0.14.28" + esbuild-darwin-64 "0.14.28" + esbuild-darwin-arm64 "0.14.28" + esbuild-freebsd-64 "0.14.28" + esbuild-freebsd-arm64 "0.14.28" + esbuild-linux-32 "0.14.28" + esbuild-linux-64 "0.14.28" + esbuild-linux-arm "0.14.28" + esbuild-linux-arm64 "0.14.28" + esbuild-linux-mips64le "0.14.28" + esbuild-linux-ppc64le "0.14.28" + esbuild-linux-riscv64 "0.14.28" + esbuild-linux-s390x "0.14.28" + esbuild-netbsd-64 "0.14.28" + esbuild-openbsd-64 "0.14.28" + esbuild-sunos-64 "0.14.28" + esbuild-windows-32 "0.14.28" + esbuild-windows-64 "0.14.28" + esbuild-windows-arm64 "0.14.28" escalade@^3.1.1: version "3.1.1" From 85baa117b1307780d5aacf840740c1b411e4d033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 29 Mar 2022 09:48:04 +0200 Subject: [PATCH 219/225] some missing yarn.lock changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- yarn.lock | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) diff --git a/yarn.lock b/yarn.lock index b573caaf35..e80569e1e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7050,14 +7050,6 @@ "@typescript-eslint/typescript-estree" "5.17.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz#7e7909d64bd0c4d8aef629cdc764b9d3e1d3a69a" - integrity sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ== - dependencies: - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/visitor-keys" "5.16.0" - "@typescript-eslint/scope-manager@5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" @@ -7083,11 +7075,6 @@ debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" - integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== - "@typescript-eslint/types@5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" @@ -7098,32 +7085,6 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== -"@typescript-eslint/typescript-estree@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" - integrity sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ== - dependencies: - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/visitor-keys" "5.16.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@5.17.0": - version "5.17.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" - integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== - dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" @@ -7162,14 +7123,6 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz#f27dc3b943e6317264c7492e390c6844cd4efbbb" - integrity sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g== - dependencies: - "@typescript-eslint/types" "5.16.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" From 1d587f7bb7ed121052bb5f7eb7e314e334e33769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 29 Mar 2022 09:52:33 +0200 Subject: [PATCH 220/225] fix the allow entries that should be lists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/clean-lions-taste.md | 6 +++--- docs/integrations/github/org.md | 2 +- docs/integrations/ldap/org.md | 2 +- packages/integration/CHANGELOG.md | 2 +- plugins/catalog-backend/CHANGELOG.md | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.changeset/clean-lions-taste.md b/.changeset/clean-lions-taste.md index d4179fa39a..1ec1eec952 100644 --- a/.changeset/clean-lions-taste.md +++ b/.changeset/clean-lions-taste.md @@ -18,12 +18,12 @@ catalog: - type: url target: https://example.com/org.yaml rules: - allow: [User, Group] + - allow: [User, Group] # But also note that this applies to ALL org location types! - type: github-org target: https://github.com/my-org-name rules: - allow: [User, Group] + - allow: [User, Group] ``` This rule change does NOT affect entity providers, only things that are emitted @@ -48,5 +48,5 @@ And for any location that in any way results in org data being ingested, add the - type: github-org target: https://github.com/my-org-name + rules: -+ allow: [User, Group] ++ - allow: [User, Group] ``` diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md index 7d810ace1f..94689f4a39 100644 --- a/docs/integrations/github/org.md +++ b/docs/integrations/github/org.md @@ -32,7 +32,7 @@ catalog: - type: github-org target: https://github.com/my-org-name rules: - allow: [User, Group] + - allow: [User, Group] ``` If Backstage is configured to use GitHub Apps authentication you must grant diff --git a/docs/integrations/ldap/org.md b/docs/integrations/ldap/org.md index 14c31c50e4..b9ab320996 100644 --- a/docs/integrations/ldap/org.md +++ b/docs/integrations/ldap/org.md @@ -366,5 +366,5 @@ catalog: - type: ldap-org target: ldaps://ds.example.net rules: - allow: [User, Group] + - allow: [User, Group] ``` diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 9c226ff1d5..0968754394 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -238,7 +238,7 @@ - type: github-multi-org target: https://github.myorg.com rules: - allow: [User, Group] + - allow: [User, Group] processors: githubMultiOrg: diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 5506c649c4..c84f85aafe 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1395,7 +1395,7 @@ - type: github-multi-org target: https://github.myorg.com rules: - allow: [User, Group] + - allow: [User, Group] processors: githubMultiOrg: From 686db64cac93058d3a0c54e75533dc0a7a17bdfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 29 Mar 2022 09:53:51 +0200 Subject: [PATCH 221/225] review comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/tasty-goats-shout.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/tasty-goats-shout.md b/.changeset/tasty-goats-shout.md index 617485bead..5b9356122f 100644 --- a/.changeset/tasty-goats-shout.md +++ b/.changeset/tasty-goats-shout.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-gcalendar': patch +'@backstage/plugin-gcalendar': minor --- Fixed issue when not all calendars were fetched for some accounts From e6f3fb8575e5e7f3a65a0f2c18b1fec6cc468e97 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 29 Mar 2022 08:42:22 +0000 Subject: [PATCH 222/225] Version Packages (next) --- .changeset/pre.json | 61 ++++++++++++++- package.json | 2 +- packages/app-defaults/CHANGELOG.md | 7 ++ packages/app-defaults/package.json | 8 +- packages/app/CHANGELOG.md | 25 ++++++ packages/app/package.json | 44 +++++------ packages/backend-common/CHANGELOG.md | 9 +++ packages/backend-common/package.json | 8 +- packages/backend-tasks/CHANGELOG.md | 12 +++ packages/backend-tasks/package.json | 8 +- packages/backend-test-utils/CHANGELOG.md | 9 +++ packages/backend-test-utils/package.json | 8 +- packages/backend/CHANGELOG.md | 26 +++++++ packages/backend/package.json | 42 +++++----- packages/catalog-client/package.json | 2 +- packages/catalog-model/package.json | 2 +- packages/cli/CHANGELOG.md | 18 +++++ packages/cli/package.json | 6 +- packages/core-app-api/package.json | 4 +- packages/core-components/package.json | 4 +- packages/core-plugin-api/package.json | 4 +- packages/create-app/CHANGELOG.md | 71 +++++++++++++++++ packages/create-app/package.json | 2 +- packages/dev-utils/package.json | 10 +-- packages/errors/package.json | 2 +- packages/integration-react/CHANGELOG.md | 7 ++ packages/integration-react/package.json | 8 +- packages/integration/CHANGELOG.md | 10 +++ packages/integration/package.json | 6 +- packages/search-common/CHANGELOG.md | 7 ++ packages/search-common/package.json | 4 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 12 +++ .../techdocs-cli-embedded-app/package.json | 16 ++-- packages/techdocs-cli/package.json | 6 +- packages/techdocs-common/CHANGELOG.md | 7 ++ packages/techdocs-common/package.json | 4 +- packages/test-utils/CHANGELOG.md | 9 +++ packages/test-utils/package.json | 8 +- packages/theme/package.json | 2 +- packages/types/package.json | 2 +- packages/version-bridge/package.json | 2 +- plugins/airbrake-backend/package.json | 4 +- plugins/airbrake/package.json | 10 +-- plugins/allure/package.json | 6 +- plugins/analytics-module-ga/package.json | 4 +- plugins/apache-airflow/package.json | 4 +- plugins/api-docs/CHANGELOG.md | 8 ++ plugins/api-docs/package.json | 10 +-- plugins/app-backend/package.json | 6 +- plugins/auth-backend/CHANGELOG.md | 8 ++ plugins/auth-backend/package.json | 8 +- plugins/auth-node/package.json | 4 +- plugins/azure-devops-backend/package.json | 4 +- plugins/azure-devops-common/package.json | 2 +- plugins/azure-devops/package.json | 6 +- plugins/badges-backend/CHANGELOG.md | 8 ++ plugins/badges-backend/package.json | 6 +- plugins/badges/package.json | 6 +- plugins/bazaar-backend/package.json | 6 +- plugins/bazaar/CHANGELOG.md | 10 +++ plugins/bazaar/package.json | 10 +-- plugins/bitrise/package.json | 6 +- .../catalog-backend-module-aws/CHANGELOG.md | 8 ++ .../catalog-backend-module-aws/package.json | 8 +- .../catalog-backend-module-azure/CHANGELOG.md | 9 +++ .../catalog-backend-module-azure/package.json | 12 +-- .../CHANGELOG.md | 9 +++ .../package.json | 12 +-- .../CHANGELOG.md | 9 +++ .../package.json | 12 +-- .../CHANGELOG.md | 9 +++ .../package.json | 12 +-- .../catalog-backend-module-ldap/CHANGELOG.md | 8 ++ .../catalog-backend-module-ldap/package.json | 8 +- .../CHANGELOG.md | 9 +++ .../package.json | 12 +-- plugins/catalog-backend/CHANGELOG.md | 51 ++++++++++++ plugins/catalog-backend/package.json | 20 ++--- plugins/catalog-common/CHANGELOG.md | 10 +++ plugins/catalog-common/package.json | 8 +- plugins/catalog-graph/CHANGELOG.md | 8 ++ plugins/catalog-graph/package.json | 10 +-- plugins/catalog-graphql/package.json | 4 +- plugins/catalog-import/CHANGELOG.md | 9 +++ plugins/catalog-import/package.json | 12 +-- plugins/catalog-react/CHANGELOG.md | 17 ++++ plugins/catalog-react/package.json | 16 ++-- plugins/catalog/CHANGELOG.md | 14 ++++ plugins/catalog/package.json | 16 ++-- plugins/circleci/package.json | 6 +- plugins/cloudbuild/package.json | 6 +- plugins/code-climate/package.json | 6 +- plugins/code-coverage-backend/CHANGELOG.md | 8 ++ plugins/code-coverage-backend/package.json | 8 +- plugins/code-coverage/package.json | 6 +- plugins/config-schema/package.json | 4 +- plugins/cost-insights/package.json | 4 +- plugins/explore-react/package.json | 4 +- plugins/explore/package.json | 6 +- plugins/firehydrant/package.json | 6 +- plugins/fossa/package.json | 6 +- plugins/gcalendar/CHANGELOG.md | 6 ++ plugins/gcalendar/package.json | 6 +- plugins/gcp-projects/package.json | 4 +- plugins/git-release-manager/CHANGELOG.md | 7 ++ plugins/git-release-manager/package.json | 8 +- plugins/github-actions/CHANGELOG.md | 8 ++ plugins/github-actions/package.json | 10 +-- plugins/github-deployments/CHANGELOG.md | 9 +++ plugins/github-deployments/package.json | 12 +-- plugins/gitops-profiles/package.json | 4 +- plugins/gocd/package.json | 6 +- plugins/graphiql/package.json | 4 +- plugins/graphql-backend/package.json | 4 +- plugins/home/CHANGELOG.md | 12 +++ plugins/home/package.json | 10 +-- plugins/ilert/package.json | 6 +- plugins/jenkins-backend/CHANGELOG.md | 10 +++ plugins/jenkins-backend/package.json | 10 +-- plugins/jenkins-common/CHANGELOG.md | 9 +++ plugins/jenkins-common/package.json | 8 +- plugins/jenkins/package.json | 8 +- plugins/kafka-backend/package.json | 4 +- plugins/kafka/package.json | 6 +- plugins/kubernetes-backend/package.json | 4 +- plugins/kubernetes-common/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 8 ++ plugins/kubernetes/package.json | 8 +- plugins/lighthouse/package.json | 6 +- plugins/newrelic-dashboard/package.json | 4 +- plugins/newrelic/package.json | 4 +- plugins/org/CHANGELOG.md | 8 ++ plugins/org/package.json | 8 +- plugins/pagerduty/package.json | 6 +- plugins/periskop-backend/package.json | 4 +- plugins/periskop/package.json | 6 +- plugins/permission-backend/CHANGELOG.md | 12 +++ plugins/permission-backend/package.json | 10 +-- plugins/permission-common/CHANGELOG.md | 23 ++++++ plugins/permission-common/package.json | 4 +- plugins/permission-node/CHANGELOG.md | 76 ++++++++++++++++++ plugins/permission-node/package.json | 8 +- plugins/permission-react/CHANGELOG.md | 12 +++ plugins/permission-react/package.json | 8 +- plugins/proxy-backend/package.json | 4 +- plugins/rollbar-backend/package.json | 6 +- plugins/rollbar/package.json | 6 +- .../CHANGELOG.md | 9 +++ .../package.json | 10 +-- .../CHANGELOG.md | 9 +++ .../package.json | 10 +-- .../CHANGELOG.md | 7 ++ .../package.json | 6 +- plugins/scaffolder-backend/CHANGELOG.md | 14 ++++ plugins/scaffolder-backend/package.json | 12 +-- plugins/scaffolder-common/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 12 +++ plugins/scaffolder/package.json | 18 ++--- .../package.json | 6 +- plugins/search-backend-module-pg/package.json | 8 +- plugins/search-backend-node/package.json | 6 +- plugins/search-backend/CHANGELOG.md | 12 +++ plugins/search-backend/package.json | 12 +-- plugins/search-common/CHANGELOG.md | 7 ++ plugins/search-common/package.json | 6 +- plugins/search/package.json | 8 +- plugins/sentry/package.json | 6 +- plugins/shortcuts/package.json | 4 +- plugins/sonarqube/package.json | 6 +- plugins/splunk-on-call/package.json | 6 +- plugins/stack-overflow-backend/CHANGELOG.md | 12 +++ plugins/stack-overflow-backend/package.json | 4 +- plugins/stack-overflow/CHANGELOG.md | 13 ++++ plugins/stack-overflow/package.json | 10 +-- .../CHANGELOG.md | 9 +++ .../package.json | 8 +- plugins/tech-insights-backend/CHANGELOG.md | 26 +++++++ plugins/tech-insights-backend/package.json | 12 +-- plugins/tech-insights-common/package.json | 2 +- plugins/tech-insights-node/CHANGELOG.md | 8 ++ plugins/tech-insights-node/package.json | 6 +- plugins/tech-insights/package.json | 6 +- plugins/tech-radar/CHANGELOG.md | 6 ++ plugins/tech-radar/package.json | 6 +- plugins/techdocs-backend/CHANGELOG.md | 13 ++++ plugins/techdocs-backend/package.json | 18 ++--- plugins/techdocs-node/CHANGELOG.md | 9 +++ plugins/techdocs-node/package.json | 10 +-- plugins/techdocs/CHANGELOG.md | 18 +++++ plugins/techdocs/package.json | 12 +-- plugins/todo-backend/CHANGELOG.md | 8 ++ plugins/todo-backend/package.json | 8 +- plugins/todo/package.json | 6 +- plugins/user-settings/package.json | 4 +- plugins/xcmetrics/package.json | 4 +- yarn.lock | 78 ++++++++++++------- 196 files changed, 1439 insertions(+), 523 deletions(-) create mode 100644 plugins/stack-overflow-backend/CHANGELOG.md create mode 100644 plugins/stack-overflow/CHANGELOG.md diff --git a/.changeset/pre.json b/.changeset/pre.json index 063685ce82..4763034b0a 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -137,36 +137,95 @@ "@backstage/plugin-todo": "0.2.5", "@backstage/plugin-todo-backend": "0.1.27", "@backstage/plugin-user-settings": "0.4.2", - "@backstage/plugin-xcmetrics": "0.2.23" + "@backstage/plugin-xcmetrics": "0.2.23", + "@backstage/plugin-stack-overflow": "0.0.0", + "@backstage/plugin-stack-overflow-backend": "0.0.0" }, "changesets": [ + "afraid-boats-check", + "angry-pens-begin", + "beige-avocados-matter", + "beige-baboons-walk", + "big-buses-clap", + "big-mayflies-sin", + "blue-beers-kiss", + "brave-chairs-stare", + "calm-walls-heal", + "clean-lions-taste", + "clever-donuts-teach", + "dependabot-05b19b9", "dependabot-2b68456", + "dependabot-6754062", + "dependabot-84caed8", + "dependabot-c1fe92f", + "dry-fans-arrive", + "eleven-days-brush", + "eleven-frogs-promise", "eleven-pens-collect", "empty-pens-invent", + "fair-dingos-glow", "fair-lamps-leave", "fast-cheetahs-grow", + "few-mayflies-divide", + "forty-poets-tie", + "four-birds-peel", + "fresh-bulldogs-own", + "fresh-cobras-admire", + "fresh-dodos-rush", "happy-foxes-arrive", "happy-mugs-camp", + "hip-poems-breathe", "khaki-pears-march", "large-coins-arrive", "light-drinks-rule", "mean-pumas-search", + "mean-rabbits-tell", + "mean-tomatoes-shout", + "metal-queens-cheat", + "mighty-suns-drop", + "modern-actors-notice", "modern-pumas-join", + "moody-ducks-return", "moody-pigs-rush", + "new-lions-run", + "nine-grapes-turn", "ninety-fishes-vanish", "olive-geese-chew", + "perfect-phones-roll", + "pretty-ghosts-scream", "purple-boats-punch", + "purple-laws-give", + "rare-waves-hammer", "red-snakes-float", "rich-maps-hear", + "rotten-planes-watch", + "seven-apricots-sell", + "shiny-seas-yell", + "short-knives-wave", "silent-bobcats-matter", + "silly-llamas-relax", "silver-pots-call", "smart-phones-exist", + "sour-cameras-deliver", + "sour-lobsters-sniff", + "stale-carrots-smile", + "strange-wasps-whisper", + "tasty-emus-hunt", + "tasty-goats-shout", "techdocs-coats-obey", "techdocs-head-shoulders-knees-toes", + "techdocs-parents-suffer", "thick-comics-fold", + "thin-lizards-battle", + "tidy-days-warn", "tidy-emus-stare", + "twelve-buses-nail", + "unlucky-schools-heal", + "unlucky-snakes-turn", + "warm-mangos-compete", "wicked-beds-return", "wicked-feet-clap", + "witty-years-sniff", "yellow-hats-remember" ] } diff --git a/package.json b/package.json index 540fbe0bad..83d6361581 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "resolutions": { "**/@graphql-codegen/cli/**/ws": "^7.4.6" }, - "version": "1.1.0-next.0", + "version": "1.1.0-next.1", "dependencies": { "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.15.0", diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 9c430cbac2..d0b482dac7 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/app-defaults +## 1.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-react@0.4.0-next.0 + ## 1.0.1-next.0 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 5a9135a5df..ae5994eaef 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/app-defaults", "description": "Provides the default wiring of a Backstage App", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "private": false, "publishConfig": { "access": "public", @@ -36,7 +36,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-permission-react": "^0.3.4", + "@backstage/plugin-permission-react": "^0.4.0-next.0", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,8 +46,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/cli": "^0.17.0-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@types/jest": "^26.0.7", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index b3f5227511..9fe57d36fc 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,30 @@ # example-app +## 0.2.70-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-react@0.4.0-next.0 + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/cli@0.17.0-next.1 + - @backstage/plugin-home@0.4.20-next.1 + - @backstage/plugin-kubernetes@0.6.4-next.1 + - @backstage/plugin-catalog-common@1.0.1-next.1 + - @backstage/plugin-org@0.5.4-next.1 + - @backstage/plugin-catalog-graph@0.2.16-next.1 + - @backstage/plugin-tech-radar@0.5.11-next.1 + - @backstage/plugin-catalog@1.1.0-next.1 + - @backstage/plugin-gcalendar@0.3.0-next.1 + - @backstage/plugin-techdocs@1.0.1-next.1 + - @backstage/plugin-scaffolder@1.0.1-next.1 + - @backstage/integration-react@1.0.1-next.1 + - @backstage/plugin-catalog-import@0.8.7-next.1 + - @backstage/plugin-github-actions@0.5.4-next.1 + - @backstage/app-defaults@1.0.1-next.1 + - @backstage/plugin-search-common@0.3.3-next.1 + - @backstage/plugin-api-docs@0.8.4-next.1 + ## 0.2.70-next.0 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index ddc5c99178..0f96afd6ec 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,57 +1,57 @@ { "name": "example-app", - "version": "0.2.70-next.0", + "version": "0.2.70-next.1", "private": true, "backstage": { "role": "frontend" }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.1-next.0", + "@backstage/app-defaults": "^1.0.1-next.1", "@backstage/catalog-model": "^1.0.1-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/integration-react": "^1.0.1-next.0", + "@backstage/integration-react": "^1.0.1-next.1", "@backstage/plugin-airbrake": "^0.3.4-next.0", - "@backstage/plugin-api-docs": "^0.8.4-next.0", + "@backstage/plugin-api-docs": "^0.8.4-next.1", "@backstage/plugin-azure-devops": "^0.1.20-next.0", "@backstage/plugin-apache-airflow": "^0.1.12-next.0", "@backstage/plugin-badges": "^0.2.28-next.0", - "@backstage/plugin-catalog": "^1.0.1-next.0", - "@backstage/plugin-catalog-common": "^1.0.1-next.0", - "@backstage/plugin-catalog-graph": "^0.2.16-next.0", - "@backstage/plugin-catalog-import": "^0.8.7-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog": "^1.1.0-next.1", + "@backstage/plugin-catalog-common": "^1.0.1-next.1", + "@backstage/plugin-catalog-graph": "^0.2.16-next.1", + "@backstage/plugin-catalog-import": "^0.8.7-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/plugin-circleci": "^0.3.4-next.0", "@backstage/plugin-cloudbuild": "^0.3.4-next.0", "@backstage/plugin-code-coverage": "^0.1.31-next.0", "@backstage/plugin-cost-insights": "^0.11.26-next.0", "@backstage/plugin-explore": "^0.3.35-next.0", - "@backstage/plugin-gcalendar": "^0.2.1-next.0", + "@backstage/plugin-gcalendar": "^0.3.0-next.1", "@backstage/plugin-gcp-projects": "^0.3.23-next.0", - "@backstage/plugin-github-actions": "^0.5.4-next.0", + "@backstage/plugin-github-actions": "^0.5.4-next.1", "@backstage/plugin-gocd": "^0.1.10-next.0", "@backstage/plugin-graphiql": "^0.2.36-next.0", - "@backstage/plugin-home": "^0.4.20-next.0", + "@backstage/plugin-home": "^0.4.20-next.1", "@backstage/plugin-jenkins": "^0.7.3-next.0", "@backstage/plugin-kafka": "^0.3.4-next.0", - "@backstage/plugin-kubernetes": "^0.6.4-next.0", + "@backstage/plugin-kubernetes": "^0.6.4-next.1", "@backstage/plugin-lighthouse": "^0.3.4-next.0", "@backstage/plugin-newrelic": "^0.3.22-next.0", "@backstage/plugin-newrelic-dashboard": "^0.1.12-next.0", - "@backstage/plugin-org": "^0.5.4-next.0", + "@backstage/plugin-org": "^0.5.4-next.1", "@backstage/plugin-pagerduty": "0.3.31-next.0", - "@backstage/plugin-permission-react": "^0.3.4", + "@backstage/plugin-permission-react": "^0.4.0-next.0", "@backstage/plugin-rollbar": "^0.4.4-next.0", - "@backstage/plugin-scaffolder": "^1.0.1-next.0", + "@backstage/plugin-scaffolder": "^1.0.1-next.1", "@backstage/plugin-search": "^0.7.5-next.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@backstage/plugin-sentry": "^0.3.42-next.0", "@backstage/plugin-shortcuts": "^0.2.5-next.0", - "@backstage/plugin-tech-radar": "^0.5.11-next.0", - "@backstage/plugin-techdocs": "^1.0.1-next.0", + "@backstage/plugin-tech-radar": "^0.5.11-next.1", + "@backstage/plugin-techdocs": "^1.0.1-next.1", "@backstage/plugin-todo": "^0.2.6-next.0", "@backstage/plugin-user-settings": "^0.4.3-next.0", "@backstage/plugin-tech-insights": "^0.1.14-next.0", @@ -75,8 +75,8 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/plugin-permission-react": "^0.3.4", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/plugin-permission-react": "^0.4.0-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@rjsf/core": "^3.2.1", "@testing-library/cypress": "^8.0.2", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index d80fdd136c..e8adcd9181 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-common +## 0.13.2-next.1 + +### Patch Changes + +- b7436743cb: Added the GerritUrlReader that implements "readUrl". +- bae9359032: The logger returned from `getVoidLogger` is now uses a silenced console transport instead. +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + ## 0.13.2-next.0 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index a215ce6851..bc2b25e4f4 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.13.2-next.0", + "version": "0.13.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -38,7 +38,7 @@ "@backstage/config": "^1.0.0", "@backstage/config-loader": "^1.0.1-next.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "@google-cloud/storage": "^5.8.0", "@manypkg/get-packages": "^1.1.3", @@ -89,8 +89,8 @@ } }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/archiver": "^5.1.0", "@types/compression": "^1.7.0", "@types/concat-stream": "^2.0.0", diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index 8ed769b1ea..c82d9a3ff2 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-tasks +## 0.3.0-next.1 + +### Minor Changes + +- ab008a0988: Adds the ability to manually trigger tasks which are registered + +### Patch Changes + +- bdd2773202: Refactored the internal `TaskWorker` class to make it easier to test. +- Updated dependencies + - @backstage/backend-common@0.13.2-next.1 + ## 0.2.2-next.0 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 9f8d9febce..65b3d6a1be 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.2.2-next.0", + "version": "0.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -33,7 +33,7 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/types": "^1.0.0", @@ -48,8 +48,8 @@ "zod": "^3.9.5" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/cron": "^1.7.3", "wait-for-expect": "^3.0.2" }, diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index df9e2d5d2e..79f07c4ff4 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-test-utils +## 0.1.23-next.1 + +### Patch Changes + +- 0654c87cf2: `TestDatabases.create` will no longer set up an `afterAll` test handler if no databases are supported. +- Updated dependencies + - @backstage/cli@0.17.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.23-next.0 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 5ae5153890..cb487f3e3f 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.1.23-next.0", + "version": "0.1.23-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -34,8 +34,8 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-common": "^0.13.2-next.1", + "@backstage/cli": "^0.17.0-next.1", "@backstage/config": "^1.0.0", "better-sqlite3": "^7.5.0", "knex": "^1.0.2", @@ -46,7 +46,7 @@ "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist" diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 5603fbc72a..f5d01249a5 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,31 @@ # example-backend +## 0.2.70-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/plugin-techdocs-backend@1.0.1-next.1 + - @backstage/plugin-scaffolder-backend@1.1.0-next.1 + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-search-backend@0.5.0-next.1 + - @backstage/backend-tasks@0.3.0-next.1 + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/plugin-permission-node@0.6.0-next.1 + - @backstage/plugin-badges-backend@0.1.25-next.1 + - @backstage/plugin-tech-insights-node@0.2.9-next.1 + - @backstage/plugin-permission-backend@0.5.6-next.1 + - @backstage/backend-common@0.13.2-next.1 + - @backstage/plugin-auth-backend@0.13.0-next.1 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.15-next.1 + - @backstage/plugin-tech-insights-backend@0.3.0-next.1 + - @backstage/plugin-jenkins-backend@0.1.20-next.1 + - @backstage/plugin-scaffolder-backend-module-rails@0.3.6-next.1 + - @backstage/plugin-code-coverage-backend@0.1.29-next.1 + - @backstage/plugin-todo-backend@0.1.28-next.1 + - example-app@0.2.70-next.1 + ## 0.2.70-next.0 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index bbaa6af5c8..3fde1cdc11 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.70-next.0", + "version": "0.2.70-next.1", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,39 +26,39 @@ "build-image": "docker build ../.. -f Dockerfile --tag example-backend" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", - "@backstage/backend-tasks": "^0.2.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", + "@backstage/backend-tasks": "^0.3.0-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", "@backstage/plugin-app-backend": "^0.3.31-next.0", - "@backstage/plugin-auth-backend": "^0.13.0-next.0", + "@backstage/plugin-auth-backend": "^0.13.0-next.1", "@backstage/plugin-auth-node": "^0.2.0-next.0", "@backstage/plugin-azure-devops-backend": "^0.3.10-next.0", - "@backstage/plugin-badges-backend": "^0.1.25-next.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", - "@backstage/plugin-code-coverage-backend": "^0.1.29-next.0", + "@backstage/plugin-badges-backend": "^0.1.25-next.1", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", + "@backstage/plugin-code-coverage-backend": "^0.1.29-next.1", "@backstage/plugin-graphql-backend": "^0.1.21-next.0", - "@backstage/plugin-jenkins-backend": "^0.1.20-next.0", + "@backstage/plugin-jenkins-backend": "^0.1.20-next.1", "@backstage/plugin-kubernetes-backend": "^0.4.14-next.0", "@backstage/plugin-kafka-backend": "^0.2.24-next.0", - "@backstage/plugin-permission-backend": "^0.5.6-next.0", - "@backstage/plugin-permission-common": "^0.5.3", - "@backstage/plugin-permission-node": "^0.5.6-next.0", + "@backstage/plugin-permission-backend": "^0.5.6-next.1", + "@backstage/plugin-permission-common": "^0.6.0-next.0", + "@backstage/plugin-permission-node": "^0.6.0-next.1", "@backstage/plugin-proxy-backend": "^0.2.25-next.0", "@backstage/plugin-rollbar-backend": "^0.1.28-next.0", - "@backstage/plugin-scaffolder-backend": "^1.0.1-next.0", - "@backstage/plugin-scaffolder-backend-module-rails": "^0.3.6-next.0", - "@backstage/plugin-search-backend": "^0.5.0-next.0", + "@backstage/plugin-scaffolder-backend": "^1.1.0-next.1", + "@backstage/plugin-scaffolder-backend-module-rails": "^0.3.6-next.1", + "@backstage/plugin-search-backend": "^0.5.0-next.1", "@backstage/plugin-search-backend-node": "^0.5.3-next.0", "@backstage/plugin-search-backend-module-elasticsearch": "^0.1.3-next.0", "@backstage/plugin-search-backend-module-pg": "^0.3.2-next.0", - "@backstage/plugin-techdocs-backend": "^1.0.1-next.0", - "@backstage/plugin-tech-insights-backend": "^0.2.11-next.0", - "@backstage/plugin-tech-insights-node": "^0.2.9-next.0", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.15-next.0", - "@backstage/plugin-todo-backend": "^0.1.28-next.0", + "@backstage/plugin-techdocs-backend": "^1.0.1-next.1", + "@backstage/plugin-tech-insights-backend": "^0.3.0-next.1", + "@backstage/plugin-tech-insights-node": "^0.2.9-next.1", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.15-next.1", + "@backstage/plugin-todo-backend": "^0.1.28-next.1", "@gitbeaker/node": "^35.1.0", "@octokit/rest": "^18.5.3", "better-sqlite3": "^7.5.0", @@ -74,7 +74,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/dockerode": "^3.3.0", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5" diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 8e4eed4cea..b01635a0e9 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -38,7 +38,7 @@ "cross-fetch": "^3.1.5" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jest": "^26.0.7", "msw": "^0.35.0" }, diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 4fec087f11..d1389733ed 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -43,7 +43,7 @@ "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jest": "^26.0.7", "@types/json-schema": "^7.0.5", "@types/lodash": "^4.14.151", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 0887303913..562f56bb77 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/cli +## 0.17.0-next.1 + +### Minor Changes + +- 1f7d4763ab: **BREAKING**: Bump the version range of `jest` from `^26.0.1` to `^27.5.1`. You can find the complete list of breaking changes [here](https://github.com/facebook/jest/releases/tag/v27.0.0). + + We strongly recommend to have completed the [package role migration](https://backstage.io/docs/tutorials/package-role-migration) before upgrading to this version, as the package roles are used to automatically determine the testing environment for each package. If you instead want to set an explicit test environment for each package, you can do so for example in the `"jest"` section in `package.json`. The default test environment for all packages is now `node`, which is also the new Jest default. + + Note that one of the breaking changes of Jest 27 is that the `jsdom` environment no longer includes `setImmediate` and `clearImmediate`, which means you might need to update some of your frontend packages. Another notable change is that `jest.useFakeTimers` now defaults to the `'modern'` implementation, which also mocks microtasks. + +### Patch Changes + +- c54ce828bd: build(deps): bump `eslint-plugin-jest` from 25.3.4 to 26.1.2 +- f151dfee5a: build(deps): bump `eslint-webpack-plugin` from 2.6.0 to 3.1.1 +- 7e7ba704be: build(deps): bump `@spotify/eslint-config-base` from 12.0.0 to 13.0.0 +- ecd72391fb: build(deps): bump `@spotify/eslint-config-typescript` +- 5b3079694e: Stop logging "Stopped watcher" when shutting down the development backend. + ## 0.16.1-next.0 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index a2ef979218..5007a5e5ee 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.16.1-next.0", + "version": "0.17.0-next.1", "private": false, "publishConfig": { "access": "public" @@ -122,13 +122,13 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@types/diff": "^5.0.0", "@types/express": "^4.17.6", diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index 6caaaf28b0..dd37f90369 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -49,8 +49,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/cli": "^0.17.0-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 3406f8b876..e51f041884 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -79,8 +79,8 @@ }, "devDependencies": { "@backstage/core-app-api": "^1.0.1-next.0", - "@backstage/cli": "^0.16.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/cli": "^0.17.0-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index c47978f42b..35c716863a 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -46,9 +46,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 71b76f0e0a..1942da1bbf 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,76 @@ # @backstage/create-app +## 0.4.25-next.0 + +### Patch Changes + +- 1691c6c5c2: Made `User` and `Group` entity kinds not permitted by the default + `catalog.rules` config. + + The effect of this is that after creating a new Backstage repository, its + catalog no longer permits regular users to register `User` or `Group` entities + using the Backstage interface. Additionally, if you have config locations that + result in `User` or `Group` entities, you need to add those kinds to its own + specific rules: + + ```yaml + catalog: + locations: + # This applies for example to url type locations + - type: url + target: https://example.com/org.yaml + rules: + - allow: [User, Group] + # But also note that this applies to ALL org location types! + - type: github-org + target: https://github.com/my-org-name + rules: + - allow: [User, Group] + ``` + + This rule change does NOT affect entity providers, only things that are emitted + by entity processors. + + We recommend that this change is applied to your own Backstage repository, since + it makes it impossible for regular end users to affect your org data through + e.g. YAML files. To do so, remove the two kinds from the default rules in your config: + + ```diff + catalog: + rules: + - - allow: [Component, System, API, Group, User, Resource, Location] + + - allow: [Component, System, API, Resource, Location] + ``` + + And for any location that in any way results in org data being ingested, add the corresponding rule to it: + + ```diff + catalog: + locations: + - type: github-org + target: https://github.com/my-org-name + + rules: + + - allow: [User, Group] + ``` + +- 0e911394d2: Remove the `knex` package that is installed in the `packages/backend` as it's provided by the `@backstage/*` packages for you automatically. You can make the following change in your `packages/backend/package.json` if you wish to apply this change. + + ```diff + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + - "migrate:create": "knex migrate:make -x ts" + ``` + + ```diff + "express": "^4.17.1", + "express-promise-router": "^4.1.0", + - "knex": "^0.21.6", + "pg": "^8.3.0", + ``` + +- c07d9f9e1c: Add helpful README.md files in the original `packages` and `plugins` folders + ## 0.4.24 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 16dbc00d10..964250f398 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.4.24", + "version": "0.4.25-next.0", "private": false, "publishConfig": { "access": "public" diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index fba771a77f..ac5d30aa39 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -33,14 +33,14 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/app-defaults": "^1.0.1-next.0", + "@backstage/app-defaults": "^1.0.1-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/catalog-model": "^1.0.1-next.0", - "@backstage/integration-react": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/integration-react": "^1.0.1-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -59,7 +59,7 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jest": "^26.0.7", "@types/node": "^14.14.32" }, diff --git a/packages/errors/package.json b/packages/errors/package.json index 104131b7b9..aad43f6918 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -38,7 +38,7 @@ "serialize-error": "^8.0.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jest": "^26.0.7" }, "files": [ diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index df677fe2fa..ddcd61a667 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/integration-react +## 1.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 93182d468b..70902e8fb3 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-react", "description": "Frontend package for managing integrations towards external systems", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -27,7 +27,7 @@ "@backstage/config": "^1.0.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -38,9 +38,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 0968754394..2b1d93ea57 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/integration +## 1.1.0-next.1 + +### Minor Changes + +- b7436743cb: Gerrit integration: Added an optional configuration to set the Gitiles base url. + +### Patch Changes + +- 1691c6c5c2: Clarify that config locations that emit User and Group kinds now need to declare so in the `catalog.locations.[].rules` + ## 1.0.1-next.0 ### Patch Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index c7c034c61e..f0f2c449c1 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration", "description": "Helpers for managing integrations towards external systems", - "version": "1.0.1-next.0", + "version": "1.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -42,9 +42,9 @@ "lodash": "^4.17.21" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/config-loader": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@types/jest": "^26.0.7", "@types/luxon": "^2.0.4", "msw": "^0.35.0" diff --git a/packages/search-common/CHANGELOG.md b/packages/search-common/CHANGELOG.md index b0d255b47c..41e090f6fc 100644 --- a/packages/search-common/CHANGELOG.md +++ b/packages/search-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/search-common +## 0.3.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-common@0.3.3-next.1 + ## 0.3.3-next.0 ### Patch Changes diff --git a/packages/search-common/package.json b/packages/search-common/package.json index d56f3dba8e..58cf4d49cc 100644 --- a/packages/search-common/package.json +++ b/packages/search-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/search-common", "description": "No longer maintained. Use @backstage/plugin-search-common instead.", - "version": "0.3.3-next.0", + "version": "0.3.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -35,7 +35,7 @@ "url": "https://github.com/backstage/backstage/issues" }, "dependencies": { - "@backstage/plugin-search-common": "0.3.3-next.0" + "@backstage/plugin-search-common": "0.3.3-next.1" }, "devDependencies": {}, "jest": { diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index c395e6823a..3f80ade3e6 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,17 @@ # techdocs-cli-embedded-app +## 0.2.69-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.17.0-next.1 + - @backstage/test-utils@1.0.1-next.1 + - @backstage/plugin-catalog@1.1.0-next.1 + - @backstage/plugin-techdocs@1.0.1-next.1 + - @backstage/integration-react@1.0.1-next.1 + - @backstage/app-defaults@1.0.1-next.1 + ## 0.2.69-next.0 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index c172f72a48..4330ba46f3 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -1,23 +1,23 @@ { "name": "techdocs-cli-embedded-app", - "version": "0.2.69-next.0", + "version": "0.2.69-next.1", "private": true, "backstage": { "role": "frontend" }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.1-next.0", + "@backstage/app-defaults": "^1.0.1-next.1", "@backstage/catalog-model": "^1.0.1-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/config": "^1.0.0", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/integration-react": "^1.0.1-next.0", - "@backstage/plugin-catalog": "^1.0.1-next.0", - "@backstage/plugin-techdocs": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/integration-react": "^1.0.1-next.1", + "@backstage/plugin-catalog": "^1.1.0-next.1", + "@backstage/plugin-techdocs": "^1.0.1-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", @@ -29,7 +29,7 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index b0843fc40d..7b03f0d3ab 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -37,7 +37,7 @@ "techdocs-cli": "bin/techdocs-cli" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/commander": "^2.12.2", "@types/fs-extra": "^9.0.6", "@types/http-proxy": "^1.17.4", @@ -62,11 +62,11 @@ "ext": "ts" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/cli-common": "^0.1.8", "@backstage/config": "^1.0.0", - "@backstage/plugin-techdocs-node": "^1.0.1-next.0", + "@backstage/plugin-techdocs-node": "^1.0.1-next.1", "@types/dockerode": "^3.3.0", "commander": "^6.1.0", "dockerode": "^3.3.1", diff --git a/packages/techdocs-common/CHANGELOG.md b/packages/techdocs-common/CHANGELOG.md index d0a2449784..145b2adb9d 100644 --- a/packages/techdocs-common/CHANGELOG.md +++ b/packages/techdocs-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/techdocs-common +## 0.11.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-node@1.0.1-next.1 + ## 0.11.14-next.0 ### Patch Changes diff --git a/packages/techdocs-common/package.json b/packages/techdocs-common/package.json index 17058e81e6..3c2dc8bcf9 100644 --- a/packages/techdocs-common/package.json +++ b/packages/techdocs-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/techdocs-common", "description": "No longer maintained. Use @backstage/plugin-techdocs-node instead.", - "version": "0.11.14-next.0", + "version": "0.11.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -36,7 +36,7 @@ "url": "https://github.com/backstage/backstage/issues" }, "dependencies": { - "@backstage/plugin-techdocs-node": "1.0.1-next.0" + "@backstage/plugin-techdocs-node": "1.0.1-next.1" }, "devDependencies": {}, "jest": { diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index 443b42c579..f2561ec416 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/test-utils +## 1.0.1-next.1 + +### Patch Changes + +- c98d271466: Use updated types from `@backstage/plugin-permission-common` +- Updated dependencies + - @backstage/plugin-permission-react@0.4.0-next.0 + - @backstage/plugin-permission-common@0.6.0-next.0 + ## 1.0.1-next.0 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 36e2f32ca7..8d7dd24b85 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "private": false, "publishConfig": { "access": "public", @@ -36,8 +36,8 @@ "@backstage/config": "^1.0.0", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-permission-common": "^0.5.3", - "@backstage/plugin-permission-react": "^0.3.4", + "@backstage/plugin-permission-common": "^0.6.0-next.0", + "@backstage/plugin-permission-react": "^0.4.0-next.0", "@backstage/theme": "^0.2.15", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", @@ -55,7 +55,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jest": "^26.0.7", "@types/node": "^14.14.32", "msw": "^0.35.0" diff --git a/packages/theme/package.json b/packages/theme/package.json index 95cd36309e..5bcfd328e0 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -36,7 +36,7 @@ "@material-ui/core": "^4.12.2" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist" diff --git a/packages/types/package.json b/packages/types/package.json index 44472cc530..2c2aba560f 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -34,7 +34,7 @@ }, "dependencies": {}, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/zen-observable": "^0.8.0", "zen-observable": "^0.8.15" }, diff --git a/packages/version-bridge/package.json b/packages/version-bridge/package.json index 1b57e71ba9..a03e3d9f75 100644 --- a/packages/version-bridge/package.json +++ b/packages/version-bridge/package.json @@ -37,7 +37,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2" diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index 12831093a7..021db97be8 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -22,7 +22,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@types/express": "*", "express": "^4.17.1", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/http-proxy-middleware": "^0.19.3", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index c021c197bb..8237490ac3 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -27,8 +27,8 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/app-defaults": "^1.0.1-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/app-defaults": "^1.0.1-next.1", + "@backstage/cli": "^0.17.0-next.1", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/allure/package.json b/plugins/allure/package.json index d5093fdb04..18bf6646e5 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -28,7 +28,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index b493e95eaa..f9281e4c86 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -38,10 +38,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 41e7f12ff3..bda73686b6 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -36,10 +36,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index 8ea14ac0e4..f9daf8967c 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-api-docs +## 0.8.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/plugin-catalog@1.1.0-next.1 + ## 0.8.4-next.0 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index efd7d49fa8..205188093f 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-api-docs", "description": "A Backstage plugin that helps represent API entities in the frontend", - "version": "0.8.4-next.0", + "version": "0.8.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,8 +37,8 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog": "^1.1.0-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -56,10 +56,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 541afc873d..e7433aa9ae 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -33,7 +33,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config-loader": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/types": "^1.0.0", @@ -50,8 +50,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@backstage/types": "^1.0.0", "@types/supertest": "^2.0.8", "mock-fs": "^5.1.0", diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index 1430e2b3f6..96ddb6afe8 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend +## 0.13.0-next.1 + +### Patch Changes + +- a45bce06e3: Handle trailing slashes on GitHub `enterpriseInstanceUrl` settings +- Updated dependencies + - @backstage/backend-common@0.13.2-next.1 + ## 0.13.0-next.0 ### Minor Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 43813a5773..1cf2baa68e 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend", "description": "A Backstage backend plugin that handles authentication", - "version": "0.13.0-next.0", + "version": "0.13.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,7 +34,7 @@ }, "dependencies": { "@backstage/plugin-auth-node": "^0.2.0-next.0", - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", @@ -76,8 +76,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/express-session": "^1.17.2", diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index c50bdd06ba..dac6c3a584 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -23,7 +23,7 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "jose": "^1.27.1", @@ -31,7 +31,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "msw": "^0.35.0", "uuid": "^8.0.0" }, diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 0af0ba9658..22301e8fbd 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -23,7 +23,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/plugin-azure-devops-common": "^0.2.2", "@types/express": "^4.17.6", @@ -35,7 +35,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", "msw": "^0.35.0" diff --git a/plugins/azure-devops-common/package.json b/plugins/azure-devops-common/package.json index 73463fcc57..eadce6bb88 100644 --- a/plugins/azure-devops-common/package.json +++ b/plugins/azure-devops-common/package.json @@ -32,7 +32,7 @@ "clean": "backstage-cli package clean" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist" diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index 15c09a2a3b..49544120c2 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -35,7 +35,7 @@ "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/plugin-azure-devops-common": "^0.2.2", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,10 +49,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index 9e6b727a37..fee6096dd0 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-badges-backend +## 0.1.25-next.1 + +### Patch Changes + +- 4c93fd36ee: allow overriding `DefaultBadgeBuilder.getMarkdownCode` +- Updated dependencies + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.25-next.0 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index 4148066eb9..caadaa460e 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges-backend", "description": "A Backstage backend plugin that generates README badges for your entities", - "version": "0.1.25-next.0", + "version": "0.1.25-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", @@ -48,7 +48,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/badges/package.json b/plugins/badges/package.json index 3c01608ffc..f03717cfb0 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -34,7 +34,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,10 +46,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 7132abd9b7..15b7596ef1 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -23,8 +23,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", - "@backstage/backend-test-utils": "^0.1.23-next.0", + "@backstage/backend-common": "^0.13.2-next.1", + "@backstage/backend-test-utils": "^0.1.23-next.1", "@backstage/config": "^1.0.0", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index 888df89ced..e859f1f1ec 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-bazaar +## 0.1.19-next.1 + +### Patch Changes + +- 69738379c7: Pass authorization header with Backstage token to backend requests. +- Updated dependencies + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/cli@0.17.0-next.1 + - @backstage/plugin-catalog@1.1.0-next.1 + ## 0.1.19-next.0 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index a2ead73157..b158a23f5b 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.1.19-next.0", + "version": "0.1.19-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,11 +26,11 @@ "dependencies": { "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog": "^1.1.0-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -47,7 +47,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/dev-utils": "^1.0.1-next.0", "@testing-library/jest-dom": "^5.10.1", "cross-fetch": "^3.1.5" diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index c48eda52b1..ffe4d3282b 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -27,7 +27,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index 78f6610e92..dc96fa35fa 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 4c9062eb84..23b5055e6a 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", "description": "A Backstage catalog backend module that helps integrate towards AWS", - "version": "0.1.4-next.0", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,11 +33,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "aws-sdk": "^2.840.0", "lodash": "^4.17.21", @@ -45,7 +45,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/lodash": "^4.14.151", "aws-sdk-mock": "^5.2.1", "yaml": "^1.9.2" diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index 71a1962750..7846323524 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 6ca9bbe712..076d35babf 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", "description": "A Backstage catalog backend module that helps integrate towards Azure", - "version": "0.1.2-next.0", + "version": "0.1.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,12 +33,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", "msw": "^0.35.0", @@ -46,8 +46,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md index 50771795bf..14efa3ad71 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index c13557596d..cec1703166 100644 --- a/plugins/catalog-backend-module-bitbucket/package.json +++ b/plugins/catalog-backend-module-bitbucket/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket", - "version": "0.1.2-next.0", + "version": "0.1.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,12 +33,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", "msw": "^0.35.0", @@ -46,8 +46,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index 13c38a58eb..7b143c6426 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-github +## 0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 0dc8ebebf9..ed0b967942 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-github", "description": "A Backstage catalog backend module that helps integrate towards GitHub", - "version": "0.1.2-next.0", + "version": "0.1.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,12 +33,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "@octokit/graphql": "^4.5.8", "lodash": "^4.17.21", @@ -47,8 +47,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index 97e40ddba2..ad38bd6963 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 412acacefb..f0254d7e99 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", "description": "A Backstage catalog backend module that helps integrate towards GitLab", - "version": "0.1.2-next.0", + "version": "0.1.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,12 +33,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", "msw": "^0.35.0", @@ -46,8 +46,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 1e54237e60..ad30b085a7 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.4.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/backend-tasks@0.3.0-next.1 + ## 0.4.2-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 3b760a4df6..41b9378a83 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", "description": "A Backstage catalog backend module that helps integrate towards LDAP", - "version": "0.4.2-next.0", + "version": "0.4.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,11 +33,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-tasks": "^0.2.2-next.0", + "@backstage/backend-tasks": "^0.3.0-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "@types/ldapjs": "^2.2.0", "ldapjs": "^2.2.0", @@ -46,7 +46,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index 0f907f969d..4a0c147854 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.3.1-next.1 + +### Patch Changes + +- 1691c6c5c2: Clarify that config locations that emit User and Group kinds now need to declare so in the `catalog.locations.[].rules` +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/backend-tasks@0.3.0-next.1 + ## 0.3.1-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 8a7e76dbb9..0afaf27f75 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", - "version": "0.3.1-next.0", + "version": "0.3.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,10 +34,10 @@ }, "dependencies": { "@azure/msal-node": "^1.1.0", - "@backstage/backend-tasks": "^0.2.2-next.0", + "@backstage/backend-tasks": "^0.3.0-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", "@microsoft/microsoft-graph-types": "^2.6.0", "@types/node-fetch": "^2.5.12", "lodash": "^4.17.21", @@ -48,9 +48,9 @@ "qs": "^6.9.4" }, "devDependencies": { - "@backstage/backend-common": "^0.13.2-next.0", - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-common": "^0.13.2-next.1", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/lodash": "^4.14.151", "msw": "^0.35.0" }, diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index c84f85aafe..f2c5b4121e 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,56 @@ # @backstage/plugin-catalog-backend +## 1.1.0-next.1 + +### Minor Changes + +- 8012ac46a0: **BREAKING (alpha api):** Replace `createCatalogPolicyDecision` export with `createCatalogConditionalDecision`, which accepts a permission parameter of type `ResourcePermission<'catalog-entity'>` along with conditions. The permission passed is expected to be the handled permission in `PermissionPolicy#handle`, whose type must first be narrowed using methods like `isPermission` and `isResourcePermission`: + + ```typescript + class TestPermissionPolicy implements PermissionPolicy { + async handle( + request: PolicyQuery, + _user?: BackstageIdentityResponse, + ): Promise { + if ( + // Narrow type of `request.permission` to `ResourcePermission<'catalog-entity'> + isResourcePermission(request.permission, RESOURCE_TYPE_CATALOG_ENTITY) + ) { + return createCatalogConditionalDecision( + request.permission, + catalogConditions.isEntityOwner( + _user?.identity.ownershipEntityRefs ?? [], + ), + ); + } + + return { + result: AuthorizeResult.ALLOW, + }; + ``` + +- 8012ac46a0: **BREAKING:** Mark CatalogBuilder#addPermissionRules as @alpha. +- fb02d2d94d: export `locationSpecToLocationEntity` + +### Patch Changes + +- ada4446733: Specify type of `visibilityPermission` property on collators and collator factories. +- 1691c6c5c2: Clarify that config locations that emit User and Group kinds now need to declare so in the `catalog.locations.[].rules` +- 8012ac46a0: Handle changes to @alpha permission-related types. + + - All exported permission rules and conditions now have a `resourceType`. + - `createCatalogConditionalDecision` now expects supplied conditions to have the appropriate `resourceType`. + - `createCatalogPermissionRule` now expects `resourceType` as part of the supplied rule object. + - Introduce new `CatalogPermissionRule` convenience type. + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/plugin-permission-node@0.6.0-next.1 + - @backstage/plugin-catalog-common@1.0.1-next.1 + - @backstage/backend-common@0.13.2-next.1 + - @backstage/plugin-search-common@0.3.3-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 0470b599b3..ec4ef739df 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend", "description": "The Backstage backend plugin that provides the Backstage catalog", - "version": "1.0.1-next.0", + "version": "1.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,17 +34,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-common": "^1.0.1-next.0", - "@backstage/plugin-permission-common": "^0.5.3", - "@backstage/plugin-permission-node": "^0.5.6-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-common": "^1.0.1-next.1", + "@backstage/plugin-permission-common": "^0.6.0-next.0", + "@backstage/plugin-permission-node": "^0.6.0-next.1", "@backstage/plugin-scaffolder-common": "^1.0.1-next.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@backstage/types": "^1.0.0", "@types/express": "^4.17.6", "codeowners-utils": "^1.0.2", @@ -68,9 +68,9 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", - "@backstage/plugin-permission-common": "^0.5.3", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", + "@backstage/plugin-permission-common": "^0.6.0-next.0", "@backstage/plugin-search-backend-node": "0.5.3-next.0", "@types/core-js": "^2.5.4", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index 5227daf20b..d362c20d27 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-common +## 1.0.1-next.1 + +### Patch Changes + +- ada4446733: Use `createPermission` helper when creating permissions. +- 8c8bee47f4: Add `@alpha` `CatalogEntityPermission` convenience type, available for import from `@backstage/plugin-catalog-common/alpha`. +- Updated dependencies + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/search-common@0.3.3-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index 7f30d912c7..2db301a8fd 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-common", "description": "Common functionalities for the catalog plugin", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,11 +34,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-permission-common": "^0.5.3", - "@backstage/search-common": "^0.3.3-next.0" + "@backstage/plugin-permission-common": "^0.6.0-next.0", + "@backstage/search-common": "^0.3.3-next.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist", diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index fb7a4eadb2..d2726457d0 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-graph +## 0.2.16-next.1 + +### Patch Changes + +- 77800a32dd: Added renderNode and renderLabel property to EntityRelationsGraph to support customization using CustomNode and CustomLabel components +- Updated dependencies + - @backstage/plugin-catalog-react@1.0.1-next.1 + ## 0.2.16-next.0 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 1eb8fafd6d..84eae3d254 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.2.16-next.0", + "version": "0.2.16-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,7 +28,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -45,11 +45,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", - "@backstage/plugin-catalog": "^1.0.1-next.0", + "@backstage/cli": "^0.17.0-next.1", + "@backstage/plugin-catalog": "^1.1.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index e99c21170f..0f5fad7a14 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -46,8 +46,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/cli": "^0.17.0-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@graphql-codegen/cli": "^2.3.1", "@graphql-codegen/typescript": "^2.4.2", "@graphql-codegen/typescript-resolvers": "^2.4.3", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 36f33d8f21..68dcb89982 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-import +## 0.8.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/integration-react@1.0.1-next.1 + ## 0.8.7-next.0 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index bee05abc28..bb8d83c191 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-import", "description": "A Backstage plugin the helps you import entities into your catalog", - "version": "0.8.7-next.0", + "version": "0.8.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -40,9 +40,9 @@ "@backstage/config": "^1.0.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/integration-react": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/integration-react": "^1.0.1-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -60,10 +60,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index 165209f0c8..57931c5db9 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-react +## 1.0.1-next.1 + +### Patch Changes + +- 0ffd88a90e: Prevent permissions with types other than `ResourcePermission<'catalog-entity'>` from being used with the `useEntityPermission` hook. +- 4af82967f4: Decouple tags picker from backend entities + + `EntityTagPicker` fetches all the tags independently and it doesn't require all the entities to be available client side. + +- 37b04b5a5e: Removed broken link from Labels section of entity inspector. +- 4431873583: Update `usePermission` usage. +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-permission-react@0.4.0-next.0 + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/plugin-catalog-common@1.0.1-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 62b101d909..f5966493e7 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-react", "description": "A frontend library that helps other Backstage plugins interact with the catalog", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -39,10 +39,10 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-common": "^1.0.1-next.0", - "@backstage/plugin-permission-common": "^0.5.3", - "@backstage/plugin-permission-react": "^0.3.4", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-common": "^1.0.1-next.1", + "@backstage/plugin-permission-common": "^0.6.0-next.0", + "@backstage/plugin-permission-react": "^0.4.0-next.0", "@backstage/theme": "^0.2.15", "@backstage/types": "^1.0.0", "@backstage/version-bridge": "^1.0.0", @@ -63,11 +63,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", - "@backstage/plugin-catalog-common": "^1.0.1-next.0", + "@backstage/plugin-catalog-common": "^1.0.1-next.1", "@backstage/plugin-scaffolder-common": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 1f484e58d0..4d6c562d35 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog +## 1.1.0-next.1 + +### Minor Changes + +- bdc61b4002: Expose 'initalFilter' through initialKind prop on Catalog Page. + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/plugin-catalog-common@1.0.1-next.1 + - @backstage/integration-react@1.0.1-next.1 + - @backstage/plugin-search-common@0.3.3-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 053b35a519..db6e2b5cfd 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog", "description": "The Backstage plugin for browsing the Backstage catalog", - "version": "1.0.1-next.0", + "version": "1.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -39,10 +39,10 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration-react": "^1.0.1-next.0", - "@backstage/plugin-catalog-common": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/integration-react": "^1.0.1-next.1", + "@backstage/plugin-catalog-common": "^1.0.1-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@backstage/theme": "^0.2.15", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", @@ -60,11 +60,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/plugin-permission-react": "^0.3.4", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/plugin-permission-react": "^0.4.0-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 2ce855e625..32d6c99271 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -38,7 +38,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -55,10 +55,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index a04b5537a4..593dfff38a 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -37,7 +37,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -52,10 +52,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 5d77bb39b7..89feeca5b4 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -26,7 +26,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index 4eb5c949e4..52420f5f09 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-code-coverage-backend +## 0.1.29-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.29-next.0 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 4dd916b75a..5a31ecead8 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage-backend", "description": "A Backstage backend plugin that helps you keep track of your code coverage", - "version": "0.1.29-next.0", + "version": "0.1.29-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,12 +23,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -39,7 +39,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/express-xml-bodyparser": "^0.3.2", "@types/supertest": "^2.0.8", "msw": "^0.35.0", diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 09f2b77a65..fd65f00eb8 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -29,7 +29,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,10 +46,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 376d1c2ecc..64bd4a683b 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -41,10 +41,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 921c9a5aab..97962bf856 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -60,10 +60,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index 82d247dd9a..8615543348 100644 --- a/plugins/explore-react/package.json +++ b/plugins/explore-react/package.json @@ -36,9 +36,9 @@ "@backstage/core-plugin-api": "^1.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 6eb013cb9c..2913e89150 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -37,7 +37,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/plugin-explore-react": "^0.0.15", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index a05734b0a4..330defcf8c 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -27,7 +27,7 @@ "dependencies": { "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -39,10 +39,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 4d1cc15ac2..0a9931fd48 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -39,7 +39,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md index 788ef3c0f4..6b8fcc5e3a 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-gcalendar +## 0.3.0-next.1 + +### Minor Changes + +- c6616e6fc9: Fixed issue when not all calendars were fetched for some accounts + ## 0.2.1-next.0 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 99fa2c6eeb..5489cd2e19 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.2.1-next.0", + "version": "0.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -42,10 +42,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 4e9351d9f0..2774a47dea 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md index 03909158c0..9bcc2a5c79 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-git-release-manager +## 0.3.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + ## 0.3.17-next.0 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 8be28dddb2..74b598aebd 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-git-release-manager", "description": "A Backstage plugin that helps you manage releases in git", - "version": "0.3.17-next.0", + "version": "0.3.17-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,7 +26,7 @@ "dependencies": { "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index fab6de3cd1..8c3c98531d 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-github-actions +## 0.5.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-catalog-react@1.0.1-next.1 + ## 0.5.4-next.0 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 756e0b559b..417b8cede9 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-actions", "description": "A Backstage plugin that integrates towards GitHub Actions", - "version": "0.5.4-next.0", + "version": "0.5.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -39,8 +39,8 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -55,10 +55,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 3ef48342f8..197e25b88e 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-github-deployments +## 0.1.35-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/integration-react@1.0.1-next.1 + ## 0.1.35-next.0 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index af1c6cbcc0..78af6e1798 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-deployments", "description": "A Backstage plugin that integrates towards GitHub Deployments", - "version": "0.1.35-next.0", + "version": "0.1.35-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,9 +28,9 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/integration-react": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/integration-react": "^1.0.1-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 2c3a6b9d25..125d4e25b1 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -48,10 +48,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 5b0334f2fd..4d854c7bbc 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -35,7 +35,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,10 +49,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 6b896c76e4..60d6f9f1ea 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -48,10 +48,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 40a2c4f651..a4dd95076b 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/plugin-catalog-graphql": "^0.3.8-next.0", "@graphql-tools/schema": "^8.3.1", @@ -51,7 +51,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "eslint-plugin-graphql": "^4.0.0", "msw": "^0.35.0", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 30fd09d5a4..13c25f98f1 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-home +## 0.4.20-next.1 + +### Patch Changes + +- ac323de4ad: - Adds new `HomePageStackOverflowQuestions` component which renders a list of stack overflow questions on your homepage. + + - Exports `ComponentRenderer` type. + +- Updated dependencies + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/plugin-stack-overflow@0.1.0-next.0 + ## 0.4.20-next.0 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index fd83c6ff28..5c9ad5e24a 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home", "description": "A Backstage plugin that helps you build a home page", - "version": "0.4.20-next.0", + "version": "0.4.20-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,9 +37,9 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/plugin-search": "^0.7.5-next.0", - "@backstage/plugin-stack-overflow": "^0.0.0", + "@backstage/plugin-stack-overflow": "^0.1.0-next.0", "@backstage/theme": "^0.2.15", "@backstage/config": "^0.1.15", "@material-ui/core": "^4.12.2", @@ -54,10 +54,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 35bc07cd6b..f7f7149962 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -28,7 +28,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 602af2a0d1..34d3a54730 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-jenkins-backend +## 0.1.20-next.1 + +### Patch Changes + +- ca91107110: Fixed possible type error if jenkins response contains null values +- Updated dependencies + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/plugin-jenkins-common@0.1.3-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.20-next.0 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 86585ff5d3..f326ce2247 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins-backend", "description": "A Backstage backend plugin that integrates towards Jenkins", - "version": "0.1.20-next.0", + "version": "0.1.20-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,14 +25,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/plugin-auth-node": "^0.2.0-next.0", - "@backstage/plugin-jenkins-common": "^0.1.3-next.0", - "@backstage/plugin-permission-common": "^0.5.3", + "@backstage/plugin-jenkins-common": "^0.1.3-next.1", + "@backstage/plugin-permission-common": "^0.6.0-next.0", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -41,7 +41,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jenkins": "^0.23.1", "@types/supertest": "^2.0.8", "msw": "^0.35.0", diff --git a/plugins/jenkins-common/CHANGELOG.md b/plugins/jenkins-common/CHANGELOG.md index 712d0a1519..6f7cff53bb 100644 --- a/plugins/jenkins-common/CHANGELOG.md +++ b/plugins/jenkins-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-jenkins-common +## 0.1.3-next.1 + +### Patch Changes + +- ada4446733: Use `createPermission` helper when creating permissions. +- Updated dependencies + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/plugin-catalog-common@1.0.1-next.1 + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index 7362038f53..342d645125 100644 --- a/plugins/jenkins-common/package.json +++ b/plugins/jenkins-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-jenkins-common", - "version": "0.1.3-next.0", + "version": "0.1.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,11 +22,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-catalog-common": "^1.0.1-next.0", - "@backstage/plugin-permission-common": "^0.5.3" + "@backstage/plugin-catalog-common": "^1.0.1-next.1", + "@backstage/plugin-permission-common": "^0.6.0-next.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist" diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 8f70bfa672..9c0b01b53c 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -39,8 +39,8 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", - "@backstage/plugin-jenkins-common": "^0.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", + "@backstage/plugin-jenkins-common": "^0.1.3-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -54,10 +54,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 0796f8c952..4deeefc788 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -35,7 +35,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", @@ -47,7 +47,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jest-when": "^2.7.2", "@types/lodash": "^4.14.151", "jest-when": "^3.1.0", diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 88d44a67a3..4228822e6b 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -27,7 +27,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -39,10 +39,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 9682d879b4..a55ec70780 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -35,7 +35,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", @@ -58,7 +58,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/aws4": "^1.5.1", "supertest": "^6.1.3", "aws-sdk-mock": "^5.2.1" diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index 3a519b0579..573f9ae2f9 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -42,7 +42,7 @@ "@kubernetes/client-node": "^0.16.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "jest": { "roots": [ diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 94585a2149..5278096b5a 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-kubernetes +## 0.6.4-next.1 + +### Patch Changes + +- 1023ee6353: export kubernetes components +- Updated dependencies + - @backstage/plugin-catalog-react@1.0.1-next.1 + ## 0.6.4-next.0 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 32cfbc87f6..f47d30c117 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes", "description": "A Backstage plugin that integrates towards Kubernetes", - "version": "0.6.4-next.0", + "version": "0.6.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,7 +38,7 @@ "@backstage/config": "^1.0.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/plugin-kubernetes-common": "^0.2.9-next.0", "@backstage/theme": "^0.2.15", "@kubernetes/client-node": "^0.16.0", @@ -57,10 +57,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 3c573e8d0b..6164ca0f31 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -39,7 +39,7 @@ "@backstage/config": "^1.0.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -51,10 +51,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index d086218151..ebea709493 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -27,14 +27,14 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/dev-utils": "^1.0.1-next.0", "@testing-library/jest-dom": "^5.10.1", "@types/react": "^16.13.1 || ^17.0.0", diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index edf3ffbf64..a6ee84ab5e 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 7525fe0490..3bbe6f959d 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-org +## 0.5.4-next.1 + +### Patch Changes + +- 111995470d: add aggregated ownership type for kind group in OwnershipCard +- Updated dependencies + - @backstage/plugin-catalog-react@1.0.1-next.1 + ## 0.5.4-next.0 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index 8b8c6709dc..eeb8d9656a 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-org", "description": "A Backstage plugin that helps you create entity pages for your organization", - "version": "0.5.4-next.0", + "version": "0.5.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -27,7 +27,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -44,10 +44,10 @@ }, "devDependencies": { "@backstage/catalog-client": "^1.0.1-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index a096f43e87..0324cede4f 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -37,7 +37,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -52,10 +52,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index e95e7cd7cb..382e8d2643 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@types/express": "*", "cross-fetch": "^3.0.6", @@ -35,7 +35,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "msw": "^0.35.0", "supertest": "^6.1.6" diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 4178ddb1ee..e4eed51eb0 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -29,7 +29,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -42,10 +42,10 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index 4b69bdbdc3..5bebcc8660 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-permission-backend +## 0.5.6-next.1 + +### Patch Changes + +- c98d271466: Use updated types from `@backstage/plugin-permission-common` +- 95284162d6: - Add more specific check for policies which return conditional decisions for non-resource permissions. + - Refine permission validation in authorize endpoint to differentiate between `BasicPermission` and `ResourcePermission` instances. +- Updated dependencies + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/plugin-permission-node@0.6.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.5.6-next.0 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 05e056a5d3..32d2a3872f 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend", - "version": "0.5.6-next.0", + "version": "0.5.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,12 +22,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/plugin-auth-node": "^0.2.0-next.0", - "@backstage/plugin-permission-common": "^0.5.3", - "@backstage/plugin-permission-node": "^0.5.6-next.0", + "@backstage/plugin-permission-common": "^0.6.0-next.0", + "@backstage/plugin-permission-node": "^0.6.0-next.1", "@types/express": "*", "dataloader": "^2.0.0", "express": "^4.17.1", @@ -39,7 +39,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/lodash": "^4.14.151", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", diff --git a/plugins/permission-common/CHANGELOG.md b/plugins/permission-common/CHANGELOG.md index 61722c29dd..48ab78d25c 100644 --- a/plugins/permission-common/CHANGELOG.md +++ b/plugins/permission-common/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-permission-common +## 0.6.0-next.0 + +### Minor Changes + +- 8012ac46a0: Add `resourceType` property to `PermissionCondition` type to allow matching them with `ResourcePermission` instances. +- c98d271466: Refactor api types into more specific, decoupled names. + + - **BREAKING:** + - Renamed `AuthorizeDecision` to `EvaluatePermissionResponse` + - Renamed `AuthorizeQuery` to `EvaluatePermissionRequest` + - Renamed `AuthorizeRequest` to `EvaluatePermissionRequestBatch` + - Renamed `AuthorizeResponse` to `EvaluatePermissionResponseBatch` + - Renamed `Identified` to `IdentifiedPermissionMessage` + - Add `PermissionMessageBatch` helper type + - Add `ConditionalPolicyDecision`, `DefinitivePolicyDecision`, and `PolicyDecision` types from `@backstage/plugin-permission-node` + +### Patch Changes + +- 8012ac46a0: Add `isPermission` helper method. +- 95284162d6: - Add more specific `Permission` types. + - Add `createPermission` helper to infer the appropriate type for some permission input. + - Add `isResourcePermission` helper to refine Permissions to ResourcePermissions. + ## 0.5.3 ### Patch Changes diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index 1919ae5167..4d979bf7b0 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-common", "description": "Isomorphic types and client for Backstage permissions and authorization", - "version": "0.5.3", + "version": "0.6.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { @@ -48,7 +48,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jest": "^26.0.7", "msw": "^0.35.0" } diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index 3ee804e333..a628313003 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,81 @@ # @backstage/plugin-permission-node +## 0.6.0-next.1 + +### Minor Changes + +- 8012ac46a0: **BREAKING**: Stronger typing in `PermissionPolicy` 🎉. + + Previously, it was entirely the responsibility of the `PermissionPolicy` author to only return `CONDITIONAL` decisions for permissions that are associated with a resource, and to return the correct kind of `PermissionCondition` instances inside the decision. Now, the policy authoring helpers provided in this package now ensure that the decision and permission match. + + **For policy authors**: rename and adjust api of `createConditionExports`. Previously, the function returned a factory for creating conditional decisions named `createPolicyDecision`, which had a couple of drawbacks: + + 1. The function always creates a _conditional_ policy decision, but this was not reflected in the name. + 2. Conditional decisions should only ever be returned from `PermissionPolicy#handle` for resource permissions, but there was nothing in the API that encoded this constraint. + + This change addresses the drawbacks above by making the following changes for policy authors: + + - The `createPolicyDecision` method has been renamed to `createConditionalDecision`. + - Along with conditions, the method now accepts a permission, which must be a `ResourcePermission`. This is expected to be the handled permission in `PermissionPolicy#handle`, whose type must first be narrowed using methods like `isPermission` and `isResourcePermission`: + + ```typescript + class TestPermissionPolicy implements PermissionPolicy { + async handle( + request: PolicyQuery, + _user?: BackstageIdentityResponse, + ): Promise { + if ( + // Narrow type of `request.permission` to `ResourcePermission<'catalog-entity'> + isResourcePermission(request.permission, RESOURCE_TYPE_CATALOG_ENTITY) + ) { + return createCatalogConditionalDecision( + request.permission, + catalogConditions.isEntityOwner( + _user?.identity.ownershipEntityRefs ?? [], + ), + ); + } + + return { + result: AuthorizeResult.ALLOW, + }; + ``` + + **BREAKING**: when creating `PermissionRule`s, provide a `resourceType`. + + ```diff + export const isEntityOwner = createCatalogPermissionRule({ + name: 'IS_ENTITY_OWNER', + description: 'Allow entities owned by the current user', + + resourceType: RESOURCE_TYPE_CATALOG_ENTITY, + apply: (resource: Entity, claims: string[]) => { + if (!resource.relations) { + return false; + } + + return resource.relations + .filter(relation => relation.type === RELATION_OWNED_BY) + .some(relation => claims.includes(relation.targetRef)); + }, + toQuery: (claims: string[]) => ({ + key: 'relations.ownedBy', + values: claims, + }), + }); + ``` + +- c98d271466: **BREAKING:** + + - Rename `PolicyAuthorizeQuery` to `PolicyQuery` + - Remove `PolicyDecision`, `DefinitivePolicyDecision`, and `ConditionalPolicyDecision`. These types are now exported from `@backstage/plugin-permission-common` + +### Patch Changes + +- 8012ac46a0: Fix signature of permission rule in test suites +- Updated dependencies + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/backend-common@0.13.2-next.1 + ## 0.5.6-next.0 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index 06667615bd..8bfa37b6a2 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-node", "description": "Common permission and authorization utilities for backend plugins", - "version": "0.5.6-next.0", + "version": "0.6.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,18 +33,18 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/plugin-auth-node": "^0.2.0-next.0", - "@backstage/plugin-permission-common": "^0.5.3", + "@backstage/plugin-permission-common": "^0.6.0-next.0", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "msw": "^0.35.0", "supertest": "^6.1.3" diff --git a/plugins/permission-react/CHANGELOG.md b/plugins/permission-react/CHANGELOG.md index 13597e9a1b..5617640d9b 100644 --- a/plugins/permission-react/CHANGELOG.md +++ b/plugins/permission-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-permission-react +## 0.4.0-next.0 + +### Minor Changes + +- 5bdcb8c45d: **BREAKING**: More restrictive typing for `usePermission` hook and `PermissionedRoute` component. It's no longer possible to pass a `resourceRef` unless the permission is of type `ResourcePermission`. + +### Patch Changes + +- c98d271466: Use updated types from `@backstage/plugin-permission-common` +- Updated dependencies + - @backstage/plugin-permission-common@0.6.0-next.0 + ## 0.3.4 ### Patch Changes diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index 3813970ebb..7a846f94eb 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-react", - "version": "0.3.4", + "version": "0.4.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,7 +33,7 @@ "dependencies": { "@backstage/config": "^1.0.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-permission-common": "^0.5.3", + "@backstage/plugin-permission-common": "^0.6.0-next.0", "cross-fetch": "^3.1.5", "react-router": "6.0.0-beta.0", "react-use": "^17.2.4", @@ -44,8 +44,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/cli": "^0.17.0-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@types/jest": "^26.0.7" diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index b9db54f637..603a411c33 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -32,7 +32,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -46,7 +46,7 @@ "yup": "^0.32.9" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/http-proxy-middleware": "^0.19.3", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 0f39b7b7ce..24fb97af92 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@types/express": "^4.17.6", "camelcase-keys": "^7.0.1", @@ -50,8 +50,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "msw": "^0.36.3", "supertest": "^6.1.3" diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index a0634ea57e..d4f8c476bc 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -38,7 +38,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 8c35a98a94..2472364736 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.1.0-next.1 + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.2.6-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 2c69da07f6..ba056e6bc6 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", - "version": "0.2.6-next.0", + "version": "0.2.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,10 +23,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-scaffolder-backend": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-scaffolder-backend": "^1.1.0-next.1", "@backstage/config": "^1.0.0", "@backstage/types": "^1.0.0", "command-exists": "^1.2.9", @@ -35,7 +35,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/fs-extra": "^9.0.1", "@types/mock-fs": "^4.13.0", "@types/jest": "^26.0.7", diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index e567e75099..9d7b814a5c 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.3.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.1.0-next.1 + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.3.6-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 8b009ff889..abb0bedf74 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", "description": "A module for the scaffolder backend that lets you template projects using Rails", - "version": "0.3.6-next.0", + "version": "0.3.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,17 +24,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", - "@backstage/plugin-scaffolder-backend": "^1.0.1-next.0", + "@backstage/backend-common": "^0.13.2-next.1", + "@backstage/plugin-scaffolder-backend": "^1.1.0-next.1", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "command-exists": "^1.2.9", "fs-extra": "^10.0.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/jest": "^26.0.7", "@types/node": "^14.14.32", "@types/command-exists": "^1.2.0", diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index e356619bed..8d0313bd1d 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.1.0-next.1 + ## 0.2.4-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index dc1e9e95be..948acc97fc 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-yeoman", - "version": "0.2.4-next.0", + "version": "0.2.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,13 +24,13 @@ }, "dependencies": { "@backstage/config": "^1.0.0", - "@backstage/plugin-scaffolder-backend": "^1.0.1-next.0", + "@backstage/plugin-scaffolder-backend": "^1.1.0-next.1", "@backstage/types": "^1.0.0", "winston": "^3.2.1", "yeoman-environment": "^3.9.1" }, "devDependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@types/jest": "^26.0.7" }, "files": [ diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index 7ff181b756..f10b36eabe 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-backend +## 1.1.0-next.1 + +### Minor Changes + +- 2a7d52ca2c: Override default commit message and author details in GitLab action +- f5f921dafb: Add new `draft` option to the `publish:github:pull-request` action. + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.1.0-next.1 + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 3ed587af2d..8866171efa 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend", "description": "The Backstage backend plugin that helps you create new things", - "version": "1.0.1-next.0", + "version": "1.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,13 +34,13 @@ "build:assets": "node scripts/build-nunjucks.js" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-backend": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-backend": "^1.1.0-next.1", "@backstage/plugin-scaffolder-common": "^1.0.1-next.0", "@backstage/types": "^1.0.0", "@gitbeaker/core": "^34.6.0", @@ -74,8 +74,8 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index fab057ce62..a9227ab790 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -43,6 +43,6 @@ "@backstage/types": "^1.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" } } diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index c1f4cfed3a..3b23e83057 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder +## 1.0.1-next.1 + +### Patch Changes + +- 4431873583: Update `usePermission` usage. +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-permission-react@0.4.0-next.0 + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/plugin-catalog-common@1.0.1-next.1 + - @backstage/integration-react@1.0.1-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 03a1443ca6..76fe863c06 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder", "description": "The Backstage plugin that helps you create new things", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -41,11 +41,11 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/integration-react": "^1.0.1-next.0", - "@backstage/plugin-catalog-common": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", - "@backstage/plugin-permission-react": "^0.3.4", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/integration-react": "^1.0.1-next.1", + "@backstage/plugin-catalog-common": "^1.0.1-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", + "@backstage/plugin-permission-react": "^0.4.0-next.0", "@backstage/plugin-scaffolder-common": "^1.0.1-next.0", "@backstage/theme": "^0.2.15", "@backstage/types": "^1.0.0", @@ -79,11 +79,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/plugin-catalog": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/plugin-catalog": "^1.1.0-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 3124762879..cb8eca0c18 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -25,7 +25,7 @@ "dependencies": { "@backstage/config": "^1.0.0", "@backstage/plugin-search-backend-node": "^0.5.3-next.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@elastic/elasticsearch": "7.13.0", "@acuris/aws-es-connection": "^2.2.0", "aws-sdk": "^2.948.0", @@ -34,8 +34,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.13.2-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-common": "^0.13.2-next.1", + "@backstage/cli": "^0.17.0-next.1", "@elastic/elasticsearch-mock": "^1.0.0" }, "files": [ diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index fe235c29ff..e0dc2a2ad2 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -23,15 +23,15 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/plugin-search-backend-node": "^0.5.3-next.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", "lodash": "^4.17.21", "knex": "^1.0.2" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0" + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist", diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 038087745f..e6fcac1398 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -24,15 +24,15 @@ }, "dependencies": { "@backstage/errors": "^1.0.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@types/lunr": "^2.3.3", "lodash": "^4.17.21", "lunr": "^2.3.9", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.13.2-next.0", - "@backstage/cli": "^0.16.1-next.0" + "@backstage/backend-common": "^0.13.2-next.1", + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist" diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index c51541a5d1..5dfcbecf31 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend +## 0.5.0-next.1 + +### Patch Changes + +- 30f9884359: Check for non-resource permissions when authorizing result-by-result in AuthorizedSearchEngine. +- c98d271466: Use updated types from `@backstage/plugin-permission-common` +- Updated dependencies + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/plugin-permission-node@0.6.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + - @backstage/plugin-search-common@0.3.3-next.1 + ## 0.5.0-next.0 ### Minor Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index e148cca418..40a4099c4b 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend", "description": "The Backstage backend plugin that provides your backstage app with search", - "version": "0.5.0-next.0", + "version": "0.5.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,14 +23,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/plugin-auth-node": "^0.2.0-next.0", - "@backstage/plugin-permission-common": "^0.5.3", - "@backstage/plugin-permission-node": "^0.5.6-next.0", + "@backstage/plugin-permission-common": "^0.6.0-next.0", + "@backstage/plugin-permission-node": "^0.6.0-next.1", "@backstage/plugin-search-backend-node": "^0.5.3-next.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@backstage/types": "^1.0.0", "@types/express": "^4.17.6", "dataloader": "^2.0.0", @@ -43,7 +43,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/search-common/CHANGELOG.md b/plugins/search-common/CHANGELOG.md index ab43b6ed2c..5e9cebb34f 100644 --- a/plugins/search-common/CHANGELOG.md +++ b/plugins/search-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-search-common +## 0.3.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.6.0-next.0 + ## 0.3.3-next.0 ### Patch Changes diff --git a/plugins/search-common/package.json b/plugins/search-common/package.json index f37d3ac103..c21c2aed4b 100644 --- a/plugins/search-common/package.json +++ b/plugins/search-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-common", "description": "Common functionalities for Search, to be shared between various search-enabled plugins", - "version": "0.3.3-next.0", + "version": "0.3.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -40,10 +40,10 @@ }, "dependencies": { "@backstage/types": "^1.0.0", - "@backstage/plugin-permission-common": "^0.5.3" + "@backstage/plugin-permission-common": "^0.6.0-next.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "jest": { "roots": [ diff --git a/plugins/search/package.json b/plugins/search/package.json index 5d3123eb55..13079e4b0a 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -38,8 +38,8 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@backstage/theme": "^0.2.15", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", @@ -56,10 +56,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index d7a3f17ac3..d1836bfd4a 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -38,7 +38,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -52,10 +52,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 20ed09074b..1ec2d51e76 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -42,10 +42,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 690c025d87..862f88f36a 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -39,7 +39,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 7be62edcce..262638d793 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -37,7 +37,7 @@ "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -51,10 +51,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md new file mode 100644 index 0000000000..5ac17f0a79 --- /dev/null +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -0,0 +1,12 @@ +# @backstage/plugin-stack-overflow-backend + +## 0.1.0-next.0 + +### Minor Changes + +- ac323de4ad: Add stack overflow backend plugin + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-common@0.3.3-next.1 diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index bf8c000f44..ccc2b0b5fe 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow-backend", - "version": "0.0.0", + "version": "0.1.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,7 +33,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@backstage/config": "^1.0.0", "qs": "^6.9.4", "cross-fetch": "^3.1.5", diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md new file mode 100644 index 0000000000..2bfa058580 --- /dev/null +++ b/plugins/stack-overflow/CHANGELOG.md @@ -0,0 +1,13 @@ +# @backstage/plugin-stack-overflow + +## 0.1.0-next.0 + +### Minor Changes + +- ac323de4ad: Add stack overflow plugin + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.4.20-next.1 + - @backstage/plugin-search-common@0.3.3-next.1 diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 9c83ed4856..e44215eecd 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow", - "version": "0.0.0", + "version": "0.1.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,9 +24,9 @@ }, "dependencies": { "@backstage/core-components": "^0.9.3-next.0", - "@backstage/plugin-home": "^0.4.20-next.0", + "@backstage/plugin-home": "^0.4.20-next.1", "@backstage/core-plugin-api": "^1.0.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@backstage/config": "^1.0.0", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", @@ -42,8 +42,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/cli": "^0.17.0-next.1", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/react": "^12.1.3", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", diff --git a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md index 3f11cd5ed2..f3bc32b796 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.15-next.1 + +### Patch Changes + +- ab008a0988: Removes node-cron from tech-insights to utilize backend-tasks +- Updated dependencies + - @backstage/plugin-tech-insights-node@0.2.9-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.15-next.0 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index 1f4b7de469..6ffa20747a 100644 --- a/plugins/tech-insights-backend-module-jsonfc/package.json +++ b/plugins/tech-insights-backend-module-jsonfc/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend-module-jsonfc", - "version": "0.1.15-next.0", + "version": "0.1.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,11 +34,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/plugin-tech-insights-common": "^0.2.4", - "@backstage/plugin-tech-insights-node": "^0.2.9-next.0", + "@backstage/plugin-tech-insights-node": "^0.2.9-next.1", "ajv": "^8.10.0", "json-rules-engine": "^6.1.2", "lodash": "^4.17.21", @@ -46,7 +46,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist" diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md index 0e0715e16a..4285e7e4ee 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-tech-insights-backend +## 0.3.0-next.1 + +### Minor Changes + +- 231fee736b: This backend now uses the `@backstage/backend-tasks` package facilities for scheduling fact retrievers. + + **BREAKING**: The `buildTechInsightsContext` function now takes an additional field in its options argument: `scheduler`. This is an instance of `PluginTaskScheduler`, which can be found in your backend initialization code's `env`. + + ```diff + const builder = buildTechInsightsContext({ + logger: env.logger, + config: env.config, + database: env.database, + discovery: env.discovery, + + scheduler: env.scheduler, + factRetrievers: [ /* ... */ ], + }); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.3.0-next.1 + - @backstage/plugin-tech-insights-node@0.2.9-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.2.11-next.0 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 475e5e98ae..94a5ff5eef 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend", - "version": "0.2.11-next.0", + "version": "0.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,14 +34,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", - "@backstage/backend-tasks": "^0.2.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", + "@backstage/backend-tasks": "^0.3.0-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/plugin-tech-insights-common": "^0.2.4", - "@backstage/plugin-tech-insights-node": "^0.2.9-next.0", + "@backstage/plugin-tech-insights-node": "^0.2.9-next.1", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -54,8 +54,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "@types/semver": "^7.3.8", "supertest": "^6.1.3", diff --git a/plugins/tech-insights-common/package.json b/plugins/tech-insights-common/package.json index d1fef2ee61..f222a935b9 100644 --- a/plugins/tech-insights-common/package.json +++ b/plugins/tech-insights-common/package.json @@ -38,7 +38,7 @@ "@backstage/types": "^1.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist" diff --git a/plugins/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md index 5eacdda007..a57c0b018f 100644 --- a/plugins/tech-insights-node/CHANGELOG.md +++ b/plugins/tech-insights-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-insights-node +## 0.2.9-next.1 + +### Patch Changes + +- 231fee736b: Adds an optional timeout to fact retriever registrations to stop a task if it runs too long. +- Updated dependencies + - @backstage/backend-common@0.13.2-next.1 + ## 0.2.9-next.0 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index f2a3b267eb..3c44f06558 100644 --- a/plugins/tech-insights-node/package.json +++ b/plugins/tech-insights-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-node", - "version": "0.2.9-next.0", + "version": "0.2.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,7 +33,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/config": "^1.0.0", "@backstage/plugin-tech-insights-common": "^0.2.4", "@types/luxon": "^2.0.5", @@ -41,7 +41,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0" + "@backstage/cli": "^0.17.0-next.1" }, "files": [ "dist" diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index def63e1f30..0775a954c7 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -32,7 +32,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/plugin-tech-insights-common": "^0.2.4", "@backstage/theme": "^0.2.15", "@backstage/types": "^1.0.0", @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index e438182e85..e75d93f56b 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-tech-radar +## 0.5.11-next.1 + +### Patch Changes + +- f69789330a: Fix an issue where the Radar is not updated when switching between different radars + ## 0.5.11-next.0 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 377bcd539e..4d685f349d 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-tech-radar", "description": "A Backstage plugin that lets you display a Tech Radar for your organization", - "version": "0.5.11-next.0", + "version": "0.5.11-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -49,10 +49,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 997f97bd17..7729ee6a15 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-techdocs-backend +## 1.0.1-next.1 + +### Patch Changes + +- ada4446733: Specify type of `visibilityPermission` property on collators and collator factories. +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-permission-common@0.6.0-next.0 + - @backstage/plugin-catalog-common@1.0.1-next.1 + - @backstage/backend-common@0.13.2-next.1 + - @backstage/plugin-techdocs-node@1.0.1-next.1 + - @backstage/plugin-search-common@0.3.3-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index b278f8919a..8fdc80fe82 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-backend", "description": "The Backstage backend plugin that renders technical documentation for your components", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,16 +34,16 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-catalog-common": "^1.0.1-next.0", - "@backstage/plugin-permission-common": "^0.5.3", - "@backstage/plugin-search-common": "^0.3.3-next.0", - "@backstage/plugin-techdocs-node": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-catalog-common": "^1.0.1-next.1", + "@backstage/plugin-permission-common": "^0.6.0-next.0", + "@backstage/plugin-search-common": "^0.3.3-next.1", + "@backstage/plugin-techdocs-node": "^1.0.1-next.1", "@types/express": "^4.17.6", "dockerode": "^3.3.1", "express": "^4.17.1", @@ -56,8 +56,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.23-next.0", - "@backstage/cli": "^0.16.1-next.0", + "@backstage/backend-test-utils": "^0.1.23-next.1", + "@backstage/cli": "^0.17.0-next.1", "@backstage/plugin-search-backend-node": "0.5.3-next.0", "@types/dockerode": "^3.3.0", "msw": "^0.35.0", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index 7e1461a8e7..a7bcb89c08 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-techdocs-node +## 1.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + - @backstage/plugin-search-common@0.3.3-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 16861f0b7e..75c7126933 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-node", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -42,12 +42,12 @@ "dependencies": { "@azure/identity": "^2.0.1", "@azure/storage-blob": "^12.5.0", - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/plugin-search-common": "^0.3.3-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/plugin-search-common": "^0.3.3-next.1", "@google-cloud/storage": "^5.6.0", "@trendyol-js/openstack-swift-sdk": "^0.0.5", "@types/express": "^4.17.6", @@ -64,7 +64,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/fs-extra": "^9.0.5", "@types/js-yaml": "^4.0.0", "@types/mime-types": "^2.1.0", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index d56b90cd12..2e5de77322 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-techdocs +## 1.0.1-next.1 + +### Patch Changes + +- 0152c0de22: Some documentation layout tweaks: + + - drawer toggle margins + - code block margins + - sidebar drawer width + - inner content width + - footer link width + - sidebar table of contents scroll + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/plugin-catalog-react@1.0.1-next.1 + - @backstage/integration-react@1.0.1-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 8ab87deadd..f3e9a0c805 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs", "description": "The Backstage plugin that renders technical documentation for your components", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -40,9 +40,9 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", - "@backstage/integration-react": "^1.0.1-next.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", + "@backstage/integration-react": "^1.0.1-next.1", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/plugin-search": "^0.7.5-next.0", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", @@ -64,10 +64,10 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^7.0.2", diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index 11332cbd41..8f66a7ba50 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-todo-backend +## 0.1.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.1.0-next.1 + - @backstage/backend-common@0.13.2-next.1 + ## 0.1.28-next.0 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 34c9b17c43..fafe67d5bc 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo-backend", "description": "A Backstage backend plugin that lets you browse TODO comments in your source code", - "version": "0.1.28-next.0", + "version": "0.1.28-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,12 +29,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.13.2-next.0", + "@backstage/backend-common": "^0.13.2-next.1", "@backstage/catalog-client": "^1.0.1-next.0", "@backstage/catalog-model": "^1.0.1-next.0", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.0.1-next.0", + "@backstage/integration": "^1.1.0-next.1", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -43,7 +43,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@types/supertest": "^2.0.8", "msw": "^0.35.0", "supertest": "^6.1.3" diff --git a/plugins/todo/package.json b/plugins/todo/package.json index bb6b2cb2bc..c22b93ad28 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -34,7 +34,7 @@ "@backstage/core-components": "^0.9.3-next.0", "@backstage/core-plugin-api": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/plugin-catalog-react": "^1.0.1-next.0", + "@backstage/plugin-catalog-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -45,10 +45,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 85e74328a6..f8e2ffb546 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 3d0bd8c962..52666e4c39 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.16.1-next.0", + "@backstage/cli": "^0.17.0-next.1", "@backstage/core-app-api": "^1.0.1-next.0", "@backstage/dev-utils": "^1.0.1-next.0", - "@backstage/test-utils": "^1.0.1-next.0", + "@backstage/test-utils": "^1.0.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.1.8", diff --git a/yarn.lock b/yarn.lock index e80569e1e1..5438a459a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1588,6 +1588,30 @@ yaml "^1.10.0" zen-observable "^0.8.15" +"@backstage/plugin-permission-common@^0.5.3": + version "0.5.3" + resolved "https://registry.npmjs.org/@backstage/plugin-permission-common/-/plugin-permission-common-0.5.3.tgz#a1a4446e603584f2c82763745051f75f4a942eb1" + integrity sha512-zppDsNZEK9ffgXbf/Zx0sw4ffuOVOEvBZlft1+Oph2rO4+uN7dmCLMRRcKsYeNQ6/F50e6BMyNWpPZQDR/JQsA== + dependencies: + "@backstage/config" "^1.0.0" + "@backstage/errors" "^1.0.0" + cross-fetch "^3.1.5" + uuid "^8.0.0" + zod "^3.11.6" + +"@backstage/plugin-permission-react@^0.3.4": + version "0.3.4" + resolved "https://registry.npmjs.org/@backstage/plugin-permission-react/-/plugin-permission-react-0.3.4.tgz#e769dc1489c35d9c924234c0764a584558891716" + integrity sha512-S8s1cvCZFmxP4Dn5V9fOls31s4V1rgx3YUXqHSkgLatYHOXczf+GM/c5rdGLQyOb/+Hb+MQqaPAkojvSxNliow== + dependencies: + "@backstage/config" "^1.0.0" + "@backstage/core-plugin-api" "^1.0.0" + "@backstage/plugin-permission-common" "^0.5.3" + cross-fetch "^3.1.5" + react-router "6.0.0-beta.0" + react-use "^17.2.4" + swr "^1.1.2" + "@backstage/types@^0.1.3": version "0.1.3" resolved "https://registry.npmjs.org/@backstage/types/-/types-0.1.3.tgz#6613d8cbdf97d42d31cd1e66a833df533e7ccf14" @@ -12132,54 +12156,54 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" "example-app@link:packages/app": - version "0.2.70-next.0" + version "0.2.70-next.1" dependencies: - "@backstage/app-defaults" "^1.0.1-next.0" + "@backstage/app-defaults" "^1.0.1-next.1" "@backstage/catalog-model" "^1.0.1-next.0" - "@backstage/cli" "^0.16.1-next.0" + "@backstage/cli" "^0.17.0-next.1" "@backstage/core-app-api" "^1.0.1-next.0" "@backstage/core-components" "^0.9.3-next.0" "@backstage/core-plugin-api" "^1.0.0" - "@backstage/integration-react" "^1.0.1-next.0" + "@backstage/integration-react" "^1.0.1-next.1" "@backstage/plugin-airbrake" "^0.3.4-next.0" "@backstage/plugin-apache-airflow" "^0.1.12-next.0" - "@backstage/plugin-api-docs" "^0.8.4-next.0" + "@backstage/plugin-api-docs" "^0.8.4-next.1" "@backstage/plugin-azure-devops" "^0.1.20-next.0" "@backstage/plugin-badges" "^0.2.28-next.0" - "@backstage/plugin-catalog" "^1.0.1-next.0" - "@backstage/plugin-catalog-common" "^1.0.1-next.0" - "@backstage/plugin-catalog-graph" "^0.2.16-next.0" - "@backstage/plugin-catalog-import" "^0.8.7-next.0" - "@backstage/plugin-catalog-react" "^1.0.1-next.0" + "@backstage/plugin-catalog" "^1.1.0-next.1" + "@backstage/plugin-catalog-common" "^1.0.1-next.1" + "@backstage/plugin-catalog-graph" "^0.2.16-next.1" + "@backstage/plugin-catalog-import" "^0.8.7-next.1" + "@backstage/plugin-catalog-react" "^1.0.1-next.1" "@backstage/plugin-circleci" "^0.3.4-next.0" "@backstage/plugin-cloudbuild" "^0.3.4-next.0" "@backstage/plugin-code-coverage" "^0.1.31-next.0" "@backstage/plugin-cost-insights" "^0.11.26-next.0" "@backstage/plugin-explore" "^0.3.35-next.0" - "@backstage/plugin-gcalendar" "^0.2.1-next.0" + "@backstage/plugin-gcalendar" "^0.3.0-next.1" "@backstage/plugin-gcp-projects" "^0.3.23-next.0" - "@backstage/plugin-github-actions" "^0.5.4-next.0" + "@backstage/plugin-github-actions" "^0.5.4-next.1" "@backstage/plugin-gocd" "^0.1.10-next.0" "@backstage/plugin-graphiql" "^0.2.36-next.0" - "@backstage/plugin-home" "^0.4.20-next.0" + "@backstage/plugin-home" "^0.4.20-next.1" "@backstage/plugin-jenkins" "^0.7.3-next.0" "@backstage/plugin-kafka" "^0.3.4-next.0" - "@backstage/plugin-kubernetes" "^0.6.4-next.0" + "@backstage/plugin-kubernetes" "^0.6.4-next.1" "@backstage/plugin-lighthouse" "^0.3.4-next.0" "@backstage/plugin-newrelic" "^0.3.22-next.0" "@backstage/plugin-newrelic-dashboard" "^0.1.12-next.0" - "@backstage/plugin-org" "^0.5.4-next.0" + "@backstage/plugin-org" "^0.5.4-next.1" "@backstage/plugin-pagerduty" "0.3.31-next.0" - "@backstage/plugin-permission-react" "^0.3.4" + "@backstage/plugin-permission-react" "^0.4.0-next.0" "@backstage/plugin-rollbar" "^0.4.4-next.0" - "@backstage/plugin-scaffolder" "^1.0.1-next.0" + "@backstage/plugin-scaffolder" "^1.0.1-next.1" "@backstage/plugin-search" "^0.7.5-next.0" - "@backstage/plugin-search-common" "^0.3.3-next.0" + "@backstage/plugin-search-common" "^0.3.3-next.1" "@backstage/plugin-sentry" "^0.3.42-next.0" "@backstage/plugin-shortcuts" "^0.2.5-next.0" "@backstage/plugin-tech-insights" "^0.1.14-next.0" - "@backstage/plugin-tech-radar" "^0.5.11-next.0" - "@backstage/plugin-techdocs" "^1.0.1-next.0" + "@backstage/plugin-tech-radar" "^0.5.11-next.1" + "@backstage/plugin-techdocs" "^1.0.1-next.1" "@backstage/plugin-todo" "^0.2.6-next.0" "@backstage/plugin-user-settings" "^0.4.3-next.0" "@backstage/theme" "^0.2.15" @@ -23668,19 +23692,19 @@ tdigest@^0.1.1: bintrees "1.0.1" "techdocs-cli-embedded-app@link:packages/techdocs-cli-embedded-app": - version "0.2.69-next.0" + version "0.2.69-next.1" dependencies: - "@backstage/app-defaults" "^1.0.1-next.0" + "@backstage/app-defaults" "^1.0.1-next.1" "@backstage/catalog-model" "^1.0.1-next.0" - "@backstage/cli" "^0.16.1-next.0" + "@backstage/cli" "^0.17.0-next.1" "@backstage/config" "^1.0.0" "@backstage/core-app-api" "^1.0.1-next.0" "@backstage/core-components" "^0.9.3-next.0" "@backstage/core-plugin-api" "^1.0.0" - "@backstage/integration-react" "^1.0.1-next.0" - "@backstage/plugin-catalog" "^1.0.1-next.0" - "@backstage/plugin-techdocs" "^1.0.1-next.0" - "@backstage/test-utils" "^1.0.1-next.0" + "@backstage/integration-react" "^1.0.1-next.1" + "@backstage/plugin-catalog" "^1.1.0-next.1" + "@backstage/plugin-techdocs" "^1.0.1-next.1" + "@backstage/test-utils" "^1.0.1-next.1" "@backstage/theme" "^0.2.15" "@material-ui/core" "^4.11.0" "@material-ui/icons" "^4.9.1" From 2a5a36ca2a8fbcc0b9722afae388af9442f08669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 29 Mar 2022 11:39:13 +0200 Subject: [PATCH 223/225] remove unnecessary addendum (no longer a default-installed thing anyway) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- docs/integrations/github/org.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md index 94689f4a39..0460b1adbc 100644 --- a/docs/integrations/github/org.md +++ b/docs/integrations/github/org.md @@ -55,22 +55,3 @@ The authorization for loading org information comes from a configured [GitHub integration](locations.md#configuration). When using a personal access token, the token needs to have at least the scopes `read:org`, `read:user`, and `user:email` in the given `target`. - -## Addendum - -Some Backstage apps have _replaced_ the catalog processors to override the -default catalog processing behavior. These apps will already have a call to -`replaceProcessors` in the catalog initialization. - -In the unlikely scenario that this applies to your app, you can import and -add the `GithubOrgReaderProcessor` as follows: - -```ts -// Typically in packages/backend/src/plugins/catalog.ts -import { GithubOrgReaderProcessor } from '@backstage/plugin-catalog-backend'; - -builder.replaceProcessors( - // ... other processor replacements - GithubOrgReaderProcessor.fromConfig(env.config, { logger: env.logger }), -); -``` From 0c0d36229fbdecb1e043e36b005d62b8afc7e000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 29 Mar 2022 09:48:04 +0200 Subject: [PATCH 224/225] some missing yarn.lock changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw Signed-off-by: mehmet.malli --- yarn.lock | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) diff --git a/yarn.lock b/yarn.lock index b573caaf35..e80569e1e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7050,14 +7050,6 @@ "@typescript-eslint/typescript-estree" "5.17.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz#7e7909d64bd0c4d8aef629cdc764b9d3e1d3a69a" - integrity sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ== - dependencies: - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/visitor-keys" "5.16.0" - "@typescript-eslint/scope-manager@5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" @@ -7083,11 +7075,6 @@ debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" - integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== - "@typescript-eslint/types@5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" @@ -7098,32 +7085,6 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz#e5619803e39d24a03b3369506df196355736e1a3" integrity sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg== -"@typescript-eslint/typescript-estree@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" - integrity sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ== - dependencies: - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/visitor-keys" "5.16.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@5.17.0": - version "5.17.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" - integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== - dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" @@ -7162,14 +7123,6 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.16.0": - version "5.16.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz#f27dc3b943e6317264c7492e390c6844cd4efbbb" - integrity sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g== - dependencies: - "@typescript-eslint/types" "5.16.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" From 4782f9e925e89b1f61d92356a4bf8c3209010384 Mon Sep 17 00:00:00 2001 From: "mehmet.malli" Date: Tue, 29 Mar 2022 12:05:01 +0300 Subject: [PATCH 225/225] Fixed misleading log text for frontend plugin creation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mehmet Mallı Signed-off-by: mehmet.malli --- .changeset/stupid-ways-think.md | 5 +++++ packages/cli/src/lib/create/factories/frontendPlugin.test.ts | 2 +- packages/cli/src/lib/create/factories/frontendPlugin.ts | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/stupid-ways-think.md diff --git a/.changeset/stupid-ways-think.md b/.changeset/stupid-ways-think.md new file mode 100644 index 0000000000..19e68fba90 --- /dev/null +++ b/.changeset/stupid-ways-think.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed misleading log message during frontend plugin creation. diff --git a/packages/cli/src/lib/create/factories/frontendPlugin.test.ts b/packages/cli/src/lib/create/factories/frontendPlugin.test.ts index 27ee14ea2c..8559953f5f 100644 --- a/packages/cli/src/lib/create/factories/frontendPlugin.test.ts +++ b/packages/cli/src/lib/create/factories/frontendPlugin.test.ts @@ -87,7 +87,7 @@ describe('frontendPlugin factory', () => { expect(output).toEqual([ '', - 'Creating backend plugin backstage-plugin-test', + 'Creating frontend plugin backstage-plugin-test', 'Checking Prerequisites:', `availability plugins${sep}test`, 'creating temp dir', diff --git a/packages/cli/src/lib/create/factories/frontendPlugin.ts b/packages/cli/src/lib/create/factories/frontendPlugin.ts index 3862ae4883..d0e81207ca 100644 --- a/packages/cli/src/lib/create/factories/frontendPlugin.ts +++ b/packages/cli/src/lib/create/factories/frontendPlugin.ts @@ -47,7 +47,7 @@ export const frontendPlugin = createFactory({ const extensionName = `${upperFirst(camelCase(id))}Page`; Task.log(); - Task.log(`Creating backend plugin ${chalk.cyan(name)}`); + Task.log(`Creating frontend plugin ${chalk.cyan(name)}`); const targetDir = ctx.isMonoRepo ? paths.resolveTargetRoot('plugins', id)