From 1732a18a7ac251c523fc9713979c5690a1fd32dd Mon Sep 17 00:00:00 2001 From: Diego Bardari Date: Tue, 19 Jul 2022 10:35:21 +0200 Subject: [PATCH 001/377] feat(logging): export redactLogLine function Signed-off-by: Diego Bardari --- .changeset/mean-ants-hang.md | 5 +++++ packages/backend-common/api-report.md | 5 +++++ packages/backend-common/src/logging/index.ts | 7 ++++++- packages/backend-common/src/logging/rootLogger.ts | 4 +++- 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 .changeset/mean-ants-hang.md diff --git a/.changeset/mean-ants-hang.md b/.changeset/mean-ants-hang.md new file mode 100644 index 0000000000..1dbbc63de0 --- /dev/null +++ b/.changeset/mean-ants-hang.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': minor +--- + +Exported redactLogLine function to be able to use it in custom loggers. diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 6059e68792..ff79e106e0 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -568,6 +568,11 @@ export type ReadUrlResponseFactoryFromStreamOptions = { etag?: string; }; +// @public +export function redactLogLine( + info: winston.Logform.TransformableInfo, +): winston.Logform.TransformableInfo; + // @public export function requestLoggingHandler(logger?: Logger): RequestHandler; diff --git a/packages/backend-common/src/logging/index.ts b/packages/backend-common/src/logging/index.ts index f50114a9ae..a3b87237ec 100644 --- a/packages/backend-common/src/logging/index.ts +++ b/packages/backend-common/src/logging/index.ts @@ -15,5 +15,10 @@ */ export * from './formats'; -export { createRootLogger, getRootLogger, setRootLogger } from './rootLogger'; +export { + createRootLogger, + getRootLogger, + setRootLogger, + redactLogLine, +} from './rootLogger'; export * from './voidLogger'; diff --git a/packages/backend-common/src/logging/rootLogger.ts b/packages/backend-common/src/logging/rootLogger.ts index 87180bde8f..a24dea3c00 100644 --- a/packages/backend-common/src/logging/rootLogger.ts +++ b/packages/backend-common/src/logging/rootLogger.ts @@ -69,8 +69,10 @@ export function setRootLoggerRedactionList(redactionList: string[]) { /** * A winston formatting function that finds occurrences of filteredKeys * and replaces them with the corresponding identifier. + * + * @public */ -function redactLogLine(info: winston.Logform.TransformableInfo) { +export function redactLogLine(info: winston.Logform.TransformableInfo) { // TODO(hhogg): The logger is created before the config is loaded, because the // logger is needed in the config loader. There is a risk of a secret being // logged out during the config loading stage. From 1de2669c91a1203b415faf13d92f5b887cc73245 Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Wed, 20 Jul 2022 15:54:02 -0400 Subject: [PATCH 002/377] refactor tests to give clearer feedback Instead of comments in the table test, use the features of jest that allow each test to give a specific error message. This change also reduces the total number of tests, but coverage should remain the same branch-wise. Signed-off-by: Jamie Klassen --- packages/integration/src/gitlab/core.test.ts | 297 +++++++++---------- 1 file changed, 134 insertions(+), 163 deletions(-) diff --git a/packages/integration/src/gitlab/core.test.ts b/packages/integration/src/gitlab/core.test.ts index d043aba55a..b87c5c3af8 100644 --- a/packages/integration/src/gitlab/core.test.ts +++ b/packages/integration/src/gitlab/core.test.ts @@ -34,13 +34,6 @@ describe('gitlab core', () => { ); }); - const configWithToken: GitLabIntegrationConfig = { - host: 'gitlab.com', - token: '0123456789', - apiBaseUrl: '', - baseUrl: '', - }; - const configWithNoToken: GitLabIntegrationConfig = { host: 'gitlab.com', apiBaseUrl: '', @@ -61,163 +54,141 @@ describe('gitlab core', () => { baseUrl: 'https://gitlab.mycompany.com', }; - describe('getGitLabFileFetchUrl with .yaml extension', () => { - it.each([ - // Project URLs - { - config: configWithNoToken, - url: 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml', - result: - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml/raw?ref=branch', - }, - { - config: configSelfHosteWithRelativePath, - url: 'https://gitlab.mycompany.com/gitlab/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml', - result: - 'https://gitlab.mycompany.com/gitlab/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml/raw?ref=branch', - }, - { - config: configSelfHostedWithoutRelativePath, - url: 'https://gitlab.mycompany.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml', - result: - 'https://gitlab.mycompany.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml/raw?ref=branch', - }, - { - config: configWithNoToken, - // Works with non URI encoded link - url: 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file with spaces.yaml', - result: - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile%20with%20spaces.yaml/raw?ref=branch', - }, - { - config: configSelfHosteWithRelativePath, - url: 'https://gitlab.mycompany.com/gitlab/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file with spaces.yaml', - result: - 'https://gitlab.mycompany.com/gitlab/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile%20with%20spaces.yaml/raw?ref=branch', - }, - { - config: configSelfHostedWithoutRelativePath, - url: 'https://gitlab.mycompany.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file with spaces.yaml', - result: - 'https://gitlab.mycompany.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile%20with%20spaces.yaml/raw?ref=branch', - }, - { - config: configWithNoToken, - url: 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path%20with%20spaces/to/file.yaml', - result: - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%20with%20spaces%2Fto%2Ffile.yaml/raw?ref=branch', - }, - { - config: configWithToken, - url: 'https://gitlab.example.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path%20with%20spaces/to/file.yaml', - result: - 'https://gitlab.example.com/api/v4/projects/12345/repository/files/my%2Fpath%20with%20spaces%2Fto%2Ffile.yaml/raw?ref=branch', - }, - { - config: configWithNoToken, - url: 'https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path%20with%20spaces/to/file.yaml', // Repo not in subgroup - result: - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%20with%20spaces%2Fto%2Ffile.yaml/raw?ref=branch', - }, - // Raw URLs - { - config: configWithNoToken, - url: 'https://gitlab.example.com/a/b/blob/master/c.yaml', - result: 'https://gitlab.example.com/a/b/raw/master/c.yaml', - }, - { - config: configWithNoToken, - url: 'https://gitlab.example.com/a/b/repo/blob/master/c.yaml', - result: 'https://gitlab.example.com/a/b/repo/raw/master/c.yaml', - }, - { - config: configWithNoToken, - url: 'https://gitlab.example.com/a/blob/blob/master/c.yaml', - result: 'https://gitlab.example.com/a/blob/raw/master/c.yaml', - }, - { - config: configWithNoToken, - url: 'https://gitlab.example.com/a/b/blob/blob/c.yaml', - result: 'https://gitlab.example.com/a/b/raw/blob/c.yaml', - }, - { - config: configWithNoToken, - url: 'https://gitlab.example.com/a//blob/blob/c.yaml', - result: 'https://gitlab.example.com/a/blob/raw/c.yaml', - }, - ])('should handle happy path %#', async ({ config, url, result }) => { - await expect(getGitLabFileFetchUrl(url, config)).resolves.toBe(result); - }); - }); + describe('getGitLabFileFetchUrl', () => { + describe('when target has a scoped route', () => { + it('returns a projects API URL', async () => { + const target = + 'https://gitlab.com/group/project/-/blob/branch/folder/file.yaml'; + const fetchUrl = + 'https://gitlab.com/api/v4/projects/12345/repository/files/folder%2Ffile.yaml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); - describe('getGitLabFileFetchUrl with .yml extension', () => { - it.each([ - // Project URLs - { - config: configWithNoToken, - url: 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yml', - result: - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yml/raw?ref=branch', - }, - { - config: configSelfHosteWithRelativePath, - url: 'https://gitlab.mycompany.com/gitlab/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yml', - result: - 'https://gitlab.mycompany.com/gitlab/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yml/raw?ref=branch', - }, - { - config: configSelfHostedWithoutRelativePath, - url: 'https://gitlab.mycompany.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yml', - result: - 'https://gitlab.mycompany.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yml/raw?ref=branch', - }, - { - config: configWithNoToken, - // Works with non URI encoded link - url: 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file with spaces.yml', - result: - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile%20with%20spaces.yml/raw?ref=branch', - }, - { - config: configSelfHosteWithRelativePath, - // Works with non URI encoded link - url: 'https://gitlab.mycompany.com/gitlab/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file with spaces.yml', - result: - 'https://gitlab.mycompany.com/gitlab/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile%20with%20spaces.yml/raw?ref=branch', - }, - { - config: configSelfHostedWithoutRelativePath, - // Works with non URI encoded link - url: 'https://gitlab.mycompany.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file with spaces.yml', - result: - 'https://gitlab.mycompany.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile%20with%20spaces.yml/raw?ref=branch', - }, - { - config: configWithNoToken, - url: 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path%20with%20spaces/to/file.yml', - result: - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%20with%20spaces%2Fto%2Ffile.yml/raw?ref=branch', - }, - { - config: configWithToken, - url: 'https://gitlab.example.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path%20with%20spaces/to/file.yml', - result: - 'https://gitlab.example.com/api/v4/projects/12345/repository/files/my%2Fpath%20with%20spaces%2Fto%2Ffile.yml/raw?ref=branch', - }, - { - config: configWithNoToken, - url: 'https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path%20with%20spaces/to/file.yml', // Repo not in subgroup - result: - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%20with%20spaces%2Fto%2Ffile.yml/raw?ref=branch', - }, - // Raw URLs - { - config: configWithNoToken, - url: 'https://gitlab.example.com/a/b/blob/master/c.yml', - result: 'https://gitlab.example.com/a/b/raw/master/c.yml', - }, - ])('should handle happy path %#', async ({ config, url, result }) => { - await expect(getGitLabFileFetchUrl(url, config)).resolves.toBe(result); + it('locates projects in subgroups', async () => { + const target = + 'https://gitlab.com/group/subgroup/project/-/blob/branch/folder/file.yaml'; + const fetchUrl = + 'https://gitlab.com/api/v4/projects/12345/repository/files/folder%2Ffile.yaml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); + + it('supports filename with .yml extension', async () => { + const target = + 'https://gitlab.com/group/project/-/blob/branch/folder/file.yml'; + const fetchUrl = + 'https://gitlab.com/api/v4/projects/12345/repository/files/folder%2Ffile.yml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); + + it('supports non-URI-encoded target', async () => { + const target = + 'https://gitlab.com/group/project/-/blob/branch/folder/file with spaces.yaml'; + const fetchUrl = + 'https://gitlab.com/api/v4/projects/12345/repository/files/folder%2Ffile%20with%20spaces.yaml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); + + describe('when gitlab is self-hosted', () => { + it('returns projects API URL', async () => { + const target = + 'https://gitlab.mycompany.com/group/project/-/blob/branch/folder/file.yaml'; + const fetchUrl = + 'https://gitlab.mycompany.com/api/v4/projects/12345/repository/files/folder%2Ffile.yaml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configSelfHostedWithoutRelativePath), + ).resolves.toBe(fetchUrl); + }); + + it('handles non-URI-encoded target', async () => { + const target = + 'https://gitlab.mycompany.com/group/project/-/blob/branch/folder/file with spaces.yaml'; + const fetchUrl = + 'https://gitlab.mycompany.com/api/v4/projects/12345/repository/files/folder%2Ffile%20with%20spaces.yaml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configSelfHostedWithoutRelativePath), + ).resolves.toBe(fetchUrl); + }); + + describe('with a relative path', () => { + it('returns projects API URL', async () => { + const target = + 'https://gitlab.mycompany.com/gitlab/group/project/-/blob/branch/folder/file.yaml'; + const fetchUrl = + 'https://gitlab.mycompany.com/gitlab/api/v4/projects/12345/repository/files/folder%2Ffile.yaml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configSelfHosteWithRelativePath), + ).resolves.toBe(fetchUrl); + }); + + it('handles non-URI-encoded target', async () => { + const target = + 'https://gitlab.mycompany.com/gitlab/group/project/-/blob/branch/folder/file with spaces.yaml'; + const fetchUrl = + 'https://gitlab.mycompany.com/gitlab/api/v4/projects/12345/repository/files/folder%2Ffile%20with%20spaces.yaml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configSelfHosteWithRelativePath), + ).resolves.toBe(fetchUrl); + }); + }); + }); + }); + + describe('when target has an unscoped route', () => { + it('returns a raw URL', async () => { + const target = + 'https://gitlab.com/group/project/blob/branch/folder/file.yaml'; + const fetchUrl = + 'https://gitlab.com/group/project/raw/branch/folder/file.yaml'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); + + it('supports project in subgroup', async () => { + const target = + 'https://gitlab.com/group/subgroup/project/blob/branch/folder/file.yaml'; + const fetchUrl = + 'https://gitlab.com/group/subgroup/project/raw/branch/folder/file.yaml'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); + + it('supports project named "blob"', async () => { + const target = + 'https://gitlab.com/group/blob/blob/branch/folder/file.yaml'; + const fetchUrl = + 'https://gitlab.com/group/blob/raw/branch/folder/file.yaml'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); + + it('supports repo with branch named "blob"', async () => { + const target = + 'https://gitlab.com/group/project/blob/blob/folder/file.yaml'; + const fetchUrl = + 'https://gitlab.com/group/project/raw/blob/folder/file.yaml'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); + + it('removes empty path segment', async () => { + const target = 'https://gitlab.example.com/group//blob/blob/file.yaml'; + const fetchUrl = 'https://gitlab.example.com/group/blob/raw/file.yaml'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); }); }); }); From 56a8ff12fd1858c5922e81c8fef1a83e5468ed9b Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Thu, 21 Jul 2022 10:53:32 -0400 Subject: [PATCH 003/377] fake gitlab API more precisely This allows this suite to detect when an unexpected path is passed to the projects API. Signed-off-by: Jamie Klassen --- packages/integration/src/gitlab/core.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/integration/src/gitlab/core.test.ts b/packages/integration/src/gitlab/core.test.ts index b87c5c3af8..de785fb41d 100644 --- a/packages/integration/src/gitlab/core.test.ts +++ b/packages/integration/src/gitlab/core.test.ts @@ -28,7 +28,10 @@ describe('gitlab core', () => { beforeEach(() => { worker.use( - rest.get('*/api/v4/projects/:name', (_, res, ctx) => + rest.get('*/api/v4/projects/group%2Fproject', (_, res, ctx) => + res(ctx.status(200), ctx.json({ id: 12345 })), + ), + rest.get('*/api/v4/projects/group%2Fsubgroup%2Fproject', (_, res, ctx) => res(ctx.status(200), ctx.json({ id: 12345 })), ), ); From 3a2254185e3929cf7c95c4a4c5455dd3a10f792e Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Thu, 21 Jul 2022 11:16:28 -0400 Subject: [PATCH 004/377] add coverage for "blob" folder edge case Signed-off-by: Jamie Klassen --- packages/integration/src/gitlab/core.test.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/integration/src/gitlab/core.test.ts b/packages/integration/src/gitlab/core.test.ts index de785fb41d..0dae905ce4 100644 --- a/packages/integration/src/gitlab/core.test.ts +++ b/packages/integration/src/gitlab/core.test.ts @@ -69,6 +69,16 @@ describe('gitlab core', () => { ).resolves.toBe(fetchUrl); }); + it('supports folder named "blob"', async () => { + const target = + 'https://gitlab.com/group/project/-/blob/branch/blob/file.yaml'; + const fetchUrl = + 'https://gitlab.com/api/v4/projects/12345/repository/files/blob%2Ffile.yaml/raw?ref=branch'; + await expect( + getGitLabFileFetchUrl(target, configWithNoToken), + ).resolves.toBe(fetchUrl); + }); + it('locates projects in subgroups', async () => { const target = 'https://gitlab.com/group/subgroup/project/-/blob/branch/folder/file.yaml'; From 1e1e436e868ddb776e5168520ef81b1382d3c3ab Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Thu, 21 Jul 2022 11:55:27 -0400 Subject: [PATCH 005/377] Look up project IDs for unscoped routes Signed-off-by: Jamie Klassen --- .../src/reading/GitlabUrlReader.test.ts | 6 +- packages/integration/src/gitlab/core.test.ts | 26 ++------- packages/integration/src/gitlab/core.ts | 55 +++---------------- 3 files changed, 16 insertions(+), 71 deletions(-) diff --git a/packages/backend-common/src/reading/GitlabUrlReader.test.ts b/packages/backend-common/src/reading/GitlabUrlReader.test.ts index f422820a29..29ef3f4ce8 100644 --- a/packages/backend-common/src/reading/GitlabUrlReader.test.ts +++ b/packages/backend-common/src/reading/GitlabUrlReader.test.ts @@ -106,7 +106,7 @@ describe('GitlabUrlReader', () => { ); it.each([ - // Project URLs + // Scoped routes { url: 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml', config: createConfig(), @@ -135,12 +135,12 @@ describe('GitlabUrlReader', () => { }), }, - // Raw URLs + // Unscoped route { url: 'https://gitlab.example.com/a/b/blob/master/c.yaml', config: createConfig(), response: expect.objectContaining({ - url: 'https://gitlab.example.com/a/b/raw/master/c.yaml', + url: 'https://gitlab.example.com/api/v4/projects/12345/repository/files/c.yaml/raw?ref=master', }), }, ])('should handle happy path %#', async ({ url, config, response }) => { diff --git a/packages/integration/src/gitlab/core.test.ts b/packages/integration/src/gitlab/core.test.ts index 0dae905ce4..98fd9b7c13 100644 --- a/packages/integration/src/gitlab/core.test.ts +++ b/packages/integration/src/gitlab/core.test.ts @@ -155,11 +155,11 @@ describe('gitlab core', () => { }); describe('when target has an unscoped route', () => { - it('returns a raw URL', async () => { + it('returns projects API URL', async () => { const target = 'https://gitlab.com/group/project/blob/branch/folder/file.yaml'; const fetchUrl = - 'https://gitlab.com/group/project/raw/branch/folder/file.yaml'; + 'https://gitlab.com/api/v4/projects/12345/repository/files/folder%2Ffile.yaml/raw?ref=branch'; await expect( getGitLabFileFetchUrl(target, configWithNoToken), ).resolves.toBe(fetchUrl); @@ -169,17 +169,7 @@ describe('gitlab core', () => { const target = 'https://gitlab.com/group/subgroup/project/blob/branch/folder/file.yaml'; const fetchUrl = - 'https://gitlab.com/group/subgroup/project/raw/branch/folder/file.yaml'; - await expect( - getGitLabFileFetchUrl(target, configWithNoToken), - ).resolves.toBe(fetchUrl); - }); - - it('supports project named "blob"', async () => { - const target = - 'https://gitlab.com/group/blob/blob/branch/folder/file.yaml'; - const fetchUrl = - 'https://gitlab.com/group/blob/raw/branch/folder/file.yaml'; + 'https://gitlab.com/api/v4/projects/12345/repository/files/folder%2Ffile.yaml/raw?ref=branch'; await expect( getGitLabFileFetchUrl(target, configWithNoToken), ).resolves.toBe(fetchUrl); @@ -189,15 +179,7 @@ describe('gitlab core', () => { const target = 'https://gitlab.com/group/project/blob/blob/folder/file.yaml'; const fetchUrl = - 'https://gitlab.com/group/project/raw/blob/folder/file.yaml'; - await expect( - getGitLabFileFetchUrl(target, configWithNoToken), - ).resolves.toBe(fetchUrl); - }); - - it('removes empty path segment', async () => { - const target = 'https://gitlab.example.com/group//blob/blob/file.yaml'; - const fetchUrl = 'https://gitlab.example.com/group/blob/raw/file.yaml'; + 'https://gitlab.com/api/v4/projects/12345/repository/files/folder%2Ffile.yaml/raw?ref=blob'; await expect( getGitLabFileFetchUrl(target, configWithNoToken), ).resolves.toBe(fetchUrl); diff --git a/packages/integration/src/gitlab/core.ts b/packages/integration/src/gitlab/core.ts index 1fcf15a78f..040ca202d6 100644 --- a/packages/integration/src/gitlab/core.ts +++ b/packages/integration/src/gitlab/core.ts @@ -19,7 +19,6 @@ import { GitLabIntegrationConfig, } from './config'; import fetch from 'cross-fetch'; -import { InputError } from '@backstage/errors'; /** * Given a URL pointing to a file on a provider, returns a URL that is suitable @@ -29,7 +28,7 @@ import { InputError } from '@backstage/errors'; * * Converts * from: https://gitlab.example.com/a/b/blob/master/c.yaml - * to: https://gitlab.example.com/a/b/raw/master/c.yaml + * to: https://gitlab.com/api/v4/projects/projectId/repository/c.yaml?ref=master * -or- * from: https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/filepath * to: https://gitlab.com/api/v4/projects/projectId/repository/files/filepath?ref=branch @@ -42,15 +41,8 @@ export async function getGitLabFileFetchUrl( url: string, config: GitLabIntegrationConfig, ): Promise { - // TODO(Rugvip): From the old GitlabReaderProcessor; used - // the existence of /-/blob/ to switch the logic. Don't know if this - // makes sense and it might require some more work. - - if (url.includes('/-/blob/')) { - const projectID = await getProjectId(url, config); - return buildProjectUrl(url, projectID, config).toString(); - } - return buildRawUrl(url).toString(); + const projectID = await getProjectId(url, config); + return buildProjectUrl(url, projectID, config).toString(); } /** @@ -70,38 +62,6 @@ export function getGitLabRequestOptions(config: GitLabIntegrationConfig): { }; } -// Converts -// from: https://gitlab.example.com/groupA/teams/repoA/blob/master/c.yaml -// to: https://gitlab.example.com/groupA/teams/repoA/raw/master/c.yaml -export function buildRawUrl(target: string): URL { - try { - const url = new URL(target); - - const splitPath = url.pathname.split('/').filter(Boolean); - - // Check blob existence - const blobIndex = splitPath.indexOf('blob', 2); - if (blobIndex < 2 || blobIndex === splitPath.length - 1) { - throw new InputError('Wrong GitLab URL'); - } - - // Take repo path - const repoPath = splitPath.slice(0, blobIndex); - const restOfPath = splitPath.slice(blobIndex + 1); - - if (!restOfPath.join('/').match(/\.(yaml|yml)$/)) { - throw new InputError('Wrong GitLab URL'); - } - - // Replace 'blob' with 'raw' - url.pathname = [...repoPath, 'raw', ...restOfPath].join('/'); - - return url; - } catch (e) { - throw new InputError(`Incorrect url: ${target}, ${e}`); - } -} - // Converts // from: https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/filepath // to: https://gitlab.com/api/v4/projects/projectId/repository/files/filepath?ref=branch @@ -113,7 +73,10 @@ export function buildProjectUrl( try { const url = new URL(target); - const branchAndFilePath = url.pathname.split('/-/blob/')[1]; + const branchAndFilePath = url.pathname + .split('/blob/') + .slice(1) + .join('/blob/'); const [branch, ...filePath] = branchAndFilePath.split('/'); const relativePath = getGitLabIntegrationRelativePath(config); @@ -143,12 +106,12 @@ export async function getProjectId( ): Promise { const url = new URL(target); - if (!url.pathname.includes('/-/blob/')) { + if (!url.pathname.includes('/blob/')) { throw new Error('Please provide full path to yaml file from GitLab'); } try { - let repo = url.pathname.split('/-/blob/')[0]; + let repo = url.pathname.split('/-/blob/')[0].split('/blob/')[0]; // Get gitlab relative path const relativePath = getGitLabIntegrationRelativePath(config); From 1f27d839339a44afd6159023cb177ac55619c493 Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Thu, 21 Jul 2022 14:43:10 -0400 Subject: [PATCH 006/377] Add changeset Signed-off-by: Jamie Klassen --- .changeset/rotten-moles-give.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/rotten-moles-give.md diff --git a/.changeset/rotten-moles-give.md b/.changeset/rotten-moles-give.md new file mode 100644 index 0000000000..0ca3d3eadc --- /dev/null +++ b/.changeset/rotten-moles-give.md @@ -0,0 +1,7 @@ +--- +'@backstage/integration': patch +--- + +Fixed bug in getGitLabFileFetchUrl where a target whose path did not contain the +`/-/` scope would result in a fetch URL that did not support +private-token-based authentication. From 0be9fb918a4c3fb7eb8e7074ebcd4a1f4c71a440 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Wed, 8 Jun 2022 13:48:40 +0200 Subject: [PATCH 007/377] create pull request Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> From 4d64f22c9d6727f8fd03007e9535dfb28bae1a21 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 13 Jun 2022 15:37:30 +0200 Subject: [PATCH 008/377] Add new backend bare plugin intended for sonarqube Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/.eslintrc.js | 1 + plugins/sonarqube-backend/README.md | 13 +++++ plugins/sonarqube-backend/package.json | 44 ++++++++++++++++ plugins/sonarqube-backend/src/index.ts | 17 +++++++ plugins/sonarqube-backend/src/run.ts | 33 ++++++++++++ .../src/service/router.test.ts | 45 +++++++++++++++++ .../sonarqube-backend/src/service/router.ts | 40 +++++++++++++++ .../src/service/standaloneServer.ts | 50 +++++++++++++++++++ plugins/sonarqube-backend/src/setupTests.ts | 17 +++++++ 9 files changed, 260 insertions(+) create mode 100644 plugins/sonarqube-backend/.eslintrc.js create mode 100644 plugins/sonarqube-backend/README.md create mode 100644 plugins/sonarqube-backend/package.json create mode 100644 plugins/sonarqube-backend/src/index.ts create mode 100644 plugins/sonarqube-backend/src/run.ts create mode 100644 plugins/sonarqube-backend/src/service/router.test.ts create mode 100644 plugins/sonarqube-backend/src/service/router.ts create mode 100644 plugins/sonarqube-backend/src/service/standaloneServer.ts create mode 100644 plugins/sonarqube-backend/src/setupTests.ts diff --git a/plugins/sonarqube-backend/.eslintrc.js b/plugins/sonarqube-backend/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/plugins/sonarqube-backend/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/sonarqube-backend/README.md b/plugins/sonarqube-backend/README.md new file mode 100644 index 0000000000..0fad3b67f3 --- /dev/null +++ b/plugins/sonarqube-backend/README.md @@ -0,0 +1,13 @@ +# sonarqube-backend + +Welcome to the sonarqube-backend backend plugin! + +_This plugin was created through the Backstage CLI_ + +## Getting started + +Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/sonarqube-backend](http://localhost:3000/sonarqube-backend). + +You can also serve the plugin in isolation by running `yarn start` in the plugin directory. +This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. +It is only meant for local development, and the setup for it can be found inside the [/dev](/dev) directory. diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json new file mode 100644 index 0000000000..ca2b98c10e --- /dev/null +++ b/plugins/sonarqube-backend/package.json @@ -0,0 +1,44 @@ +{ + "name": "plugin-sonarqube-backend", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": true, + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "backend-plugin" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/backend-common": "^0.13.6-next.1", + "@backstage/config": "^1.0.1", + "@types/express": "*", + "express": "^4.17.1", + "express-promise-router": "^4.1.0", + "winston": "^3.2.1", + "node-fetch": "^2.6.7", + "yn": "^4.0.0" + }, + "devDependencies": { + "@backstage/cli": "^0.17.2-next.1", + "@types/supertest": "^2.0.8", + "supertest": "^4.0.2", + "msw": "^0.42.0" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/sonarqube-backend/src/index.ts b/plugins/sonarqube-backend/src/index.ts new file mode 100644 index 0000000000..ca73cb27ba --- /dev/null +++ b/plugins/sonarqube-backend/src/index.ts @@ -0,0 +1,17 @@ +/* + * 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. + */ + +export * from './service/router'; diff --git a/plugins/sonarqube-backend/src/run.ts b/plugins/sonarqube-backend/src/run.ts new file mode 100644 index 0000000000..0a3ed2b7f0 --- /dev/null +++ b/plugins/sonarqube-backend/src/run.ts @@ -0,0 +1,33 @@ +/* + * 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 { getRootLogger } from '@backstage/backend-common'; +import yn from 'yn'; +import { startStandaloneServer } from './service/standaloneServer'; + +const port = process.env.PLUGIN_PORT ? Number(process.env.PLUGIN_PORT) : 7007; +const enableCors = yn(process.env.PLUGIN_CORS, { default: false }); +const logger = getRootLogger(); + +startStandaloneServer({ port, enableCors, logger }).catch(err => { + logger.error(err); + process.exit(1); +}); + +process.on('SIGINT', () => { + logger.info('CTRL+C pressed; exiting.'); + process.exit(0); +}); diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts new file mode 100644 index 0000000000..8b77a04348 --- /dev/null +++ b/plugins/sonarqube-backend/src/service/router.test.ts @@ -0,0 +1,45 @@ +/* + * 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 { getVoidLogger } from '@backstage/backend-common'; +import express from 'express'; +import request from 'supertest'; + +import { createRouter } from './router'; + +describe('createRouter', () => { + let app: express.Express; + + beforeAll(async () => { + const router = await createRouter({ + logger: getVoidLogger(), + }); + app = express().use(router); + }); + + beforeEach(() => { + jest.resetAllMocks(); + }); + + describe('GET /health', () => { + it('returns ok', async () => { + const response = await request(app).get('/health'); + + expect(response.status).toEqual(200); + expect(response.body).toEqual({ status: 'ok' }); + }); + }); +}); diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts new file mode 100644 index 0000000000..9ceaa47627 --- /dev/null +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -0,0 +1,40 @@ +/* + * 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 { errorHandler } from '@backstage/backend-common'; +import express from 'express'; +import Router from 'express-promise-router'; +import { Logger } from 'winston'; + +export interface RouterOptions { + logger: Logger; +} + +export async function createRouter( + options: RouterOptions, +): Promise { + const { logger } = options; + + const router = Router(); + router.use(express.json()); + + router.get('/health', (_, response) => { + logger.info('PONG!'); + response.send({ status: 'ok' }); + }); + router.use(errorHandler()); + return router; +} diff --git a/plugins/sonarqube-backend/src/service/standaloneServer.ts b/plugins/sonarqube-backend/src/service/standaloneServer.ts new file mode 100644 index 0000000000..78f39b2680 --- /dev/null +++ b/plugins/sonarqube-backend/src/service/standaloneServer.ts @@ -0,0 +1,50 @@ +/* + * 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 { createServiceBuilder } from '@backstage/backend-common'; +import { Server } from 'http'; +import { Logger } from 'winston'; +import { createRouter } from './router'; + +export interface ServerOptions { + port: number; + enableCors: boolean; + logger: Logger; +} + +export async function startStandaloneServer( + options: ServerOptions, +): Promise { + const logger = options.logger.child({ service: 'sonarqube-backend-backend' }); + logger.debug('Starting application server...'); + const router = await createRouter({ + logger, + }); + + let service = createServiceBuilder(module) + .setPort(options.port) + .addRouter('/sonarqube-backend', router); + if (options.enableCors) { + service = service.enableCors({ origin: 'http://localhost:3000' }); + } + + return await service.start().catch(err => { + logger.error(err); + process.exit(1); + }); +} + +module.hot?.accept(); diff --git a/plugins/sonarqube-backend/src/setupTests.ts b/plugins/sonarqube-backend/src/setupTests.ts new file mode 100644 index 0000000000..d3232290a7 --- /dev/null +++ b/plugins/sonarqube-backend/src/setupTests.ts @@ -0,0 +1,17 @@ +/* + * 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. + */ + +export {}; From 619b5151721ad879cb608efef861f65f76644d3f Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Thu, 16 Jun 2022 17:50:24 +0200 Subject: [PATCH 009/377] Modify sonarqube frontend plugin to call the new sonarqube backend backend only have mock API for now Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .changeset/forty-lobsters-guess.md | 9 ++ .../src/service/router.test.ts | 12 +- .../sonarqube-backend/src/service/router.ts | 11 +- .../sonarqube/src/api/SonarQubeClient.test.ts | 138 +++--------------- plugins/sonarqube/src/api/SonarQubeClient.ts | 55 ++----- plugins/sonarqube/src/api/types.ts | 10 +- 6 files changed, 57 insertions(+), 178 deletions(-) create mode 100644 .changeset/forty-lobsters-guess.md diff --git a/.changeset/forty-lobsters-guess.md b/.changeset/forty-lobsters-guess.md new file mode 100644 index 0000000000..50dd22627f --- /dev/null +++ b/.changeset/forty-lobsters-guess.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-sonarqube': minor +--- + +**BREAKING** This plugin now call the sonarqube-backend plugin instead of relying on the proxy plugin + +The whole proxy's `'/sonarqube':` key can be removed from your configuration files. + +Then head to the sonarqube-backend plugin page to learn how to set-up the link to your sonarqube instances. diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts index 8b77a04348..24e482896b 100644 --- a/plugins/sonarqube-backend/src/service/router.test.ts +++ b/plugins/sonarqube-backend/src/service/router.test.ts @@ -34,12 +34,18 @@ describe('createRouter', () => { jest.resetAllMocks(); }); - describe('GET /health', () => { + describe('GET /findings', () => { it('returns ok', async () => { - const response = await request(app).get('/health'); + const response = await request(app) + .get('/findings') + .set('componentKey', 'my:app') + .send(); expect(response.status).toEqual(200); - expect(response.body).toEqual({ status: 'ok' }); + expect(response.body).toEqual({ + analysisDate: '2022-10-22T04:55:23Z', + measures: [{ metric: 'coverage', value: '50' }], + }); }); }); }); diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index 9ceaa47627..9d13104d82 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -30,10 +30,13 @@ export async function createRouter( const router = Router(); router.use(express.json()); - - router.get('/health', (_, response) => { - logger.info('PONG!'); - response.send({ status: 'ok' }); + // mock api for now + router.get('/findings', (request, response) => { + logger.info(request.params); + response.send({ + analysisDate: '2022-10-22T04:55:23Z', + measures: [{ metric: 'coverage', value: '50' }], + }); }); router.use(errorHandler()); return router; diff --git a/plugins/sonarqube/src/api/SonarQubeClient.test.ts b/plugins/sonarqube/src/api/SonarQubeClient.test.ts index b592953434..1727e73e93 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.test.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.test.ts @@ -18,7 +18,7 @@ import { setupRequestMockHandlers } from '@backstage/test-utils'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { FindingSummary, SonarQubeClient } from './index'; -import { ComponentWrapper, MeasuresWrapper } from './types'; +import { FindingsWrapper } from './types'; import { UrlPatternDiscovery } from '@backstage/core-app-api'; import { IdentityApi } from '@backstage/core-plugin-api'; @@ -40,133 +40,66 @@ const identityApiGuest: IdentityApi = { describe('SonarQubeClient', () => { setupRequestMockHandlers(server); - const mockBaseUrl = 'http://backstage:9191/api/proxy'; + const mockBaseUrl = 'http://backstage:9191/api/sonarqube'; const discoveryApi = UrlPatternDiscovery.compile(mockBaseUrl); - const setupHandlers = ( - metricKeys = [ - 'alert_status', - 'bugs', - 'reliability_rating', - 'vulnerabilities', - 'security_rating', - 'security_hotspots_reviewed', - 'security_review_rating', - 'code_smells', - 'sqale_rating', - 'coverage', - 'duplicated_lines_density', - ], - ) => { + const setupHandlers = () => { server.use( - rest.get(`${mockBaseUrl}/sonarqube/metrics/search`, (req, res, ctx) => { - expect(req.url.searchParams.get('ps')).toBe('500'); - - // emulate paging to check if everything is requested - if (req.url.searchParams.get('p') === '1') { - return res( - ctx.json({ - metrics: metricKeys.slice(0, 5).map(k => ({ key: k })), - total: metricKeys.length, - }), - ); - } - - // make sure this is only called twice - expect(req.url.searchParams.get('p')).toBe('2'); - return res( - ctx.json({ - metrics: metricKeys.slice(5).map(k => ({ key: k })), - total: metricKeys.length, - }), - ); - }), - ); - - server.use( - rest.get(`${mockBaseUrl}/sonarqube/components/show`, (req, res, ctx) => { - expect(req.url.searchParams.toString()).toBe('component=our%3Aservice'); - return res( - ctx.json({ - component: { - analysisDate: '2020-01-01T00:00:00Z', - }, - } as ComponentWrapper), - ); - }), - ); - - server.use( - rest.get(`${mockBaseUrl}/sonarqube/measures/search`, (req, res, ctx) => { + rest.get(`${mockBaseUrl}/findings`, (req, res, ctx) => { expect(req.url.searchParams.toString()).toBe( - `projectKeys=our%3Aservice&metricKeys=${metricKeys.join('%2C')}`, + 'componentKey=our%3Aservice', ); return res( ctx.json({ + analysisDate: '2020-01-01T00:00:00Z', measures: [ { metric: 'alert_status', value: 'OK', - component: 'our:service', - }, - { - metric: 'alert_status', - value: 'ERROR', - component: 'other-service', }, { metric: 'bugs', value: '2', - component: 'our:service', }, { metric: 'reliability_rating', value: '3.0', - component: 'our:service', }, { metric: 'vulnerabilities', value: '4', - component: 'our:service', }, { metric: 'security_rating', value: '1.0', - component: 'our:service', }, { metric: 'security_hotspots_reviewed', value: '100', - component: 'our:service', }, { metric: 'security_review_rating', value: '1.0', - component: 'our:service', }, { metric: 'code_smells', value: '100', - component: 'our:service', }, { metric: 'sqale_rating', value: '2.0', - component: 'our:service', }, { metric: 'coverage', value: '55.5', - component: 'our:service', }, { metric: 'duplicated_lines_density', value: '1.0', - component: 'our:service', }, - ].filter(m => metricKeys.includes(m.metric)), - } as MeasuresWrapper), + ], + } as FindingsWrapper), ); }), ); @@ -246,47 +179,19 @@ describe('SonarQubeClient', () => { ); }); - it('should only request selected metrics', async () => { - setupHandlers(['alert_status', 'bugs']); - - const client = new SonarQubeClient({ - discoveryApi, - baseUrl: 'http://a.instance.local', - identityApi: identityApiAuthenticated, - }); - - const summary = await client.getFindingSummary('our:service'); - - expect(summary).toEqual( - expect.objectContaining({ - lastAnalysis: '2020-01-01T00:00:00Z', - metrics: { - alert_status: 'OK', - bugs: '2', - }, - projectUrl: 'http://a.instance.local/dashboard?id=our%3Aservice', - }) as FindingSummary, - ); - expect(summary?.getIssuesUrl('CODE_SMELL')).toEqual( - 'http://a.instance.local/project/issues?id=our%3Aservice&types=CODE_SMELL&resolved=false', - ); - expect(summary?.getComponentMeasuresUrl('COVERAGE')).toEqual( - 'http://a.instance.local/component_measures?id=our%3Aservice&metric=coverage&resolved=false&view=list', - ); - }); - it('should add identity token for logged in users', async () => { setupHandlers(); server.use( - rest.get(`${mockBaseUrl}/sonarqube/components/show`, (req, res, ctx) => { - expect(req.url.searchParams.toString()).toBe('component=our%3Aservice'); + rest.get(`${mockBaseUrl}/findings`, (req, res, ctx) => { + expect(req.url.searchParams.toString()).toBe( + 'componentKey=our%3Aservice', + ); expect(req.headers.get('Authorization')).toBe('Bearer fake-id-token'); return res( ctx.json({ - component: { - analysisDate: '2020-01-01T00:00:00Z', - }, - } as ComponentWrapper), + analysisDate: '2020-01-01T00:00:00Z', + measures: [], + } as FindingsWrapper), ); }), ); @@ -304,15 +209,16 @@ describe('SonarQubeClient', () => { it('should omit identity token for guest users', async () => { setupHandlers(); server.use( - rest.get(`${mockBaseUrl}/sonarqube/components/show`, (req, res, ctx) => { - expect(req.url.searchParams.toString()).toBe('component=our%3Aservice'); + rest.get(`${mockBaseUrl}/findings`, (req, res, ctx) => { + expect(req.url.searchParams.toString()).toBe( + 'componentKey=our%3Aservice', + ); expect(req.headers.has('Authorization')).toBeFalsy(); return res( ctx.json({ - component: { - analysisDate: '2020-01-01T00:00:00Z', - }, - } as ComponentWrapper), + analysisDate: '2020-01-01T00:00:00Z', + measures: [], + } as FindingsWrapper), ); }), ); diff --git a/plugins/sonarqube/src/api/SonarQubeClient.ts b/plugins/sonarqube/src/api/SonarQubeClient.ts index 39d0f11369..ed0b7dc3a7 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.ts @@ -16,7 +16,7 @@ import fetch from 'cross-fetch'; import { FindingSummary, Metrics, SonarQubeApi } from './SonarQubeApi'; -import { ComponentWrapper, MeasuresWrapper } from './types'; +import { FindingsWrapper } from './types'; import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; export class SonarQubeClient implements SonarQubeApi { @@ -44,7 +44,7 @@ export class SonarQubeClient implements SonarQubeApi { ): Promise { const { token: idToken } = await this.identityApi.getCredentials(); - const apiUrl = `${await this.discoveryApi.getBaseUrl('proxy')}/sonarqube`; + const apiUrl = `${await this.discoveryApi.getBaseUrl('sonarqube')}`; const response = await fetch( `${apiUrl}/${path}?${new URLSearchParams(query).toString()}`, { @@ -60,27 +60,6 @@ export class SonarQubeClient implements SonarQubeApi { return undefined; } - private async getSupportedMetrics(): Promise { - const metrics: string[] = []; - let nextPage: number = 1; - - for (;;) { - const result = await this.callApi<{ - metrics: Array<{ key: string }>; - total: number; - }>('metrics/search', { ps: 500, p: nextPage }); - - metrics.push(...(result?.metrics?.map(m => m.key) ?? [])); - - if (result && metrics.length < result.total) { - nextPage++; - continue; - } - - return metrics; - } - } - async getFindingSummary( componentKey?: string, ): Promise { @@ -88,13 +67,6 @@ export class SonarQubeClient implements SonarQubeApi { return undefined; } - const component = await this.callApi('components/show', { - component: componentKey, - }); - if (!component) { - return undefined; - } - const metrics: Metrics = { alert_status: undefined, bugs: undefined, @@ -109,28 +81,19 @@ export class SonarQubeClient implements SonarQubeApi { duplicated_lines_density: undefined, }; - // select the metrics that are supported by the SonarQube instance - const supportedMetrics = await this.getSupportedMetrics(); - const metricKeys = Object.keys(metrics).filter(m => - supportedMetrics.includes(m), - ); - - const measures = await this.callApi('measures/search', { - projectKeys: componentKey, - metricKeys: metricKeys.join(','), + const findings = await this.callApi('findings', { + componentKey: componentKey, }); - if (!measures) { + if (!findings) { return undefined; } - measures.measures - .filter(m => m.component === componentKey) - .forEach(m => { - metrics[m.metric] = m.value; - }); + findings.measures.forEach(m => { + metrics[m.metric] = m.value; + }); return { - lastAnalysis: component.component.analysisDate, + lastAnalysis: findings.analysisDate, metrics, projectUrl: `${this.baseUrl}dashboard?id=${encodeURIComponent( componentKey, diff --git a/plugins/sonarqube/src/api/types.ts b/plugins/sonarqube/src/api/types.ts index 6e951f9d8b..27f065d36a 100644 --- a/plugins/sonarqube/src/api/types.ts +++ b/plugins/sonarqube/src/api/types.ts @@ -14,15 +14,8 @@ * limitations under the License. */ -export interface ComponentWrapper { - component: Component; -} - -export interface Component { +export interface FindingsWrapper { analysisDate: string; -} - -export interface MeasuresWrapper { measures: Measure[]; } @@ -55,7 +48,6 @@ export type MetricKey = export interface Measure { metric: MetricKey; value: string; - component: string; } export type SonarUrlProcessorFunc = (identifier: string) => string; From f9c310a4395cf79c5c4b2d3c2b33b03bfca8b96c Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 17 Jun 2022 17:43:40 +0200 Subject: [PATCH 010/377] Modify sonarqube frontend plugin to handle multiple sonarqube instances The instance name should be provided into the annotation in the `catalog-info.yaml` Care has been taken to provide backward compatibility of previous annotation into the default sonarqube instance Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .changeset/ten-roses-walk.md | 5 ++ .../sonarqube-backend/src/service/router.ts | 8 ++ plugins/sonarqube/src/api/SonarQubeApi.ts | 5 +- .../sonarqube/src/api/SonarQubeClient.test.ts | 79 ++++++++++++++----- plugins/sonarqube/src/api/SonarQubeClient.ts | 37 ++++++--- plugins/sonarqube/src/api/types.ts | 4 + .../SonarQubeCard/SonarQubeCard.tsx | 6 +- .../sonarqube/src/components/useProjectKey.ts | 32 +++++++- plugins/sonarqube/src/plugin.ts | 5 +- 9 files changed, 139 insertions(+), 42 deletions(-) create mode 100644 .changeset/ten-roses-walk.md diff --git a/.changeset/ten-roses-walk.md b/.changeset/ten-roses-walk.md new file mode 100644 index 0000000000..14d0819c38 --- /dev/null +++ b/.changeset/ten-roses-walk.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-sonarqube': patch +--- + +Add ability to provide an optional sonarqube instance into the annotation in the `catalog-info.yaml` file diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index 9d13104d82..54f0038ca9 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -38,6 +38,14 @@ export async function createRouter( measures: [{ metric: 'coverage', value: '50' }], }); }); + router.get('/instanceUrl', (request, response) => { + logger.info(request.params); + response.send({ + instanceUrl: `https://instance.local?${encodeURI( + request.query.instanceKey as string, + )}`, + }); + }); router.use(errorHandler()); return router; } diff --git a/plugins/sonarqube/src/api/SonarQubeApi.ts b/plugins/sonarqube/src/api/SonarQubeApi.ts index 3b39b30eb0..2232a00d9f 100644 --- a/plugins/sonarqube/src/api/SonarQubeApi.ts +++ b/plugins/sonarqube/src/api/SonarQubeApi.ts @@ -38,5 +38,8 @@ export const sonarQubeApiRef = createApiRef({ }); export type SonarQubeApi = { - getFindingSummary(componentKey?: string): Promise; + getFindingSummary( + projectInstance?: string, + componentKey?: string, + ): Promise; }; diff --git a/plugins/sonarqube/src/api/SonarQubeClient.test.ts b/plugins/sonarqube/src/api/SonarQubeClient.test.ts index 1727e73e93..87137ea93f 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.test.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.test.ts @@ -18,7 +18,7 @@ import { setupRequestMockHandlers } from '@backstage/test-utils'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { FindingSummary, SonarQubeClient } from './index'; -import { FindingsWrapper } from './types'; +import { InstanceUrlWrapper, FindingsWrapper } from './types'; import { UrlPatternDiscovery } from '@backstage/core-app-api'; import { IdentityApi } from '@backstage/core-plugin-api'; @@ -47,7 +47,7 @@ describe('SonarQubeClient', () => { server.use( rest.get(`${mockBaseUrl}/findings`, (req, res, ctx) => { expect(req.url.searchParams.toString()).toBe( - 'componentKey=our%3Aservice', + 'componentKey=our%3Aservice&instanceKey=', ); return res( @@ -103,6 +103,17 @@ describe('SonarQubeClient', () => { ); }), ); + server.use( + rest.get(`${mockBaseUrl}/instanceUrl`, (req, res, ctx) => { + expect(req.url.searchParams.toString()).toBe('instanceKey='); + + return res( + ctx.json({ + instanceUrl: 'https://sonarcloud.io', + } as InstanceUrlWrapper), + ); + }), + ); }; it('should report finding summary', async () => { @@ -143,30 +154,60 @@ describe('SonarQubeClient', () => { it('should report finding summary (custom baseUrl)', async () => { setupHandlers(); + server.use( + rest.get(`${mockBaseUrl}/instanceUrl`, (req, res, ctx) => { + expect(req.url.searchParams.toString()).toBe('instanceKey=custom'); + + return res( + ctx.json({ + instanceUrl: 'http://a.instance.local', + } as InstanceUrlWrapper), + ); + }), + ); + + server.use( + rest.get(`${mockBaseUrl}/findings`, (req, res, ctx) => { + expect(req.url.searchParams.toString()).toBe( + 'componentKey=our%3Aservice&instanceKey=custom', + ); + + return res( + ctx.json({ + analysisDate: '2020-01-03T00:00:00Z', + measures: [ + { + metric: 'alert_status', + value: 'ERROR', + }, + { + metric: 'bugs', + value: '45', + }, + { + metric: 'reliability_rating', + value: '5.0', + }, + ], + } as FindingsWrapper), + ); + }), + ); const client = new SonarQubeClient({ discoveryApi, - baseUrl: 'http://a.instance.local', identityApi: identityApiAuthenticated, }); - const summary = await client.getFindingSummary('our:service'); + const summary = await client.getFindingSummary('our:service', 'custom'); expect(summary).toEqual( expect.objectContaining({ - lastAnalysis: '2020-01-01T00:00:00Z', + lastAnalysis: '2020-01-03T00:00:00Z', metrics: { - alert_status: 'OK', - bugs: '2', - reliability_rating: '3.0', - vulnerabilities: '4', - security_rating: '1.0', - security_hotspots_reviewed: '100', - security_review_rating: '1.0', - code_smells: '100', - sqale_rating: '2.0', - coverage: '55.5', - duplicated_lines_density: '1.0', + alert_status: 'ERROR', + bugs: '45', + reliability_rating: '5.0', }, projectUrl: 'http://a.instance.local/dashboard?id=our%3Aservice', }) as FindingSummary, @@ -184,7 +225,7 @@ describe('SonarQubeClient', () => { server.use( rest.get(`${mockBaseUrl}/findings`, (req, res, ctx) => { expect(req.url.searchParams.toString()).toBe( - 'componentKey=our%3Aservice', + 'componentKey=our%3Aservice&instanceKey=', ); expect(req.headers.get('Authorization')).toBe('Bearer fake-id-token'); return res( @@ -198,7 +239,6 @@ describe('SonarQubeClient', () => { const client = new SonarQubeClient({ discoveryApi, - baseUrl: 'http://a.instance.local', identityApi: identityApiAuthenticated, }); const summary = await client.getFindingSummary('our:service'); @@ -211,7 +251,7 @@ describe('SonarQubeClient', () => { server.use( rest.get(`${mockBaseUrl}/findings`, (req, res, ctx) => { expect(req.url.searchParams.toString()).toBe( - 'componentKey=our%3Aservice', + 'componentKey=our%3Aservice&instanceKey=', ); expect(req.headers.has('Authorization')).toBeFalsy(); return res( @@ -225,7 +265,6 @@ describe('SonarQubeClient', () => { const client = new SonarQubeClient({ discoveryApi, - baseUrl: 'http://a.instance.local', identityApi: identityApiGuest, }); const summary = await client.getFindingSummary('our:service'); diff --git a/plugins/sonarqube/src/api/SonarQubeClient.ts b/plugins/sonarqube/src/api/SonarQubeClient.ts index ed0b7dc3a7..59182d917f 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.ts @@ -16,26 +16,22 @@ import fetch from 'cross-fetch'; import { FindingSummary, Metrics, SonarQubeApi } from './SonarQubeApi'; -import { FindingsWrapper } from './types'; +import { InstanceUrlWrapper, FindingsWrapper } from './types'; import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; export class SonarQubeClient implements SonarQubeApi { discoveryApi: DiscoveryApi; - baseUrl: string; identityApi: IdentityApi; constructor({ discoveryApi, identityApi, - baseUrl = 'https://sonarcloud.io/', }: { discoveryApi: DiscoveryApi; identityApi: IdentityApi; - baseUrl?: string; }) { this.discoveryApi = discoveryApi; this.identityApi = identityApi; - this.baseUrl = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`; } private async callApi( @@ -62,11 +58,14 @@ export class SonarQubeClient implements SonarQubeApi { async getFindingSummary( componentKey?: string, + projectInstance?: string, ): Promise { if (!componentKey) { return undefined; } + const instanceKey = projectInstance || ''; + const metrics: Metrics = { alert_status: undefined, bugs: undefined, @@ -81,8 +80,24 @@ export class SonarQubeClient implements SonarQubeApi { duplicated_lines_density: undefined, }; + const baseUrlWrapper = await this.callApi( + 'instanceUrl', + { + instanceKey, + }, + ); + let baseUrl = baseUrlWrapper?.instanceUrl; + if (!baseUrl) { + return undefined; + } + // ensure trailing slash for later on + if (!baseUrl.endsWith('/')) { + baseUrl += '/'; + } + const findings = await this.callApi('findings', { - componentKey: componentKey, + componentKey, + instanceKey, }); if (!findings) { return undefined; @@ -95,21 +110,19 @@ export class SonarQubeClient implements SonarQubeApi { return { lastAnalysis: findings.analysisDate, metrics, - projectUrl: `${this.baseUrl}dashboard?id=${encodeURIComponent( - componentKey, - )}`, + projectUrl: `${baseUrl}dashboard?id=${encodeURIComponent(componentKey)}`, getIssuesUrl: identifier => - `${this.baseUrl}project/issues?id=${encodeURIComponent( + `${baseUrl}project/issues?id=${encodeURIComponent( componentKey, )}&types=${identifier.toLocaleUpperCase('en-US')}&resolved=false`, getComponentMeasuresUrl: identifier => - `${this.baseUrl}component_measures?id=${encodeURIComponent( + `${baseUrl}component_measures?id=${encodeURIComponent( componentKey, )}&metric=${identifier.toLocaleLowerCase( 'en-US', )}&resolved=false&view=list`, getSecurityHotspotsUrl: () => - `${this.baseUrl}project/security_hotspots?id=${encodeURIComponent( + `${baseUrl}project/security_hotspots?id=${encodeURIComponent( componentKey, )}`, }; diff --git a/plugins/sonarqube/src/api/types.ts b/plugins/sonarqube/src/api/types.ts index 27f065d36a..348986149d 100644 --- a/plugins/sonarqube/src/api/types.ts +++ b/plugins/sonarqube/src/api/types.ts @@ -14,6 +14,10 @@ * limitations under the License. */ +export interface InstanceUrlWrapper { + instanceUrl: string; +} + export interface FindingsWrapper { analysisDate: string; measures: Measure[]; diff --git a/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx b/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx index 4527c2a3e3..d8aaec04f2 100644 --- a/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx +++ b/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx @@ -26,7 +26,7 @@ import useAsync from 'react-use/lib/useAsync'; import { sonarQubeApiRef } from '../../api'; import { SONARQUBE_PROJECT_KEY_ANNOTATION, - useProjectKey, + useProjectInfo, } from '../useProjectKey'; import { Percentage } from './Percentage'; import { Rating } from './Rating'; @@ -95,10 +95,10 @@ export const SonarQubeCard = ({ const { entity } = useEntity(); const sonarQubeApi = useApi(sonarQubeApiRef); - const projectTitle = useProjectKey(entity); + const { projectKey: projectTitle, projectInstance } = useProjectInfo(entity); const { value, loading } = useAsync( - async () => sonarQubeApi.getFindingSummary(projectTitle), + async () => sonarQubeApi.getFindingSummary(projectTitle, projectInstance), [sonarQubeApi, projectTitle], ); diff --git a/plugins/sonarqube/src/components/useProjectKey.ts b/plugins/sonarqube/src/components/useProjectKey.ts index 18596a8171..b091ea597c 100644 --- a/plugins/sonarqube/src/components/useProjectKey.ts +++ b/plugins/sonarqube/src/components/useProjectKey.ts @@ -16,11 +16,39 @@ import { Entity } from '@backstage/catalog-model'; +export interface ProjectInfo { + projectInstance: string; + projectKey: string; +} + export const SONARQUBE_PROJECT_KEY_ANNOTATION = 'sonarqube.org/project-key'; +export const SONARQUBE_PROJECT_INSTANCE_SEPARATOR = '/'; export const isSonarQubeAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[SONARQUBE_PROJECT_KEY_ANNOTATION]); -export const useProjectKey = (entity: Entity) => { - return entity?.metadata.annotations?.[SONARQUBE_PROJECT_KEY_ANNOTATION] ?? ''; +/** + * Try to parse sonarqube information from an entity. + * + * If part are all info are not found, they will default to an empty string + * + * @param entity entity to find the sonarqube information from. + * @return a ProjectInfo properly populated. + */ +export const useProjectInfo = (entity: Entity): ProjectInfo => { + let projectInstance = ''; + let projectKey = ''; + const annotation = + entity?.metadata.annotations?.[SONARQUBE_PROJECT_KEY_ANNOTATION]; + if (annotation) { + if (annotation.indexOf(SONARQUBE_PROJECT_INSTANCE_SEPARATOR) > -1) { + [projectInstance, projectKey] = annotation.split( + SONARQUBE_PROJECT_INSTANCE_SEPARATOR, + 2, + ); + } else { + projectKey = annotation; + } + } + return { projectInstance, projectKey }; }; diff --git a/plugins/sonarqube/src/plugin.ts b/plugins/sonarqube/src/plugin.ts index 5662a41f2f..4ac49b2350 100644 --- a/plugins/sonarqube/src/plugin.ts +++ b/plugins/sonarqube/src/plugin.ts @@ -16,7 +16,6 @@ import { sonarQubeApiRef, SonarQubeClient } from './api'; import { - configApiRef, createApiFactory, createComponentExtension, createPlugin, @@ -30,14 +29,12 @@ export const sonarQubePlugin = createPlugin({ createApiFactory({ api: sonarQubeApiRef, deps: { - configApi: configApiRef, discoveryApi: discoveryApiRef, identityApi: identityApiRef, }, - factory: ({ configApi, discoveryApi, identityApi }) => + factory: ({ discoveryApi, identityApi }) => new SonarQubeClient({ discoveryApi, - baseUrl: configApi.getOptionalString('sonarQube.baseUrl'), identityApi, }), }), From 4d0fc08d4b0ed36802e0a9263ab050739cd41319 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 17 Jun 2022 17:46:52 +0200 Subject: [PATCH 011/377] Update sonarqube plugin's README.md to reflect recent changes No more use for proxy configuration Optional instance name in project annotations Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube/README.md | 44 +++++-------------------------------- 1 file changed, 5 insertions(+), 39 deletions(-) diff --git a/plugins/sonarqube/README.md b/plugins/sonarqube/README.md index febce4ecfc..d8ed6dfb8d 100644 --- a/plugins/sonarqube/README.md +++ b/plugins/sonarqube/README.md @@ -33,50 +33,14 @@ yarn add --cwd packages/app @backstage/plugin-sonarqube ); ``` -3. Add the proxy config: - - Provide a method for your Backstage backend to get to your SonarQube API end point. Add configuration to your `app-config.yaml` file depending on the product you use. Make sure to keep the trailing colon after the `SONARQUBE_TOKEN`, it is required to call - the Web API (see [docs](https://docs.sonarqube.org/latest/extend/web-api/)). - -**SonarCloud** - -```yaml -proxy: - '/sonarqube': - target: https://sonarcloud.io/api - allowedMethods: ['GET'] - # note that the colon after the token is required - auth: '${SONARQUBE_TOKEN}:' - # Environmental variable: SONARQUBE_TOKEN - # Fetch the sonar-auth-token from https://sonarcloud.io/account/security/ -``` - -**SonarQube** - -```yaml -proxy: - '/sonarqube': - target: https://your.sonarqube.instance.com/api - allowedMethods: ['GET'] - # note that the colon after the token is required - auth: '${SONARQUBE_TOKEN}:' - # Environmental variable: SONARQUBE_TOKEN - # Fetch the sonar-auth-token from https://sonarcloud.io/account/security/ - -sonarQube: - baseUrl: https://your.sonarqube.instance.com -``` - -4. Get and provide `SONARQUBE_TOKEN` as an env variable (https://sonarcloud.io/account/security or https://docs.sonarqube.org/latest/user-guide/user-token/). - -5. Run the following commands in the root folder of the project to install and compile the changes. +3. Run the following commands in the root folder of the project to install and compile the changes. ```yaml yarn install yarn tsc ``` -6. Add the `sonarqube.org/project-key` annotation to the `catalog-info.yaml` file of the target repo for which code quality analysis is needed. +4. Add the `sonarqube.org/project-key` annotation to the `catalog-info.yaml` file of the target repo for which code quality analysis is needed. ```yaml apiVersion: backstage.io/v1alpha1 @@ -86,9 +50,11 @@ metadata: description: | Backstage is an open-source developer portal that puts the developer experience first. annotations: - sonarqube.org/project-key: YOUR_PROJECT_KEY + sonarqube.org/project-key: YOUR_INSTANCE_NAME/YOUR_PROJECT_KEY spec: type: library owner: CNCF lifecycle: experimental ``` + +`YOUR_INSTANCE_NAME/` is optional and will query the default instance if not provided. From 55a31cc7538d8fa7b318fd3a95f8ac016e2d5694 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Thu, 21 Jul 2022 13:19:55 +0200 Subject: [PATCH 012/377] Add sonarqubeInfoProvider in sonarqube-backend plugin Handle config and sonarqube api call Heavily inspired from the jenkinsInfoProvider in the jenkins-backend plugin Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/src/index.ts | 1 + .../src/service/sonarqubeInfoProvider.test.ts | 504 ++++++++++++++++++ .../src/service/sonarqubeInfoProvider.ts | 371 +++++++++++++ 3 files changed, 876 insertions(+) create mode 100644 plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts create mode 100644 plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts diff --git a/plugins/sonarqube-backend/src/index.ts b/plugins/sonarqube-backend/src/index.ts index ca73cb27ba..c91aef09f8 100644 --- a/plugins/sonarqube-backend/src/index.ts +++ b/plugins/sonarqube-backend/src/index.ts @@ -15,3 +15,4 @@ */ export * from './service/router'; +export * from './service/sonarqubeInfoProvider'; diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts new file mode 100644 index 0000000000..fcb73da926 --- /dev/null +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts @@ -0,0 +1,504 @@ +/* + * 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 { ConfigReader } from '../../../../packages/config'; +import { + DefaultSonarqubeInfoProvider, + SonarqubeConfig, +} from './sonarqubeInfoProvider'; +import { setupServer } from 'msw/node'; +import { setupRequestMockHandlers } from '../../../../packages/test-utils'; +import { rest, RestRequest } from 'msw'; + +describe('SonarqubeConfig', () => { + const SONARQUBE_DEFAULT_INSTANCE_NAME = 'default'; + const DUMMY_SONAR_URL = 'https://sonarqube.example.com'; + const DUMMY_SONAR_APIKEY = '123456789abcdef0123456789abcedf012'; + const DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG = { + name: SONARQUBE_DEFAULT_INSTANCE_NAME, + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }; + const DUMMY_SIMPLE_CONFIG = { + sonarqube: { + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }, + }; + const DUMMY_NAMED_CONFIG = { + sonarqube: { + instances: [ + { + name: SONARQUBE_DEFAULT_INSTANCE_NAME, + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }, + ], + }, + }; + + describe('fromConfig', () => { + it('Reads simple config and annotation', async () => { + const config = SonarqubeConfig.fromConfig( + new ConfigReader(DUMMY_SIMPLE_CONFIG), + ); + + expect(config.instances).toEqual([ + { + name: SONARQUBE_DEFAULT_INSTANCE_NAME, + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }, + ]); + }); + + it('Reads named default config and annotation', async () => { + const config = SonarqubeConfig.fromConfig( + new ConfigReader(DUMMY_NAMED_CONFIG), + ); + + expect(config.instances).toEqual([ + { + name: SONARQUBE_DEFAULT_INSTANCE_NAME, + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }, + ]); + }); + + it('Parses named default config (amongst named other configs)', async () => { + const config = SonarqubeConfig.fromConfig( + new ConfigReader({ + sonarqube: { + instances: [ + { + name: SONARQUBE_DEFAULT_INSTANCE_NAME, + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }, + { + name: 'other', + baseUrl: 'https://sonarqube-other.example.com', + apiKey: 'abcdef0123456789abcedf0123456789abc', + }, + ], + }, + }), + ); + + expect(config.instances).toEqual([ + { + name: SONARQUBE_DEFAULT_INSTANCE_NAME, + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }, + { + name: 'other', + baseUrl: 'https://sonarqube-other.example.com', + apiKey: 'abcdef0123456789abcedf0123456789abc', + }, + ]); + }); + it('Throw an error if both a named default config and top level config', async () => { + expect(() => + SonarqubeConfig.fromConfig( + new ConfigReader({ + sonarqube: { + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + instances: [ + { + name: SONARQUBE_DEFAULT_INSTANCE_NAME, + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }, + ], + }, + }), + ), + ).toThrowError(Error); + }); + + it('Throw an error if default config is partially provided', async () => { + expect(() => + SonarqubeConfig.fromConfig( + new ConfigReader({ + sonarqube: { + baseUrl: DUMMY_SONAR_URL, + }, + }), + ), + ).toThrowError(Error); + }); + }); + + describe('getInstanceConfig', () => { + it('Gets default instance when no parameter given', async () => { + const config = new SonarqubeConfig([ + DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG, + { + name: 'other', + baseUrl: 'https://sonarqube-other.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + ]); + + expect(config.getInstanceConfig()).toEqual({ + name: SONARQUBE_DEFAULT_INSTANCE_NAME, + baseUrl: DUMMY_SONAR_URL, + apiKey: DUMMY_SONAR_APIKEY, + }); + }); + + it('Gets default instance when "default" given', async () => { + const config = new SonarqubeConfig([ + DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG, + { + name: 'other', + baseUrl: 'https://sonarqube-other.example.com', + apiKey: 'abcdef0123456789abcedf0123456789abc', + }, + ]); + + expect(config.getInstanceConfig('default')).toEqual({ + name: 'default', + baseUrl: 'https://sonarqube.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }); + }); + + it('Gets named instance', async () => { + const config = new SonarqubeConfig([ + DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG, + { + name: 'other', + baseUrl: 'https://sonarqube-other.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + ]); + + expect(config.getInstanceConfig('other')).toEqual({ + name: 'other', + baseUrl: 'https://sonarqube-other.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }); + }); + + it('Throw an error if default instance could not be found', async () => { + const config = new SonarqubeConfig([ + { + name: 'other', + baseUrl: 'https://sonarqube-other.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + ]); + + expect(() => config.getInstanceConfig('default')).toThrowError(Error); + }); + + it('Throw an error if named instance could not be found', async () => { + const config = new SonarqubeConfig([ + DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG, + ]); + + expect(() => config.getInstanceConfig('other')).toThrowError(Error); + }); + }); +}); + +const server = setupServer(); + +describe('DefaultSonarqubeInfoProvider', () => { + function configureProvider(configData: any) { + const config = new ConfigReader(configData); + + return DefaultSonarqubeInfoProvider.fromConfig(config); + } + + describe('getBaseUrl', () => { + it('Provide base url for default from simple config and empty string', async () => { + const provider = configureProvider({ + sonarqube: { + baseUrl: 'https://sonarqube.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + }); + + expect(provider.getBaseUrl('')).toEqual('https://sonarqube.example.com'); + }); + + it('Provide base url for named default config and "default" string', async () => { + const provider = configureProvider({ + sonarqube: { + instances: [ + { + name: 'default', + baseUrl: 'https://sonarqube.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + ], + }, + }); + + expect(provider.getBaseUrl('default')).toEqual( + 'https://sonarqube.example.com', + ); + }); + + it('Provide base url for named config', async () => { + const provider = configureProvider({ + sonarqube: { + instances: [ + { + name: 'default', + baseUrl: 'https://sonarqube.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + { + name: 'other', + baseUrl: 'https://sonarqube-other.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + ], + }, + }); + + expect(provider.getBaseUrl('other')).toEqual( + 'https://sonarqube-other.example.com', + ); + }); + }); + + describe('getFindings', () => { + setupRequestMockHandlers(server); + const MOCK_BASE_URL = 'http://backstage:9191'; + const DUMMY_COMPONENT_KEY = 'dummyComponentKey'; + const DUMMY_ANALYSIS_DATE = '2022-01-01T00:00:00Z'; + const DUMMY_API_KEY = '123456789abcdef0123456789abcedf012'; + + const checkBasicAuthToken = (req: RestRequest) => { + if (req.headers && req.headers.has('Authorization')) { + expect(req.headers.get('Authorization')).toEqual( + `Basic MTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2VkZjAxMjo=`, + ); + } else { + throw new Error('Basic auth token not provided'); + } + }; + + const setupComponentHandler = () => { + server.use( + rest.get(`${MOCK_BASE_URL}/api/components/show`, (req, res, ctx) => { + checkBasicAuthToken(req); + expect(req.url.searchParams.toString()).toBe( + `component=${DUMMY_COMPONENT_KEY}`, + ); + return res( + ctx.json({ + component: { analysisDate: DUMMY_ANALYSIS_DATE }, + }), + ); + }), + ); + }; + const setupMetricsHandler = () => { + server.use( + rest.get(`${MOCK_BASE_URL}/api/metrics/search`, (req, res, ctx) => { + checkBasicAuthToken(req); + return res( + ctx.json({ + total: 4, + metrics: [ + { key: 'coverage' }, + { key: 'code_smells' }, + { key: 'vulnerabilities' }, + { key: 'unused_metric' }, + ], + }), + ); + }), + ); + }; + const setupMeasureHandler = () => { + server.use( + rest.get(`${MOCK_BASE_URL}/api/measures/component`, (req, res, ctx) => { + checkBasicAuthToken(req); + expect(req.url.searchParams.toString()).toBe( + `component=${DUMMY_COMPONENT_KEY}&metricKeys=vulnerabilities%2Ccode_smells%2Ccoverage`, + ); + return res( + ctx.json({ + component: { + measures: [ + { metric: 'coverage', value: '86' }, + { metric: 'code_smells', value: '40' }, + { metric: 'vulnerabilities', value: '3' }, + ], + }, + }), + ); + }), + ); + }; + + const setupHandlers = () => { + setupComponentHandler(); + setupMetricsHandler(); + setupMeasureHandler(); + }; + + const DUMMY_SIMPLE_CONFIG_FOR_PROVIDER = { + sonarqube: { + baseUrl: MOCK_BASE_URL, + apiKey: DUMMY_API_KEY, + }, + }; + it('Provide findings when everything is ok', async () => { + setupHandlers(); + const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); + expect( + await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + ).toEqual({ + analysisDate: DUMMY_ANALYSIS_DATE, + measures: [ + { metric: 'coverage', value: '86' }, + { metric: 'code_smells', value: '40' }, + { metric: 'vulnerabilities', value: '3' }, + ], + }); + }); + + it('Provide undefined as finding if component API answer code is not 200', async () => { + server.use( + rest.get(`${MOCK_BASE_URL}/api/components/show`, (req, res, ctx) => { + checkBasicAuthToken(req); + expect(req.url.searchParams.toString()).toBe( + `component=${DUMMY_COMPONENT_KEY}`, + ); + return res(ctx.status(500)); + }), + ); + + const provider = configureProvider({ + sonarqube: { + baseUrl: MOCK_BASE_URL, + apiKey: '123456789abcdef0123456789abcedf012', + }, + }); + expect( + await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + ).toBeUndefined(); + }); + it('Provide undefined as finding if component API answer incorrectly', async () => { + server.use( + rest.get(`${MOCK_BASE_URL}/api/components/show`, (req, res, ctx) => { + checkBasicAuthToken(req); + expect(req.url.searchParams.toString()).toBe( + `component=${DUMMY_COMPONENT_KEY}`, + ); + return res( + ctx.json({ + invalid: true, + }), + ); + }), + ); + + const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); + expect( + await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + ).toBeUndefined(); + }); + it('Provide findings when metrics API uses pages', async () => { + setupComponentHandler(); + setupMeasureHandler(); + // custom metrics handler that provide two pages + server.use( + rest.get(`${MOCK_BASE_URL}/api/metrics/search`, (req, res, ctx) => { + checkBasicAuthToken(req); + if (req.url.searchParams.get('p') === '1') + return res( + ctx.json({ + total: 4, + metrics: [{ key: 'coverage' }, { key: 'code_smells' }], + }), + ); + return res( + ctx.json({ + total: 4, + metrics: [{ key: 'vulnerabilities' }, { key: 'unused_metric' }], + }), + ); + }), + ); + + const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); + expect( + await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + ).toEqual({ + analysisDate: DUMMY_ANALYSIS_DATE, + measures: [ + { metric: 'coverage', value: '86' }, + { metric: 'code_smells', value: '40' }, + { metric: 'vulnerabilities', value: '3' }, + ], + }); + }); + + it('Provide undefined as findings when measure API answer code is not 200', async () => { + setupComponentHandler(); + setupMetricsHandler(); + // custom metrics handler that provide two pages + server.use( + rest.get(`${MOCK_BASE_URL}/api/measures/component`, (req, res, ctx) => { + checkBasicAuthToken(req); + expect(req.url.searchParams.toString()).toBe( + `component=${DUMMY_COMPONENT_KEY}&metricKeys=vulnerabilities%2Ccode_smells%2Ccoverage`, + ); + return res(ctx.status(500)); + }), + ); + + const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); + expect( + await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + ).toBeUndefined(); + }); + + it('Provide findings with empty measures when metrics API answer incorrectly', async () => { + setupComponentHandler(); + setupMetricsHandler(); + // custom metrics handler that provide two pages + server.use( + rest.get(`${MOCK_BASE_URL}/api/measures/component`, (req, res, ctx) => { + checkBasicAuthToken(req); + expect(req.url.searchParams.toString()).toBe( + `component=${DUMMY_COMPONENT_KEY}&metricKeys=vulnerabilities%2Ccode_smells%2Ccoverage`, + ); + return res(ctx.json({})); + }), + ); + + const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); + expect( + await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + ).toEqual({ + analysisDate: DUMMY_ANALYSIS_DATE, + measures: [], + }); + }); + }); +}); diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts new file mode 100644 index 0000000000..0939abaed0 --- /dev/null +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts @@ -0,0 +1,371 @@ +/* + * 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 { Config } from '@backstage/config'; +import fetch from 'node-fetch'; + +/** + * Provide information about sonarqube instances and projects contained within + * @public + */ +export interface SonarqubeInfoProvider { + /** + * Get the sonarqube URL in configuration from a provided name. + * + * If name is omitted, default sonarqube instance is queried in config + * + * @param instanceName - Name of the sonarqube instance to get the info from + * @returns the url of the instance + */ + getBaseUrl(instanceName: string): string; + + /** + * Query the sonarqube instance corresponding to the instanceName to get all + * measures for the component of key componentKey. + * @param componentKey - component key of the project we want to get measure from. + * @param instanceName - name of the instance (in config) where the project is hosted. + * @returns All measures with the analysis date. Will return undefined if we + * can't provide the full response + */ + getFindings( + componentKey: string, + instanceName: string, + ): Promise; +} + +/** + * Information retrieved for a specific project in Sonarqube + * @public + */ +export interface SonarqubeFindings { + /** + * Last date of the analysis that have generated this finding + */ + analysisDate: string; + /** + * All measures pertaining to the findings + */ + measures: Measure[]; +} + +interface MeasuresWrapper { + component: { measures: Measure[] }; +} + +/** + * A specific measure on a project in Sonarqube + * @public + */ +export interface Measure { + /** + * Name of the measure + */ + metric: string; + /** + * Value of the measure + */ + value: string; +} + +/** + * Information about a Sonarqube instance. + * @public + */ +export interface SonarqubeInstanceConfig { + /** + * Name of the instance. An instance name in configuration and catalog should match. + */ + name: string; + /** + * Base url to access the instance + */ + baseUrl: string; + /** + * Access token to access the sonarqube instance as generated in user profile. + */ + apiKey: string; +} + +interface ComponentWrapper { + component: { analysisDate: string }; +} + +/** + * Holds multiple Sonarqube configurations. + * @public + */ +export class SonarqubeConfig { + /** + * + * @param instances - All information on all sonarqube instance from the config file + */ + constructor(public readonly instances: SonarqubeInstanceConfig[]) {} + + /** + * Read all Sonarqube instance configurations. + * @param config - Root configuration + * @returns A SonarqubeConfig that contains all configured Sonarqube instances. + */ + static fromConfig(config: Config): SonarqubeConfig { + const DEFAULT_SONARQUBE_NAME = 'default'; + + const sonarqubeConfig = config.getConfig('sonarqube'); + + // load all named instance config + const namedInstanceConfig = + sonarqubeConfig.getOptionalConfigArray('instances')?.map(c => ({ + name: c.getString('name'), + baseUrl: c.getString('baseUrl'), + apiKey: c.getString('apiKey'), + })) || []; + + // load unnamed default config + const hasNamedDefault = namedInstanceConfig.some( + x => x.name === DEFAULT_SONARQUBE_NAME, + ); + + // Get these as optional strings and check to give a better error message + const baseUrl = sonarqubeConfig.getOptionalString('baseUrl'); + const apiKey = sonarqubeConfig.getOptionalString('apiKey'); + + if (hasNamedDefault && (baseUrl || apiKey)) { + throw new Error( + `Found both a named sonarqube instance with name ${DEFAULT_SONARQUBE_NAME} and top level baseUrl or apiKey config. Use only one style of config.`, + ); + } + + const unnamedNonePresent = !baseUrl && !apiKey; + const unnamedAllPresent = baseUrl && apiKey; + if (!(unnamedAllPresent || unnamedNonePresent)) { + throw new Error( + `Found partial default sonarqube config. All (or none) of baseUrl and apiKey must be provided.`, + ); + } + + if (unnamedAllPresent) { + const unnamedInstanceConfig = [ + { name: DEFAULT_SONARQUBE_NAME, baseUrl, apiKey }, + ] as { + name: string; + baseUrl: string; + apiKey: string; + }[]; + + return new SonarqubeConfig([ + ...namedInstanceConfig, + ...unnamedInstanceConfig, + ]); + } + + return new SonarqubeConfig(namedInstanceConfig); + } + + /** + * Gets a Sonarqube instance configuration by name, or the default one if no name is provided. + * @param sonarqubeName - Optional name of the Sonarqube instance. + * @returns The requested Sonarqube instance. + * @throws Error when no default config could be found or the requested name couldn't be found in config. + */ + getInstanceConfig(sonarqubeName?: string): SonarqubeInstanceConfig { + const DEFAULT_SONARQUBE_NAME = 'default'; + + if (!sonarqubeName || sonarqubeName === DEFAULT_SONARQUBE_NAME) { + // no name provided, use default + const instanceConfig = this.instances.find( + c => c.name === DEFAULT_SONARQUBE_NAME, + ); + + if (!instanceConfig) { + throw new Error( + `Couldn't find a default sonarqube instance in the config. Either configure an instance with name ${DEFAULT_SONARQUBE_NAME} or add a prefix to your annotation value.`, + ); + } + + return instanceConfig; + } + + // A name is provided, look it up. + const instanceConfig = this.instances.find(c => c.name === sonarqubeName); + + if (!instanceConfig) { + throw new Error( + `Couldn't find a sonarqube instance in the config with name ${sonarqubeName}`, + ); + } + return instanceConfig; + } +} + +/** + * @public + * + * Use default config and annotations, build using fromConfig static function. + */ +export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { + private constructor(private readonly config: SonarqubeConfig) {} + + /** + * Generate an instance from a Config instance + * @param config - Backend configuration + */ + static fromConfig(config: Config): DefaultSonarqubeInfoProvider { + return new DefaultSonarqubeInfoProvider(SonarqubeConfig.fromConfig(config)); + } + + /** + * Retrieve all supported metrics from a sonarqube instance. + * + * @param instanceUrl - URL of the sonarqube instance + * @param token - token to access the sonarqube instance + * @returns The list of supported metrics, if no metrics are supported an empty list is provided in the promise + * @private + */ + private static async getSupportedMetrics( + instanceUrl: string, + token: string, + ): Promise { + const metrics: string[] = []; + let nextPage: number = 1; + + for (;;) { + const result = await DefaultSonarqubeInfoProvider.callApi<{ + metrics: Array<{ key: string }>; + total: number; + }>(instanceUrl, 'api/metrics/search', token, { ps: 500, p: nextPage }); + metrics.push(...(result?.metrics?.map(m => m.key) ?? [])); + + if (result && metrics.length < result.total) { + nextPage++; + continue; + } + + return metrics; + } + } + + /** + * Call an API with provided arguments + * @param url - URL of the API to call + * @param path - path to call + * @param authToken - token used as basic auth user without password + * @param query - parameters to provide to the call + * @returns A promise on the answer to the API call if the answer status code is 200, undefined otherwise. + * @private + */ + private static async callApi( + url: string, + path: string, + authToken: string, + query: { [key in string]: any }, + ): Promise { + // Sonarqube auth use basic with token as username and no password + // but standard dictate the colon (separator) need to stay here despite the + // lack of password + const encodedAuthToken = Buffer.from(`${authToken}:`).toString('base64'); + + const response = await fetch( + `${url}/${path}?${new URLSearchParams(query).toString()}`, + { + headers: { + 'Content-Type': 'application/json', + Authorization: `Basic ${encodedAuthToken}`, + }, + }, + ); + if (response.status === 200) { + return (await response.json()) as T; + } + return undefined; + } + + /** + * {@inheritDoc SonarqubeInfoProvider.getBaseUrl} + * @throws Error If configuration can't be retrieved. + */ + getBaseUrl(instanceName: string): string { + const instanceConfig = this.config.getInstanceConfig(instanceName ?? ''); + return instanceConfig.baseUrl; + } + + /** + * {@inheritDoc SonarqubeInfoProvider.getFindings} + * @throws Error If configuration can't be retrieved. + */ + async getFindings( + componentKey: string, + instanceName: string, + ): Promise { + const { baseUrl, apiKey } = this.config.getInstanceConfig( + instanceName ?? '', + ); + + // get component info to retrieve analysis date + const component = + await DefaultSonarqubeInfoProvider.callApi( + baseUrl, + 'api/components/show', + apiKey, + { + component: componentKey, + }, + ); + if (!component || !component.component) { + return undefined; + } + + // select the metrics that are supported by the SonarQube instance + const supportedMetrics = + await DefaultSonarqubeInfoProvider.getSupportedMetrics(baseUrl, apiKey); + const wantedMetrics: string[] = [ + 'alert_status', + 'bugs', + 'reliability_rating', + 'vulnerabilities', + 'security_rating', + 'security_hotspots_reviewed', + 'security_review_rating', + 'code_smells', + 'sqale_rating', + 'coverage', + 'duplicated_lines_density', + ]; + + // only retrieve wanted metrics that are supported + const metricsToQuery = wantedMetrics.filter(el => + supportedMetrics.includes(el), + ); + + // get all measures + const measures = + await DefaultSonarqubeInfoProvider.callApi( + baseUrl, + 'api/measures/component', + apiKey, + { + component: componentKey, + metricKeys: metricsToQuery.join(','), + }, + ); + if (!measures) { + return undefined; + } + + return { + analysisDate: component.component.analysisDate, + measures: measures.component?.measures ?? [], + }; + } +} From e9dcea3c92345d93fbc16d020a77f462ec1e0e05 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 22 Jul 2022 14:33:50 +0200 Subject: [PATCH 013/377] Implement APIs of sonarqube-backend plugin's router Also update the standalone server to add router dependencies Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .../src/service/router.test.ts | 79 ++++++++++++++++-- .../sonarqube-backend/src/service/router.ts | 80 +++++++++++++++---- .../src/service/standaloneServer.ts | 10 ++- 3 files changed, 147 insertions(+), 22 deletions(-) diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts index 24e482896b..756fba6164 100644 --- a/plugins/sonarqube-backend/src/service/router.test.ts +++ b/plugins/sonarqube-backend/src/service/router.test.ts @@ -19,13 +19,23 @@ import express from 'express'; import request from 'supertest'; import { createRouter } from './router'; +import { SonarqubeFindings } from './sonarqubeInfoProvider'; describe('createRouter', () => { let app: express.Express; + const getBaseUrlMock: jest.Mock = jest.fn(); + const getFindingsMock: jest.Mock< + Promise, + [string, string] + > = jest.fn(); beforeAll(async () => { const router = await createRouter({ logger: getVoidLogger(), + sonarqubeInfoProvider: { + getBaseUrl: getBaseUrlMock, + getFindings: getFindingsMock, + }, }); app = express().use(router); }); @@ -35,17 +45,76 @@ describe('createRouter', () => { }); describe('GET /findings', () => { + const DUMMY_COMPONENT_KEY = 'my:component'; + const DUMMY_INSTANCE_KEY = 'myInstance'; it('returns ok', async () => { + const measures = { + analysisDate: '2022-01-01T00:00:00Z', + measures: [{ metric: 'vulnerabilities', value: '54' }], + }; + + getFindingsMock.mockReturnValue(Promise.resolve(measures)); const response = await request(app) .get('/findings') - .set('componentKey', 'my:app') + .query({ + componentKey: DUMMY_COMPONENT_KEY, + instanceKey: DUMMY_INSTANCE_KEY, + }) + .send(); + expect(getFindingsMock).toBeCalledTimes(1); + expect(getFindingsMock).toBeCalledWith( + DUMMY_COMPONENT_KEY, + DUMMY_INSTANCE_KEY, + ); + expect(response.status).toEqual(200); + expect(response.body).toEqual(measures); + }); + it('returns an error when component key is not defined', async () => { + const response = await request(app) + .get('/findings') + .query({ + instanceKey: DUMMY_INSTANCE_KEY, + }) .send(); + expect(response.status).toEqual(400); + }); + + it('use an empty string as instance name when instance key not provided', async () => { + const measures = { + analysisDate: '2021-04-08', + measures: [{ metric: 'vulnerabilities', value: '54' }], + }; + + getFindingsMock.mockReturnValue(Promise.resolve(measures)); + const response = await request(app) + .get('/findings') + .query({ + componentKey: DUMMY_COMPONENT_KEY, + }) + .send(); + + expect(getFindingsMock).toBeCalledTimes(1); + expect(getFindingsMock).toBeCalledWith(DUMMY_COMPONENT_KEY, ''); expect(response.status).toEqual(200); - expect(response.body).toEqual({ - analysisDate: '2022-10-22T04:55:23Z', - measures: [{ metric: 'coverage', value: '50' }], - }); + expect(response.body).toEqual(measures); + }); + }); + describe('GET /instanceUrl', () => { + const DUMMY_INSTANCE_KEY = 'myInstance'; + const DUMMY_INSTANCE_URL = 'http://sonarqube.example.com'; + it('returns ok', async () => { + getBaseUrlMock.mockReturnValue(DUMMY_INSTANCE_URL); + const response = await request(app) + .get('/instanceUrl') + .query({ + instanceKey: DUMMY_INSTANCE_KEY, + }) + .send(); + expect(getBaseUrlMock).toBeCalledTimes(1); + expect(getBaseUrlMock).toBeCalledWith(DUMMY_INSTANCE_KEY); + expect(response.status).toEqual(200); + expect(response.body).toEqual({ instanceUrl: DUMMY_INSTANCE_URL }); }); }); }); diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index 54f0038ca9..c1f672a2c4 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -15,37 +15,87 @@ */ import { errorHandler } from '@backstage/backend-common'; -import express from 'express'; +import express, { RequestHandler } from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; +import { + SonarqubeFindings, + SonarqubeInfoProvider, +} from './sonarqubeInfoProvider'; +import { InputError } from '../../../../packages/errors'; +/** + * Dependencies needed by the router + * @public + */ export interface RouterOptions { + /** + * Logger for logging purposes + */ logger: Logger; + /** + * Info provider to be able to get all necessary information for the APIs + */ + sonarqubeInfoProvider: SonarqubeInfoProvider; } +/** + * @public + * + * Constructs a sonarqube router. + * + * Expose endpoint to get information on or for a sonarqube instance. + * + * @param options - Dependencies of the router + */ export async function createRouter( options: RouterOptions, ): Promise { - const { logger } = options; + const { logger, sonarqubeInfoProvider } = options; const router = Router(); router.use(express.json()); // mock api for now - router.get('/findings', (request, response) => { - logger.info(request.params); + router.get('/findings', (async (request, response) => { + const componentKey = request.query.componentKey; + let instanceKey = request.query.instanceKey; + + if (!componentKey) + throw new InputError('ComponentKey must be provided as a single string.'); + + if (!instanceKey) { + instanceKey = ''; + logger.info( + `Retrieving findings for component ${componentKey} in default sonarqube instance`, + ); + } else { + logger.info( + `Retrieving findings for component ${componentKey} in sonarqube instance name ${instanceKey}`, + ); + } + + response.send( + await sonarqubeInfoProvider.getFindings(componentKey, instanceKey), + ); + }) as RequestHandler); + + router.get('/instanceUrl', ((request, response) => { + let requestedInstanceKey = request.query.instanceKey; + if (requestedInstanceKey) { + logger.info( + `Retrieving sonarqube instance URL for key ${requestedInstanceKey}`, + ); + } else { + requestedInstanceKey = ''; + logger.info( + `Retrieving default sonarqube instance URL as parameter is inexistant, empty or malformed`, + ); + } response.send({ - analysisDate: '2022-10-22T04:55:23Z', - measures: [{ metric: 'coverage', value: '50' }], + instanceUrl: sonarqubeInfoProvider.getBaseUrl(requestedInstanceKey), }); - }); - router.get('/instanceUrl', (request, response) => { - logger.info(request.params); - response.send({ - instanceUrl: `https://instance.local?${encodeURI( - request.query.instanceKey as string, - )}`, - }); - }); + }) as RequestHandler); + router.use(errorHandler()); return router; } diff --git a/plugins/sonarqube-backend/src/service/standaloneServer.ts b/plugins/sonarqube-backend/src/service/standaloneServer.ts index 78f39b2680..06a8d4ffb2 100644 --- a/plugins/sonarqube-backend/src/service/standaloneServer.ts +++ b/plugins/sonarqube-backend/src/service/standaloneServer.ts @@ -14,10 +14,14 @@ * limitations under the License. */ -import { createServiceBuilder } from '@backstage/backend-common'; +import { + createServiceBuilder, + loadBackendConfig, +} from '@backstage/backend-common'; import { Server } from 'http'; import { Logger } from 'winston'; import { createRouter } from './router'; +import { DefaultSonarqubeInfoProvider } from './sonarqubeInfoProvider'; export interface ServerOptions { port: number; @@ -30,13 +34,15 @@ export async function startStandaloneServer( ): Promise { const logger = options.logger.child({ service: 'sonarqube-backend-backend' }); logger.debug('Starting application server...'); + const config = await loadBackendConfig({ logger, argv: process.argv }); const router = await createRouter({ logger, + sonarqubeInfoProvider: DefaultSonarqubeInfoProvider.fromConfig(config), }); let service = createServiceBuilder(module) .setPort(options.port) - .addRouter('/sonarqube-backend', router); + .addRouter('/sonarqube', router); if (options.enableCors) { service = service.enableCors({ origin: 'http://localhost:3000' }); } From 035ea31f2cc140333423c461f24e20f03bca6580 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 22 Jul 2022 14:37:50 +0200 Subject: [PATCH 014/377] Add api-report.md for plugin sonarqube-backend Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/api-report.md | 67 +++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 plugins/sonarqube-backend/api-report.md diff --git a/plugins/sonarqube-backend/api-report.md b/plugins/sonarqube-backend/api-report.md new file mode 100644 index 0000000000..c163ff3bc5 --- /dev/null +++ b/plugins/sonarqube-backend/api-report.md @@ -0,0 +1,67 @@ +## API Report File for "@backstage/plugin-sonarqube-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 express from 'express'; +import { Logger } from 'winston'; + +// @public +export function createRouter(options: RouterOptions): Promise; + +// @public +export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { + static fromConfig(config: Config): DefaultSonarqubeInfoProvider; + getBaseUrl(instanceName: string): string; + getFindings( + componentKey: string, + instanceName: string, + ): Promise; +} + +// @public +export interface Measure { + metric: string; + value: string; +} + +// @public +export interface RouterOptions { + logger: Logger; + sonarqubeInfoProvider: SonarqubeInfoProvider; +} + +// @public +export class SonarqubeConfig { + constructor(instances: SonarqubeInstanceConfig[]); + static fromConfig(config: Config): SonarqubeConfig; + getInstanceConfig(sonarqubeName?: string): SonarqubeInstanceConfig; + // (undocumented) + readonly instances: SonarqubeInstanceConfig[]; +} + +// @public +export interface SonarqubeFindings { + analysisDate: string; + measures: Measure[]; +} + +// @public +export interface SonarqubeInfoProvider { + getBaseUrl(instanceName: string): string; + getFindings( + componentKey: string, + instanceName: string, + ): Promise; +} + +// @public +export interface SonarqubeInstanceConfig { + apiKey: string; + baseUrl: string; + name: string; +} + +// (No @packageDocumentation comment for this package) +``` From f1768c82e13861d3f536cab34e026332bb922209 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 22 Jul 2022 14:39:35 +0200 Subject: [PATCH 015/377] Update package.json for plugin sonarqube-backend Set the plugin to non private and prefix the name with "@backstage/" Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index ca2b98c10e..d8d21e86d1 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -1,10 +1,10 @@ { - "name": "plugin-sonarqube-backend", + "name": "@backstage/plugin-sonarqube-backend", "version": "0.0.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", - "private": true, + "private": false, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", From ddd47ff7fba20f7cb431405da27c758a38a8ddbe Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 22 Jul 2022 14:47:25 +0200 Subject: [PATCH 016/377] Fix typo in comment in sonarqube plugin Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube/src/components/useProjectKey.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sonarqube/src/components/useProjectKey.ts b/plugins/sonarqube/src/components/useProjectKey.ts index b091ea597c..acf28c7802 100644 --- a/plugins/sonarqube/src/components/useProjectKey.ts +++ b/plugins/sonarqube/src/components/useProjectKey.ts @@ -30,7 +30,7 @@ export const isSonarQubeAvailable = (entity: Entity) => /** * Try to parse sonarqube information from an entity. * - * If part are all info are not found, they will default to an empty string + * If part or all info are not found, they will default to an empty string * * @param entity entity to find the sonarqube information from. * @return a ProjectInfo properly populated. From 648190c0b4da3e430d16d92b93037d2ba14c4a9d Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 22 Jul 2022 16:45:27 +0200 Subject: [PATCH 017/377] Update plugin sonarqube-backend's README with proper information Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/README.md | 138 ++++++++++++++++++++++++++-- 1 file changed, 132 insertions(+), 6 deletions(-) diff --git a/plugins/sonarqube-backend/README.md b/plugins/sonarqube-backend/README.md index 0fad3b67f3..0db23ade6c 100644 --- a/plugins/sonarqube-backend/README.md +++ b/plugins/sonarqube-backend/README.md @@ -2,12 +2,138 @@ Welcome to the sonarqube-backend backend plugin! -_This plugin was created through the Backstage CLI_ +## Integrating into a backstage instance -## Getting started +This plugin needs to be added to an existing backstage instance. -Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/sonarqube-backend](http://localhost:3000/sonarqube-backend). +```bash +# From your Backstage root directory +yarn add --cwd packages/backend @backstage/plugin-sonarqube-backend +``` -You can also serve the plugin in isolation by running `yarn start` in the plugin directory. -This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. -It is only meant for local development, and the setup for it can be found inside the [/dev](/dev) directory. +Typically, this means creating a `src/plugins/sonarqube.ts` file and adding a reference to it to `src/index.ts` in the backend package. + +### sonarqube.ts + +```typescript +import { + createRouter, + DefaultSonarqubeInfoProvider, +} from '@backstage/plugin-sonarqube-backend'; +import { Router } from 'express'; +import { PluginEnvironment } from '../types'; + +export default async function createPlugin( + env: PluginEnvironment, +): Promise { + return await createRouter({ + logger: env.logger, + sonarqubeInfoProvider: DefaultSonarqubeInfoProvider.fromConfig(env.config), + }); +} +``` + +### src/index.ts + +```diff +diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts +index 1942c36ad1..7fdc48ba24 100644 +--- a/packages/backend/src/index.ts ++++ b/packages/backend/src/index.ts +@@ -50,6 +50,7 @@ import scaffolder from './plugins/scaffolder'; + import proxy from './plugins/proxy'; + import search from './plugins/search'; + import techdocs from './plugins/techdocs'; ++import sonarqube from './plugins/sonarqube'; + import techInsights from './plugins/techInsights'; + import todo from './plugins/todo'; + import graphql from './plugins/graphql'; +@@ -133,6 +134,7 @@ async function main() { + createEnv('tech-insights'), + ); + const permissionEnv = useHotMemoize(module, () => createEnv('permission')); ++ const sonarqubeEnv = useHotMemoize(module, () => createEnv('sonarqube')); + + const apiRouter = Router(); + apiRouter.use('/catalog', await catalog(catalogEnv)); +@@ -152,6 +154,7 @@ async function main() { + apiRouter.use('/badges', await badges(badgesEnv)); + apiRouter.use('/jenkins', await jenkins(jenkinsEnv)); + apiRouter.use('/permission', await permission(permissionEnv)); ++ apiRouter.use('/sonarqube', await sonarqube(sonarqubeEnv)); + apiRouter.use(notFoundHandler()); + + const service = createServiceBuilder(module) + +``` + +This plugin must be provided with a `SonarqubeInfoProvider`, this is a strategy object for finding sonarqube instances in configuration and retrieving data from an instance. + +There is a standard one provided (`DefaultSonarqubeInfoProvider`), but the Integrator is free to build their own. + +### DefaultSonarqubeInfoProvider + +Allows configuration of either a single or multiple global Sonarqube instances and annotating entities with the instance name. This instance name in the entities is optional, if not provided the default instance in configuration will be used. That allow to keep configuration from before multiple instances capability to keep working without changes. + +#### Example - Single global instance + +##### Config + +```yaml +sonarqube: + baseUrl: https://sonarqube.example.com + apiKey: 123456789abcdef0123456789abcedf012 +``` + +##### Catalog + +```yaml +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: backstage + annotations: + sonarqube.org/project-key: YOUR_INSTANCE_NAME/YOUR_PROJECT_KEY +``` + +#### Example - Multiple global instance + +The following will look for findings at `https://special-project-sonarqube.example.com` for the project of key `YOUR_PROJECT_KEY`. + +##### Config + +```yaml +sonarqube: + instances: + - name: default + baseUrl: https://default-sonarqube.example.com + apiKey: 123456789abcdef0123456789abcedf012 + - name: specialProject + baseUrl: https://special-project-sonarqube.example.com + apiKey: abcdef0123456789abcedf0123456789ab +``` + +##### Catalog + +```yaml +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: backstage + annotations: + sonarqube.org/project-key: specialProject/YOUR_PROJECT_KEY +``` + +If the `specialProject/` part is omitted (or replaced with `default/`), the sonarqube instance of name `default` will be used. + +The following config is an equivalent (but less clear) version of the above: + +```yaml +sonarqube: + baseUrl: https://default-sonarqube.example.com + apiKey: 123456789abcdef0123456789abcedf012 + instances: + - name: specialProject + baseUrl: https://special-project-sonarqube.example.com + apiKey: abcdef0123456789abcedf0123456789ab +``` From 4bec71fe13ad5fadc7e1e839af3410d4e8062a55 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 22 Jul 2022 17:38:30 +0200 Subject: [PATCH 018/377] Update plugin sonarqube-backend's dependencies Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index d8d21e86d1..22dbe1e637 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -23,20 +23,20 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.13.6-next.1", + "@backstage/backend-common": "^0.14.1", "@backstage/config": "^1.0.1", "@types/express": "*", - "express": "^4.17.1", + "express": "^4.18.1", "express-promise-router": "^4.1.0", - "winston": "^3.2.1", "node-fetch": "^2.6.7", - "yn": "^4.0.0" + "winston": "^3.8.1", + "yn": "^5.0.0" }, "devDependencies": { - "@backstage/cli": "^0.17.2-next.1", - "@types/supertest": "^2.0.8", - "supertest": "^4.0.2", - "msw": "^0.42.0" + "@backstage/cli": "^0.18.0", + "@types/supertest": "^2.0.12", + "msw": "^0.44.2", + "supertest": "^6.2.4" }, "files": [ "dist" From e2be9ab3a48aa0b23d1a3e58691053755dd8eb63 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 22 Jul 2022 17:44:50 +0200 Subject: [PATCH 019/377] Add plugin sonarqube-backend's changeset Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .changeset/eighty-radios-look.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/eighty-radios-look.md diff --git a/.changeset/eighty-radios-look.md b/.changeset/eighty-radios-look.md new file mode 100644 index 0000000000..de178c1111 --- /dev/null +++ b/.changeset/eighty-radios-look.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-sonarqube-backend': patch +--- + +Initial creation of the plugin From b2b62ab5b672304c3e3bfbd0e2b74c58adf860f4 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 22 Jul 2022 18:01:48 +0200 Subject: [PATCH 020/377] Correct usage of 'sonarqube' with 'Sonarqube' Also add 'Sonarqube' into vale vocab Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .changeset/forty-lobsters-guess.md | 2 +- .changeset/ten-roses-walk.md | 2 +- .github/vale/Vocab/Backstage/accept.txt | 1 + plugins/sonarqube-backend/README.md | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.changeset/forty-lobsters-guess.md b/.changeset/forty-lobsters-guess.md index 50dd22627f..c7ab852e08 100644 --- a/.changeset/forty-lobsters-guess.md +++ b/.changeset/forty-lobsters-guess.md @@ -6,4 +6,4 @@ The whole proxy's `'/sonarqube':` key can be removed from your configuration files. -Then head to the sonarqube-backend plugin page to learn how to set-up the link to your sonarqube instances. +Then head to the sonarqube-backend plugin page to learn how to set-up the link to your Sonarqube instances. diff --git a/.changeset/ten-roses-walk.md b/.changeset/ten-roses-walk.md index 14d0819c38..87b711db2a 100644 --- a/.changeset/ten-roses-walk.md +++ b/.changeset/ten-roses-walk.md @@ -2,4 +2,4 @@ '@backstage/plugin-sonarqube': patch --- -Add ability to provide an optional sonarqube instance into the annotation in the `catalog-info.yaml` file +Add ability to provide an optional Sonarqube instance into the annotation in the `catalog-info.yaml` file diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index cd01425a5e..5324ce2b2a 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -283,6 +283,7 @@ shoutout siloed Sinon Snyk +Sonarqube sourcemaps sparklines Splunk diff --git a/plugins/sonarqube-backend/README.md b/plugins/sonarqube-backend/README.md index 0db23ade6c..ac3973a5c0 100644 --- a/plugins/sonarqube-backend/README.md +++ b/plugins/sonarqube-backend/README.md @@ -67,7 +67,7 @@ index 1942c36ad1..7fdc48ba24 100644 ``` -This plugin must be provided with a `SonarqubeInfoProvider`, this is a strategy object for finding sonarqube instances in configuration and retrieving data from an instance. +This plugin must be provided with a `SonarqubeInfoProvider`, this is a strategy object for finding Sonarqube instances in configuration and retrieving data from an instance. There is a standard one provided (`DefaultSonarqubeInfoProvider`), but the Integrator is free to build their own. @@ -124,7 +124,7 @@ metadata: sonarqube.org/project-key: specialProject/YOUR_PROJECT_KEY ``` -If the `specialProject/` part is omitted (or replaced with `default/`), the sonarqube instance of name `default` will be used. +If the `specialProject/` part is omitted (or replaced with `default/`), the Sonarqube instance of name `default` will be used. The following config is an equivalent (but less clear) version of the above: From f48950e34b14606b12964ed24fbdedde5d6b1ffd Mon Sep 17 00:00:00 2001 From: brentg-telus <50498366+brentg-telus@users.noreply.github.com> Date: Mon, 25 Jul 2022 13:00:53 -0400 Subject: [PATCH 021/377] feat: github discovery provider Signed-off-by: brentg-telus <50498366+brentg-telus@users.noreply.github.com> --- .changeset/odd-tomatoes-juggle.md | 9 + docs/integrations/github/discovery.md | 114 ++++++++ .../api-report.md | 21 ++ .../src/index.ts | 12 +- .../GithubDiscoveryProcessor.test.ts | 2 +- .../GithubDiscoveryProcessor.ts | 2 +- .../GithubMultiOrgReaderProcessor.ts | 2 +- .../GithubOrgReaderProcessor.test.ts | 0 .../GithubOrgReaderProcessor.ts | 2 +- .../providers/GitHubEntityProvider.test.ts | 185 ++++++++++++ .../src/providers/GitHubEntityProvider.ts | 271 ++++++++++++++++++ .../GitHubEntityProviderConfig.test.ts | 115 ++++++++ .../providers/GitHubEntityProviderConfig.ts | 90 ++++++ .../GitHubOrgEntityProvider.test.ts | 0 .../GitHubOrgEntityProvider.ts | 2 +- 15 files changed, 817 insertions(+), 10 deletions(-) create mode 100644 .changeset/odd-tomatoes-juggle.md rename plugins/catalog-backend-module-github/src/{ => processors}/GithubDiscoveryProcessor.test.ts (99%) rename plugins/catalog-backend-module-github/src/{ => processors}/GithubDiscoveryProcessor.ts (99%) rename plugins/catalog-backend-module-github/src/{ => processors}/GithubMultiOrgReaderProcessor.ts (99%) rename plugins/catalog-backend-module-github/src/{ => processors}/GithubOrgReaderProcessor.test.ts (100%) rename plugins/catalog-backend-module-github/src/{ => processors}/GithubOrgReaderProcessor.ts (99%) create mode 100644 plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts create mode 100644 plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts create mode 100644 plugins/catalog-backend-module-github/src/providers/GitHubEntityProviderConfig.test.ts create mode 100644 plugins/catalog-backend-module-github/src/providers/GitHubEntityProviderConfig.ts rename plugins/catalog-backend-module-github/src/{ => providers}/GitHubOrgEntityProvider.test.ts (100%) rename plugins/catalog-backend-module-github/src/{ => providers}/GitHubOrgEntityProvider.ts (99%) diff --git a/.changeset/odd-tomatoes-juggle.md b/.changeset/odd-tomatoes-juggle.md new file mode 100644 index 0000000000..336af17eb4 --- /dev/null +++ b/.changeset/odd-tomatoes-juggle.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Github Entity Provider functionality for adding entities to the catalog. + +This provider replaces the GithubDiscoveryProcessor functionality as providers offer more flexibility with scheduling ingestion, removing and preventing orphaned entities. + +More information can be found on the [GitHub Discovery](https://backstage.io/docs/integrations/github/discovery) page. diff --git a/docs/integrations/github/discovery.md b/docs/integrations/github/discovery.md index a0c3fed153..82abc25eca 100644 --- a/docs/integrations/github/discovery.md +++ b/docs/integrations/github/discovery.md @@ -6,6 +6,120 @@ sidebar_label: Discovery description: Automatically discovering catalog entities from repositories in a GitHub organization --- +## GitHub Provider + +The GitHub integration has a discovery provider for discovering catalog +entities within a GitHub organization. The provider will crawl the GitHub +organization and register entities matching the configured path. This can be +useful as an alternative to static locations or manually adding things to the +catalog. This is the prefered method for ingesting entities into the catalog. + +## Installation + +You will have to add the provider in the catalog initialization code of your +backend. They are not installed by default, therefore you have to add a +dependency on `@backstage/plugin-catalog-backend-module-github` to your backend +package + +```bash +# From your Backstage root directory +yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-github +``` + +And then add the entity provider to your catalog builder: + +```diff + // In packages/backend/src/plugins/catalog.ts ++ import { GitHubEntityProvider } from '@backstage/plugin-catalog-backend-module-github'; + + export default async function createPlugin( + env: PluginEnvironment, + ): Promise { + const builder = await CatalogBuilder.create(env); ++ builder.addEntityProvider( ++ GitHubEntityProvider.fromConfig(env.config, { ++ logger: env.logger, ++ schedule: env.scheduler.createScheduledTaskRunner({ ++ frequency: { minutes: 30 }, ++ timeout: { minutes: 3 }, ++ }), ++ }), ++ ); + + // [...] + } +``` + +## Configuration + +To use the discovery provider, you'll need a GitHub integration +[set up](locations.md) with either a [Personal Access Token](../../getting-started/configuration.md#setting-up-a-github-integration) or [GitHub Apps](./github-apps.md). + +Then you can add a github config to the catalog providers configuration: + +```yaml +catalog: + providers: + github: + # the provider ID can be any camelCase string + providerId: + organization: 'backstage' # string + catalogPath: '/catalog-info.yaml' # string + filters: + branch: 'main' # string + repository: '.*' # Regex + customProviderId: + organization: 'new-org' # string + catalogPath: '/custom/path/catalog-info.yaml' # string + filters: # optional filters + branch: 'develop' # optional string + repository: '.*' # optional Regex +``` + +This provider supports multiple organizations via unique provider IDs + +> **Note:** It is possible but certainly not recommended to skip the provider ID level. +> If you do so, `default` will be used as provider ID. + +- **catalogPath** _(optional)_: + Default: `/catalog-info.yaml`. + Path where to look for `catalog-info.yaml` files. + When started with `/`, it is an absolute path from the repo root. +- **filters** _(optional)_: + - **branch** _(optional)_: + String used to filter results based on the branch name. + - **repository** _(optional)_: + Regular expression used to filter results based on the repository name. +- **organization**: + Name of your organization account/workspace. + If you want to add multiple organizations, you need to add one provider config each. + +## GitHub API Rate Limits + +GitHub [rate limits](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting) API requests to 5,000 per hour (or more for Enterprise +accounts). The default Backstage catalog backend refreshes data every 100 +seconds, which issues an API request for each discovered location. + +This means if you have more than ~140 catalog entities, you may get throttled by +rate limiting. You can change the refresh frequency of the catalog in your `packages/backend/src/plugins/catalog.ts` file: + +```typescript +schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 35 }, + timeout: { minutes: 30 }, +}), +``` + +More information about scheduling can be found on the [TaskScheduleDefinition](https://backstage.io/docs/reference/backend-tasks.taskscheduledefinition) page. + +Alternatively, or additionally, you can configure [github-apps](github-apps.md) authentication +which carries a much higher rate limit at GitHub. + +This is true for any method of adding GitHub entities to the catalog, but +especially easy to hit with automatic discovery. + +## GitHub Processor (To Be Deprecated) + The GitHub integration has a special discovery processor for discovering catalog entities within a GitHub organization. The processor will crawl the GitHub organization and register entities matching the configured path. This can be diff --git a/plugins/catalog-backend-module-github/api-report.md b/plugins/catalog-backend-module-github/api-report.md index e5fa2ea46a..62e64122bb 100644 --- a/plugins/catalog-backend-module-github/api-report.md +++ b/plugins/catalog-backend-module-github/api-report.md @@ -40,6 +40,27 @@ export class GithubDiscoveryProcessor implements CatalogProcessor { ): Promise; } +// @public +export class GitHubEntityProvider implements EntityProvider { + // (undocumented) + connect(connection: EntityProviderConnection): Promise; + // (undocumented) + static fromConfig( + config: Config, + options: GitHubEntityProviderOptions, + ): GitHubEntityProvider[]; + // (undocumented) + getProviderName(): string; + // (undocumented) + refresh(): Promise; +} + +// @public +export interface GitHubEntityProviderOptions { + logger: Logger; + schedule: TaskRunner; +} + // @public export type GithubMultiOrgConfig = Array<{ name: string; diff --git a/plugins/catalog-backend-module-github/src/index.ts b/plugins/catalog-backend-module-github/src/index.ts index 2f666e6547..81dc1727c8 100644 --- a/plugins/catalog-backend-module-github/src/index.ts +++ b/plugins/catalog-backend-module-github/src/index.ts @@ -20,9 +20,11 @@ * @packageDocumentation */ -export { GithubDiscoveryProcessor } from './GithubDiscoveryProcessor'; -export { GithubMultiOrgReaderProcessor } from './GithubMultiOrgReaderProcessor'; -export { GitHubOrgEntityProvider } from './GitHubOrgEntityProvider'; -export type { GitHubOrgEntityProviderOptions } from './GitHubOrgEntityProvider'; -export { GithubOrgReaderProcessor } from './GithubOrgReaderProcessor'; +export { GithubDiscoveryProcessor } from './processors/GithubDiscoveryProcessor'; +export { GithubMultiOrgReaderProcessor } from './processors/GithubMultiOrgReaderProcessor'; +export { GithubOrgReaderProcessor } from './processors/GithubOrgReaderProcessor'; +export { GitHubEntityProvider } from './providers/GitHubEntityProvider'; +export { GitHubOrgEntityProvider } from './providers/GitHubOrgEntityProvider'; +export type { GitHubOrgEntityProviderOptions } from './providers/GitHubOrgEntityProvider'; +export type { GitHubEntityProviderOptions } from './providers/GitHubEntityProvider'; export type { GithubMultiOrgConfig } from './lib'; diff --git a/plugins/catalog-backend-module-github/src/GithubDiscoveryProcessor.test.ts b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts similarity index 99% rename from plugins/catalog-backend-module-github/src/GithubDiscoveryProcessor.test.ts rename to plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts index b18e3baf75..aa6dc9229e 100644 --- a/plugins/catalog-backend-module-github/src/GithubDiscoveryProcessor.test.ts +++ b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts @@ -22,7 +22,7 @@ import { } from '@backstage/integration'; import { LocationSpec } from '@backstage/plugin-catalog-backend'; import { GithubDiscoveryProcessor, parseUrl } from './GithubDiscoveryProcessor'; -import { getOrganizationRepositories } from './lib'; +import { getOrganizationRepositories } from '../lib'; jest.mock('./lib'); const mockGetOrganizationRepositories = diff --git a/plugins/catalog-backend-module-github/src/GithubDiscoveryProcessor.ts b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.ts similarity index 99% rename from plugins/catalog-backend-module-github/src/GithubDiscoveryProcessor.ts rename to plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.ts index 78a1bca169..97c77bf033 100644 --- a/plugins/catalog-backend-module-github/src/GithubDiscoveryProcessor.ts +++ b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.ts @@ -29,7 +29,7 @@ import { } from '@backstage/plugin-catalog-backend'; import { graphql } from '@octokit/graphql'; import { Logger } from 'winston'; -import { getOrganizationRepositories } from './lib'; +import { getOrganizationRepositories } from '../lib'; /** * Extracts repositories out of a GitHub org. diff --git a/plugins/catalog-backend-module-github/src/GithubMultiOrgReaderProcessor.ts b/plugins/catalog-backend-module-github/src/processors/GithubMultiOrgReaderProcessor.ts similarity index 99% rename from plugins/catalog-backend-module-github/src/GithubMultiOrgReaderProcessor.ts rename to plugins/catalog-backend-module-github/src/processors/GithubMultiOrgReaderProcessor.ts index 321e9cc8f8..c5315ad166 100644 --- a/plugins/catalog-backend-module-github/src/GithubMultiOrgReaderProcessor.ts +++ b/plugins/catalog-backend-module-github/src/processors/GithubMultiOrgReaderProcessor.ts @@ -37,7 +37,7 @@ import { getOrganizationUsers, GithubMultiOrgConfig, readGithubMultiOrgConfig, -} from './lib'; +} from '../lib'; /** * Extracts teams and users out of a multiple GitHub orgs namespaced per org. diff --git a/plugins/catalog-backend-module-github/src/GithubOrgReaderProcessor.test.ts b/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.test.ts similarity index 100% rename from plugins/catalog-backend-module-github/src/GithubOrgReaderProcessor.test.ts rename to plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.test.ts diff --git a/plugins/catalog-backend-module-github/src/GithubOrgReaderProcessor.ts b/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.ts similarity index 99% rename from plugins/catalog-backend-module-github/src/GithubOrgReaderProcessor.ts rename to plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.ts index ca1dd96b3c..c6f2f5d0e2 100644 --- a/plugins/catalog-backend-module-github/src/GithubOrgReaderProcessor.ts +++ b/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.ts @@ -36,7 +36,7 @@ import { getOrganizationTeams, getOrganizationUsers, parseGitHubOrgUrl, -} from './lib'; +} from '../lib'; type GraphQL = typeof graphql; diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts new file mode 100644 index 0000000000..f933053f4a --- /dev/null +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts @@ -0,0 +1,185 @@ +/* + * Copyright 2021 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 { getVoidLogger } from '@backstage/backend-common'; +import { TaskInvocationDefinition, TaskRunner } from '@backstage/backend-tasks'; +import { ConfigReader } from '@backstage/config'; +import { EntityProviderConnection } from '@backstage/plugin-catalog-backend'; +import { GitHubEntityProvider } from './GitHubEntityProvider'; +import * as helpers from '../lib/github'; + +class PersistingTaskRunner implements TaskRunner { + private tasks: TaskInvocationDefinition[] = []; + + getTasks() { + return this.tasks; + } + + run(task: TaskInvocationDefinition): Promise { + this.tasks.push(task); + return Promise.resolve(undefined); + } +} + +const logger = getVoidLogger(); + +describe('GitHubEntityProvider', () => { + afterEach(() => jest.resetAllMocks()); + + it('no provider config', () => { + const schedule = new PersistingTaskRunner(); + const config = new ConfigReader({}); + const providers = GitHubEntityProvider.fromConfig(config, { + logger, + schedule, + }); + + expect(providers).toHaveLength(0); + }); + + it('single simple provider config', () => { + const schedule = new PersistingTaskRunner(); + const config = new ConfigReader({ + catalog: { + providers: { + github: { + organization: 'test-org', + }, + }, + }, + }); + const providers = GitHubEntityProvider.fromConfig(config, { + logger, + schedule, + }); + + expect(providers).toHaveLength(1); + expect(providers[0].getProviderName()).toEqual('github-provider:default'); + }); + + it('multiple provider configs', () => { + const schedule = new PersistingTaskRunner(); + const config = new ConfigReader({ + catalog: { + providers: { + github: { + myProvider: { + organization: 'test-org1', + }, + anotherProvider: { + organization: 'test-org2', + }, + }, + }, + }, + }); + const providers = GitHubEntityProvider.fromConfig(config, { + logger, + schedule, + }); + + expect(providers).toHaveLength(2); + expect(providers[0].getProviderName()).toEqual( + 'github-provider:myProvider', + ); + expect(providers[1].getProviderName()).toEqual( + 'github-provider:anotherProvider', + ); + }); + + it.only('apply full update on scheduled execution', async () => { + const config = new ConfigReader({ + catalog: { + providers: { + github: { + myProvider: { + organization: 'test-org', + catalogPath: 'custom/path/catalog-custom.yaml', + filters: { + branch: 'main', + repository: 'test-.*', + }, + }, + }, + }, + }, + }); + const schedule = new PersistingTaskRunner(); + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + }; + + const provider = GitHubEntityProvider.fromConfig(config, { + logger, + schedule, + })[0]; + + const mockGetOrganizationRepositories = jest.spyOn( + helpers, + 'getOrganizationRepositories', + ); + + mockGetOrganizationRepositories.mockReturnValue( + Promise.resolve({ + repositories: [ + { + name: 'test-repo', + url: 'https://github.com/test-org/test-repo', + isArchived: false, + defaultBranchRef: { + name: 'main', + }, + }, + ], + }), + ); + + await provider.connect(entityProviderConnection); + + const taskDef = schedule.getTasks()[0]; + expect(taskDef.id).toEqual('github-provider:myProvider:refresh'); + await (taskDef.fn as () => Promise)(); + + const url = `https://github.com/test-org/test-repo/blob/main/catalog-custom.yaml`; + const expectedEntities = [ + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Location', + metadata: { + annotations: { + 'backstage.io/managed-by-location': `url:${url}`, + 'backstage.io/managed-by-origin-location': `url:${url}`, + }, + name: 'generated-21936a3d1e926b8bb3b00ac4398dc9a8dbb90b45', + }, + spec: { + presence: 'optional', + target: `${url}`, + type: 'url', + }, + }, + locationKey: 'github-provider:myProvider', + }, + ]; + + expect(entityProviderConnection.applyMutation).toBeCalledTimes(1); + expect(entityProviderConnection.applyMutation).toBeCalledWith({ + type: 'full', + entities: expectedEntities, + }); + }); +}); diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts new file mode 100644 index 0000000000..5f228dff28 --- /dev/null +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -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. + */ + +import { TaskRunner } from '@backstage/backend-tasks'; +import { Config } from '@backstage/config'; +import { + GithubCredentialsProvider, + ScmIntegrations, + GitHubIntegrationConfig, + GitHubIntegration, + SingleInstanceGithubCredentialsProvider, +} from '@backstage/integration'; +import { + EntityProvider, + EntityProviderConnection, + LocationSpec, + locationSpecToLocationEntity, +} from '@backstage/plugin-catalog-backend'; + +import { graphql } from '@octokit/graphql'; +import * as uuid from 'uuid'; +import { Logger } from 'winston'; +import { + readProviderConfigs, + GitHubEntityProviderConfig, +} from './GitHubEntityProviderConfig'; +import { getOrganizationRepositories, Repository } from '../lib/github'; + +/** + * Options for {@link GitHubEntityProvider}. + * + * @public + */ +export interface GitHubEntityProviderOptions { + /** + * A Scheduled Task Runner + * + * {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner} + * to enable automatic scheduling of tasks. + */ + schedule: TaskRunner; + + /** + * The logger to use. + */ + logger: Logger; +} + +/** + * Discovers catalog files located in [GitHub](https://github.com). + * The provider will search your GitHub account and register catalog files matching the configured path + * as Location entity and via following processing steps add all contained catalog entities. + * This can be useful as an alternative to static locations or manually adding things to the catalog. + * + * @public + */ +export class GitHubEntityProvider implements EntityProvider { + private readonly config: GitHubEntityProviderConfig; + private readonly logger: Logger; + private readonly integration: GitHubIntegrationConfig; + private readonly scheduleFn: () => Promise; + private connection?: EntityProviderConnection; + private readonly githubCredentialsProvider: GithubCredentialsProvider; + + static fromConfig( + config: Config, + options: GitHubEntityProviderOptions, + ): GitHubEntityProvider[] { + const integrations = ScmIntegrations.fromConfig(config); + const integration = integrations.github.byHost('github.com'); + + if (!integration) { + throw new Error( + `There is no GitHub config that matches github. Please add a configuration entry for it under integrations.github`, + ); + } + + return readProviderConfigs(config).map( + providerConfig => + new GitHubEntityProvider( + providerConfig, + integration, + options.logger, + options.schedule, + ), + ); + } + + private constructor( + config: GitHubEntityProviderConfig, + integration: GitHubIntegration, + logger: Logger, + schedule: TaskRunner, + ) { + this.config = config; + this.integration = integration.config; + this.logger = logger.child({ + target: this.getProviderName(), + }); + this.scheduleFn = this.createScheduleFn(schedule); + this.githubCredentialsProvider = + SingleInstanceGithubCredentialsProvider.create(integration.config); + this.scheduleFn = this.createScheduleFn(schedule); + } + + /** {@inheritdoc @backstage/plugin-catalog-backend#EntityProvider.getProviderName} */ + getProviderName(): string { + return `github-provider:${this.config.id}`; + } + + /** {@inheritdoc @backstage/plugin-catalog-backend#EntityProvider.connect} */ + async connect(connection: EntityProviderConnection): Promise { + this.connection = connection; + return await this.scheduleFn(); + } + + private createScheduleFn(schedule: TaskRunner): () => Promise { + return async () => { + const taskId = `${this.getProviderName()}:refresh`; + return schedule.run({ + id: taskId, + fn: async () => { + const logger = this.logger.child({ + taskId, + taskInstanceId: uuid.v4(), + }); + try { + await this.refresh(); + } catch (error) { + logger.error(error); + } + }, + }); + }; + } + + async refresh() { + if (!this.connection) { + throw new Error('Not initialized'); + } + + const targets = await this.findCatalogFiles(); + const matchingTargets = this.matchesFilters(targets); + const entities = matchingTargets + .map(repository => this.createLocationUrl(repository)) + .map(GitHubEntityProvider.toLocationSpec) + .map(location => { + return { + locationKey: this.getProviderName(), + entity: locationSpecToLocationEntity({ location }), + }; + }); + + await this.connection.applyMutation({ + type: 'full', + entities, + }); + + this.logger.info( + `Read ${targets.length} GitHub repositories (${entities.length} matching the pattern)`, + ); + } + + // go to the server and get all of the repositories + private async findCatalogFiles(): Promise { + const organization = this.config.organization; + const host = this.integration.host; + const orgUrl = `https://${host}/${organization}`; + + const { headers } = await this.githubCredentialsProvider.getCredentials({ + url: orgUrl, + }); + + const client = graphql.defaults({ + baseUrl: this.integration.apiBaseUrl, + headers, + }); + + const { repositories } = await getOrganizationRepositories( + client, + organization, + ); + + return repositories; + } + + private matchesFilters(repositories: Repository[]) { + const repositoryFilter = this.config.filters?.repository; + + const matchingRepositories = repositories.filter(r => { + return ( + !r.isArchived && + repositoryFilter?.test(r.name) && + r.defaultBranchRef?.name + ); + }); + return matchingRepositories; + } + + private createLocationUrl(repository: Repository): string { + const branch = + this.config.filters?.branch || repository.defaultBranchRef?.name || '-'; + const catalogFile = this.config.catalogPath.substring( + this.config.catalogPath.lastIndexOf('/') + 1, + ); + return `${repository.url}/blob/${branch}/${catalogFile}`; + } + + private static toLocationSpec(target: string): LocationSpec { + return { + type: 'url', + target: target, + presence: 'optional', + }; + } +} + +/* + * Helpers + */ + +export function parseUrl(urlString: string): { + org: string; + repoSearchPath: RegExp; + catalogPath: string; + branch: string; + host: string; +} { + const url = new URL(urlString); + const path = url.pathname.substr(1).split('/'); + + // /backstage/techdocs-*/blob/master/catalog-info.yaml + // can also be + // /backstage + if (path.length > 2 && path[0].length && path[1].length) { + return { + org: decodeURIComponent(path[0]), + repoSearchPath: escapeRegExp(decodeURIComponent(path[1])), + catalogPath: `/${decodeURIComponent(path.slice(4).join('/'))}`, + branch: decodeURIComponent(path[3]), + host: url.host, + }; + } else if (path.length === 1 && path[0].length) { + return { + org: decodeURIComponent(path[0]), + repoSearchPath: escapeRegExp('*'), + catalogPath: '/catalog-info.yaml', + branch: '-', + host: url.host, + }; + } + + throw new Error(`Failed to parse ${urlString}`); +} + +export function escapeRegExp(str: string): RegExp { + return new RegExp(`^${str.replace(/\*/g, '.*')}$`); +} diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProviderConfig.test.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProviderConfig.test.ts new file mode 100644 index 0000000000..ba72dbf950 --- /dev/null +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProviderConfig.test.ts @@ -0,0 +1,115 @@ +/* + * 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 { ConfigReader } from '@backstage/config'; +import { readProviderConfigs } from './GitHubEntityProviderConfig'; + +describe('readProviderConfigs', () => { + afterEach(() => jest.resetAllMocks()); + + it('no provider config', () => { + const config = new ConfigReader({}); + const providerConfigs = readProviderConfigs(config); + + expect(providerConfigs).toHaveLength(0); + }); + + it('single simple provider config', () => { + const config = new ConfigReader({ + catalog: { + providers: { + github: { + organization: 'test-org', + }, + }, + }, + }); + const providerConfigs = readProviderConfigs(config); + + expect(providerConfigs).toHaveLength(1); + expect(providerConfigs[0].id).toEqual('default'); + expect(providerConfigs[0].organization).toEqual('test-org'); + }); + + it('multiple provider configs', () => { + const config = new ConfigReader({ + catalog: { + providers: { + github: { + providerOrganizationOnly: { + organization: 'test-org1', + }, + providerCustomCatalogPath: { + organization: 'test-org2', + catalogPath: 'custom/path/catalog-info.yaml', + }, + providerWithRepositoryFilter: { + organization: 'test-org3', + filters: { + repository: 'repository.*filter', + }, + }, + providerWithBranchFilter: { + organization: 'test-org4', + filters: { + branch: 'branch-name', + }, + }, + }, + }, + }, + }); + const providerConfigs = readProviderConfigs(config); + + expect(providerConfigs).toHaveLength(4); + expect(providerConfigs[0]).toEqual({ + id: 'providerOrganizationOnly', + organization: 'test-org1', + catalogPath: '/catalog-info.yaml', + filters: { + repository: undefined, + branch: undefined, + }, + }); + expect(providerConfigs[1]).toEqual({ + id: 'providerCustomCatalogPath', + organization: 'test-org2', + catalogPath: 'custom/path/catalog-info.yaml', + filters: { + repository: undefined, + branch: undefined, + }, + }); + expect(providerConfigs[2]).toEqual({ + id: 'providerWithRepositoryFilter', + organization: 'test-org3', // organization + catalogPath: '/catalog-info.yaml', // file + filters: { + repository: /^repository.*filter$/, // repo + branch: undefined, // branch + }, + }); + expect(providerConfigs[3]).toEqual({ + id: 'providerWithBranchFilter', + organization: 'test-org4', + catalogPath: '/catalog-info.yaml', + filters: { + repository: undefined, + branch: 'branch-name', + }, + }); + }); +}); diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProviderConfig.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProviderConfig.ts new file mode 100644 index 0000000000..b5929c5300 --- /dev/null +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProviderConfig.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 { Config } from '@backstage/config'; + +const DEFAULT_CATALOG_PATH = '/catalog-info.yaml'; +const DEFAULT_PROVIDER_ID = 'default'; + +export type GitHubEntityProviderConfig = { + id: string; + catalogPath: string; + organization: string; + filters?: { + repository?: RegExp; + branch?: string; + }; +}; + +export function readProviderConfigs( + config: Config, +): GitHubEntityProviderConfig[] { + const providersConfig = config.getOptionalConfig('catalog.providers.github'); + if (!providersConfig) { + return []; + } + + if (providersConfig.has('organization')) { + // simple/single config variant + return [readProviderConfig(DEFAULT_PROVIDER_ID, providersConfig)]; + } + + return providersConfig.keys().map(id => { + const providerConfig = providersConfig.getConfig(id); + + return readProviderConfig(id, providerConfig); + }); +} + +function readProviderConfig( + id: string, + config: Config, +): GitHubEntityProviderConfig { + const organization = config.getString('organization'); + const catalogPath = + config.getOptionalString('catalogPath') ?? DEFAULT_CATALOG_PATH; + const repositoryPattern = config.getOptionalString('filters.repository'); + const branchPattern = config.getOptionalString('filters.branch'); + + return { + id, + catalogPath, + organization, + filters: { + repository: repositoryPattern + ? compileRegExp(repositoryPattern) + : undefined, + branch: branchPattern || undefined, + }, + }; +} +/** + * Compiles a RegExp while enforcing the pattern to contain + * the start-of-line and end-of-line anchors. + * + * @param pattern + */ +function compileRegExp(pattern: string): RegExp { + let fullLinePattern = pattern; + if (!fullLinePattern.startsWith('^')) { + fullLinePattern = `^${fullLinePattern}`; + } + if (!fullLinePattern.endsWith('$')) { + fullLinePattern = `${fullLinePattern}$`; + } + + return new RegExp(fullLinePattern); +} diff --git a/plugins/catalog-backend-module-github/src/GitHubOrgEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GitHubOrgEntityProvider.test.ts similarity index 100% rename from plugins/catalog-backend-module-github/src/GitHubOrgEntityProvider.test.ts rename to plugins/catalog-backend-module-github/src/providers/GitHubOrgEntityProvider.test.ts diff --git a/plugins/catalog-backend-module-github/src/GitHubOrgEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubOrgEntityProvider.ts similarity index 99% rename from plugins/catalog-backend-module-github/src/GitHubOrgEntityProvider.ts rename to plugins/catalog-backend-module-github/src/providers/GitHubOrgEntityProvider.ts index e6cb413a6f..bb994c193c 100644 --- a/plugins/catalog-backend-module-github/src/GitHubOrgEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubOrgEntityProvider.ts @@ -42,7 +42,7 @@ import { getOrganizationTeams, getOrganizationUsers, parseGitHubOrgUrl, -} from './lib'; +} from '../lib'; /** * Options for {@link GitHubOrgEntityProvider}. From 7a6007d808990814688b5f58759b34c70d77a06a Mon Sep 17 00:00:00 2001 From: brentg-telus <50498366+brentg-telus@users.noreply.github.com> Date: Mon, 25 Jul 2022 13:27:38 -0400 Subject: [PATCH 022/377] feat: github discovery provider Signed-off-by: brentg-telus <50498366+brentg-telus@users.noreply.github.com> --- .../src/processors/GithubDiscoveryProcessor.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts index aa6dc9229e..7ce6f3f9cf 100644 --- a/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts +++ b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts @@ -24,7 +24,7 @@ import { LocationSpec } from '@backstage/plugin-catalog-backend'; import { GithubDiscoveryProcessor, parseUrl } from './GithubDiscoveryProcessor'; import { getOrganizationRepositories } from '../lib'; -jest.mock('./lib'); +jest.mock('../lib'); const mockGetOrganizationRepositories = getOrganizationRepositories as jest.MockedFunction< typeof getOrganizationRepositories From 9328f4b349332d9e580657c3475ea7699872af8c Mon Sep 17 00:00:00 2001 From: brentg-telus <50498366+brentg-telus@users.noreply.github.com> Date: Mon, 25 Jul 2022 13:34:54 -0400 Subject: [PATCH 023/377] feat: github discovery provider Signed-off-by: brentg-telus <50498366+brentg-telus@users.noreply.github.com> --- .../src/providers/GitHubEntityProvider.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts index f933053f4a..0bda258b6e 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts @@ -100,7 +100,7 @@ describe('GitHubEntityProvider', () => { ); }); - it.only('apply full update on scheduled execution', async () => { + it('apply full update on scheduled execution', async () => { const config = new ConfigReader({ catalog: { providers: { From ae09b7855161b0a70474e6134ef81ff9e9a9b141 Mon Sep 17 00:00:00 2001 From: brentg-telus <50498366+brentg-telus@users.noreply.github.com> Date: Mon, 25 Jul 2022 14:37:22 -0400 Subject: [PATCH 024/377] chore: requested update to docs Signed-off-by: brentg-telus <50498366+brentg-telus@users.noreply.github.com> --- docs/integrations/github/discovery.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/integrations/github/discovery.md b/docs/integrations/github/discovery.md index 82abc25eca..dba0907492 100644 --- a/docs/integrations/github/discovery.md +++ b/docs/integrations/github/discovery.md @@ -19,7 +19,7 @@ catalog. This is the prefered method for ingesting entities into the catalog. You will have to add the provider in the catalog initialization code of your backend. They are not installed by default, therefore you have to add a dependency on `@backstage/plugin-catalog-backend-module-github` to your backend -package +package. ```bash # From your Backstage root directory @@ -76,31 +76,34 @@ catalog: repository: '.*' # optional Regex ``` -This provider supports multiple organizations via unique provider IDs +This provider supports multiple organizations via unique provider IDs. > **Note:** It is possible but certainly not recommended to skip the provider ID level. > If you do so, `default` will be used as provider ID. -- **catalogPath** _(optional)_: +``` +catalogPath (optional): Default: `/catalog-info.yaml`. Path where to look for `catalog-info.yaml` files. When started with `/`, it is an absolute path from the repo root. -- **filters** _(optional)_: - - **branch** _(optional)_: + +filters (optional): + - branch (optional): String used to filter results based on the branch name. - - **repository** _(optional)_: + - repository (optional): Regular expression used to filter results based on the repository name. -- **organization**: + +organization: Name of your organization account/workspace. If you want to add multiple organizations, you need to add one provider config each. +``` ## GitHub API Rate Limits GitHub [rate limits](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting) API requests to 5,000 per hour (or more for Enterprise -accounts). The default Backstage catalog backend refreshes data every 100 -seconds, which issues an API request for each discovered location. +accounts). The snippet below refreshes the Backstage catalog data every 35 minutes, which issues an API request for each discovered location. -This means if you have more than ~140 catalog entities, you may get throttled by +If your requests are too frequent then you may get throttled by rate limiting. You can change the refresh frequency of the catalog in your `packages/backend/src/plugins/catalog.ts` file: ```typescript From 1c7e940b39053300f9dc689e9d24c603e1a7c8b3 Mon Sep 17 00:00:00 2001 From: brentg-telus <50498366+brentg-telus@users.noreply.github.com> Date: Tue, 26 Jul 2022 08:31:51 -0400 Subject: [PATCH 025/377] chore: requested update to docs Signed-off-by: brentg-telus <50498366+brentg-telus@users.noreply.github.com> --- docs/integrations/github/discovery.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/integrations/github/discovery.md b/docs/integrations/github/discovery.md index dba0907492..3b49644613 100644 --- a/docs/integrations/github/discovery.md +++ b/docs/integrations/github/discovery.md @@ -81,22 +81,18 @@ This provider supports multiple organizations via unique provider IDs. > **Note:** It is possible but certainly not recommended to skip the provider ID level. > If you do so, `default` will be used as provider ID. -``` -catalogPath (optional): +- **`catalogPath`** _(optional)_: Default: `/catalog-info.yaml`. Path where to look for `catalog-info.yaml` files. When started with `/`, it is an absolute path from the repo root. - -filters (optional): - - branch (optional): +- **filters** _(optional)_: + - **branch** _(optional)_: String used to filter results based on the branch name. - - repository (optional): + - **repository** _(optional)_: Regular expression used to filter results based on the repository name. - -organization: +- **organization**: Name of your organization account/workspace. If you want to add multiple organizations, you need to add one provider config each. -``` ## GitHub API Rate Limits From df7b9158b858c33c83fb4485a1a497534bed2d03 Mon Sep 17 00:00:00 2001 From: Parth Shukla Date: Wed, 27 Jul 2022 14:26:20 +0200 Subject: [PATCH 026/377] Add wrap-around for tool lists in Home plugin Signed-off-by: Parth Shukla --- .changeset/dull-owls-grab.md | 5 +++++ plugins/home/src/homePageComponents/Toolkit/Content.tsx | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 .changeset/dull-owls-grab.md diff --git a/.changeset/dull-owls-grab.md b/.changeset/dull-owls-grab.md new file mode 100644 index 0000000000..e71db46827 --- /dev/null +++ b/.changeset/dull-owls-grab.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-home': patch +--- + +Add wrap-around for the listing of tools to prevent increasing width with name length. diff --git a/plugins/home/src/homePageComponents/Toolkit/Content.tsx b/plugins/home/src/homePageComponents/Toolkit/Content.tsx index 21affc57f1..e73a834a7e 100644 --- a/plugins/home/src/homePageComponents/Toolkit/Content.tsx +++ b/plugins/home/src/homePageComponents/Toolkit/Content.tsx @@ -35,8 +35,10 @@ const useStyles = makeStyles(theme => ({ }, label: { marginTop: theme.spacing(1), + width: '72px', fontSize: '0.9em', lineHeight: '1.25', + overflowWrap: 'break-word', color: theme.palette.text.secondary, }, icon: { From ad35364e971bf21d26e7b8ec3d74a00323996268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Faruk=20Do=C4=9Fan?= <8117265+omerfarukdogan@users.noreply.github.com> Date: Wed, 27 Jul 2022 18:31:13 +0300 Subject: [PATCH 027/377] feat(techdocs): add edit button support for bitbucketServer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ömer Faruk Doğan <8117265+omerfarukdogan@users.noreply.github.com> --- .changeset/red-turtles-melt.md | 7 +++ packages/integration/src/ScmIntegrations.ts | 16 ++++++- .../BitbucketServerIntegration.test.ts | 47 +++++++++++++++---- .../BitbucketServerIntegration.ts | 21 ++++----- .../src/ReportIssue/ReportIssue.tsx | 7 ++- .../src/stages/generate/helpers.ts | 7 ++- 6 files changed, 77 insertions(+), 28 deletions(-) create mode 100644 .changeset/red-turtles-melt.md diff --git a/.changeset/red-turtles-melt.md b/.changeset/red-turtles-melt.md new file mode 100644 index 0000000000..436e69116c --- /dev/null +++ b/.changeset/red-turtles-melt.md @@ -0,0 +1,7 @@ +--- +'@backstage/integration': minor +'@backstage/plugin-techdocs-node': minor +'@backstage/plugin-techdocs-module-addons-contrib': patch +--- + +feat(techdocs): add edit button support for bitbucketServer diff --git a/packages/integration/src/ScmIntegrations.ts b/packages/integration/src/ScmIntegrations.ts index 3e712cc012..6d745dcf1c 100644 --- a/packages/integration/src/ScmIntegrations.ts +++ b/packages/integration/src/ScmIntegrations.ts @@ -113,9 +113,21 @@ export class ScmIntegrations implements ScmIntegrationRegistry { } byUrl(url: string | URL): ScmIntegration | undefined { - return Object.values(this.byType) + let candidates = Object.values(this.byType) .map(i => i.byUrl(url)) - .find(Boolean); + .filter(Boolean); + + // Do not return deprecated integrations if there are other options + if (candidates.length > 1) { + const filteredCandidates = candidates.filter( + x => !(x instanceof BitbucketIntegration), + ); + if (filteredCandidates.length !== 0) { + candidates = filteredCandidates; + } + } + + return candidates[0]; } byHost(host: string): ScmIntegration | undefined { diff --git a/packages/integration/src/bitbucketServer/BitbucketServerIntegration.test.ts b/packages/integration/src/bitbucketServer/BitbucketServerIntegration.test.ts index 24d7935e72..00b5e21316 100644 --- a/packages/integration/src/bitbucketServer/BitbucketServerIntegration.test.ts +++ b/packages/integration/src/bitbucketServer/BitbucketServerIntegration.test.ts @@ -44,31 +44,58 @@ describe('BitbucketServerIntegration', () => { expect(integration.title).toBe('h.com'); }); - it('resolves url line number correctly', () => { + it('resolves url', () => { const integration = new BitbucketServerIntegration({ host: 'h.com', } as any); expect( integration.resolveUrl({ - url: './a.yaml', - base: 'https://h.com/my-owner/my-project/src/master/README.md', - lineNumber: 14, + url: './README.md', + base: 'https://h.com/projects/my-project/repos/my-repo/browse/?at=master', }), - ).toBe('https://h.com/my-owner/my-project/src/master/a.yaml#a.yaml-14'); + ).toBe( + 'https://h.com/projects/my-project/repos/my-repo/browse/README.md?at=master', + ); }); - it('resolve edit URL', () => { + it('resolves url with line number', () => { + const integration = new BitbucketServerIntegration({ + host: 'h.com', + } as any); + + expect( + integration.resolveUrl({ + url: './README.md', + base: 'https://h.com/projects/my-project/repos/my-repo/browse/?at=master', + lineNumber: 14, + }), + ).toBe( + 'https://h.com/projects/my-project/repos/my-repo/browse/README.md?at=master#14', + ); + }); + + it('resolves edit url', () => { const integration = new BitbucketServerIntegration({ host: 'h.com', } as any); expect( integration.resolveEditUrl( - 'https://h.com/my-owner/my-project/src/master/README.md', + 'https://h.com/projects/my-project/repos/my-repo/browse/README.md', ), - ).toBe( - 'https://h.com/my-owner/my-project/src/master/README.md?mode=edit&spa=0&at=master', - ); + ).toBe('https://h.com/projects/my-project/repos/my-repo/browse/README.md'); + }); + + it('resolves edit url with query params', () => { + const integration = new BitbucketServerIntegration({ + host: 'h.com', + } as any); + + expect( + integration.resolveEditUrl( + 'https://h.com/projects/my-project/repos/my-repo/browse/README.md?at=master', + ), + ).toBe('https://h.com/projects/my-project/repos/my-repo/browse/README.md'); }); }); diff --git a/packages/integration/src/bitbucketServer/BitbucketServerIntegration.ts b/packages/integration/src/bitbucketServer/BitbucketServerIntegration.ts index 10055aeddc..01886e16bc 100644 --- a/packages/integration/src/bitbucketServer/BitbucketServerIntegration.ts +++ b/packages/integration/src/bitbucketServer/BitbucketServerIntegration.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import parseGitUrl from 'git-url-parse'; import { basicIntegrations, defaultScmResolveUrl } from '../helpers'; import { ScmIntegration, ScmIntegrationsFactory } from '../types'; import { @@ -63,12 +62,11 @@ export class BitbucketServerIntegration implements ScmIntegration { }): string { const resolved = defaultScmResolveUrl(options); - // Bitbucket Server line numbers use the syntax #example.txt-42, rather than #L42 + // Bitbucket Server line numbers use the syntax #42, rather than #L42 if (options.lineNumber) { const url = new URL(resolved); - const filename = url.pathname.split('/').slice(-1)[0]; - url.hash = `${filename}-${options.lineNumber}`; + url.hash = options.lineNumber.toString(); return url.toString(); } @@ -76,14 +74,11 @@ export class BitbucketServerIntegration implements ScmIntegration { } resolveEditUrl(url: string): string { - const urlData = parseGitUrl(url); - const editUrl = new URL(url); - - editUrl.searchParams.set('mode', 'edit'); - // TODO: Not sure what spa=0 does, at least bitbucket.org doesn't support it - // but this is taken over from the initial implementation. - editUrl.searchParams.set('spa', '0'); - editUrl.searchParams.set('at', urlData.ref); - return editUrl.toString(); + // Bitbucket Server doesn't support deep linking to edit mode, therefore there's nothing to do here. + // We just remove query parameters since they cause issues with TechDocs edit button. + if (url.includes('?')) { + return url.substring(0, url.indexOf('?')); + } + return url; } } diff --git a/plugins/techdocs-module-addons-contrib/src/ReportIssue/ReportIssue.tsx b/plugins/techdocs-module-addons-contrib/src/ReportIssue/ReportIssue.tsx index c8caa5ddbc..c81eacb1ee 100644 --- a/plugins/techdocs-module-addons-contrib/src/ReportIssue/ReportIssue.tsx +++ b/plugins/techdocs-module-addons-contrib/src/ReportIssue/ReportIssue.tsx @@ -118,7 +118,12 @@ export const ReportIssueAddon = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [selection, mainContent, feedbackContainer]); - if (!selection || !repository) return null; + if ( + !selection || + !repository || + !['github', 'gitlab'].includes(repository.type) + ) + return null; if (!feedbackContainer) { feedbackContainer = document.createElement('div'); diff --git a/plugins/techdocs-node/src/stages/generate/helpers.ts b/plugins/techdocs-node/src/stages/generate/helpers.ts index e1a79ecc19..50db0eb86a 100644 --- a/plugins/techdocs-node/src/stages/generate/helpers.ts +++ b/plugins/techdocs-node/src/stages/generate/helpers.ts @@ -101,9 +101,12 @@ export const getRepoUrlFromLocationAnnotation = ( if (locationType === 'url') { const integration = scmIntegrations.byUrl(target); - // We only support it for github and gitlab for now as the edit_uri + // We only support it for github, gitlab and bitbucketServer for now as the edit_uri // is not properly supported for others yet. - if (integration && ['github', 'gitlab'].includes(integration.type)) { + if ( + integration && + ['github', 'gitlab', 'bitbucketServer'].includes(integration.type) + ) { // handle the case where a user manually writes url:https://github.com/backstage/backstage i.e. without /blob/... const { filepathtype } = gitUrlParse(target); if (filepathtype === '') { From 8d43d374fbeefc20f3b3ea931f29ba5203e7d5a4 Mon Sep 17 00:00:00 2001 From: Damola Obaleke <45045727+damolaobaleke@users.noreply.github.com> Date: Wed, 27 Jul 2022 11:06:26 -0700 Subject: [PATCH 028/377] Update app-custom-theme.md Updating syntax in doc for clean up of Theme object Signed-off-by: Damola Obaleke <45045727+damolaobaleke@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 1a6658f0b2..79fd37ee94 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -136,15 +136,15 @@ const myTheme = createTheme({ fontFamily: 'Comic Sans MS', /* below drives the header colors */ pageTheme: { - home: genPageTheme(['#8c4351', '#343b58'], shapes.wave), - documentation: genPageTheme(['#8c4351', '#343b58'], shapes.wave2), - tool: genPageTheme(['#8c4351', '#343b58'], shapes.round), - service: genPageTheme(['#8c4351', '#343b58'], shapes.wave), - website: genPageTheme(['#8c4351', '#343b58'], shapes.wave), - library: genPageTheme(['#8c4351', '#343b58'], shapes.wave), - other: genPageTheme(['#8c4351', '#343b58'], shapes.wave), - app: genPageTheme(['#8c4351', '#343b58'], shapes.wave), - apis: genPageTheme(['#8c4351', '#343b58'], shapes.wave), + home: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), + documentation: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave2}), + tool: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.round}), + service: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), + website: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), + library: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), + other: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), + app: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), + apis: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), }, }); ``` From 8acb22205c3dcc84404c6de8d3eb15ed9d5a1d84 Mon Sep 17 00:00:00 2001 From: Crevil Date: Thu, 28 Jul 2022 08:01:29 +0200 Subject: [PATCH 029/377] Add navigation scroll to techdocs Currently the active navigation item might be hidden behind nested items or out of view on load. This change adds a techdocs transformer that scrolls any active item into view and expands any nested active items. Signed-off-by: Crevil --- .changeset/rich-readers-return.md | 5 ++ .../TechDocsReaderPageContent/dom.tsx | 2 + .../techdocs/src/reader/transformers/index.ts | 1 + .../transformers/scrollIntoNavigation.test.ts | 80 +++++++++++++++++++ .../transformers/scrollIntoNavigation.ts | 34 ++++++++ 5 files changed, 122 insertions(+) create mode 100644 .changeset/rich-readers-return.md create mode 100644 plugins/techdocs/src/reader/transformers/scrollIntoNavigation.test.ts create mode 100644 plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts diff --git a/.changeset/rich-readers-return.md b/.changeset/rich-readers-return.md new file mode 100644 index 0000000000..3c8f3d7b5a --- /dev/null +++ b/.changeset/rich-readers-return.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Scroll techdocs navigation into focus and expand any nested navigation items. diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx index 76b07c9d32..98bd6d867c 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx @@ -41,6 +41,7 @@ import { rewriteDocLinks, simplifyMkdocsFooter, scrollIntoAnchor, + scrollIntoNavigation, transform as transformer, copyToClipboard, useSanitizerTransformer, @@ -166,6 +167,7 @@ export const useTechDocsReaderDom = ( async (transformedElement: Element) => transformer(transformedElement, [ scrollIntoAnchor(), + scrollIntoNavigation(), copyToClipboard(theme), addLinkClickListener({ baseUrl: window.location.origin, diff --git a/plugins/techdocs/src/reader/transformers/index.ts b/plugins/techdocs/src/reader/transformers/index.ts index dc3c43a584..ca17261572 100644 --- a/plugins/techdocs/src/reader/transformers/index.ts +++ b/plugins/techdocs/src/reader/transformers/index.ts @@ -26,4 +26,5 @@ export * from './removeMkdocsHeader'; export * from './simplifyMkdocsFooter'; export * from './onCssReady'; export * from './scrollIntoAnchor'; +export * from './scrollIntoNavigation'; export * from './transformer'; diff --git a/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.test.ts b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.test.ts new file mode 100644 index 0000000000..ca8cf04b5e --- /dev/null +++ b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.test.ts @@ -0,0 +1,80 @@ +/* + * Copyright 2021 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 { scrollIntoNavigation } from '.'; + +jest.useFakeTimers(); + +describe('scrollIntoNavigation', () => { + const transformer = scrollIntoNavigation(); + const dom = { querySelectorAll: jest.fn().mockReturnValue([]) }; + + afterEach(() => { + jest.clearAllMocks(); + }); + + it('scroll to active navigation item', async () => { + const scrollNavIntoView1 = jest.fn(); + const scrollNavIntoView2 = jest.fn(); + + dom.querySelectorAll.mockReturnValue([ + { + scrollIntoView: scrollNavIntoView1, + querySelector: jest.fn(), + click: jest.fn(), + }, + { + scrollIntoView: scrollNavIntoView2, + querySelector: jest.fn(), + click: jest.fn(), + }, + ]); + + transformer(dom as unknown as Element); + jest.advanceTimersByTime(200); + + expect(dom.querySelectorAll).toHaveBeenCalledWith( + expect.stringMatching('li.md-nav__item--active'), + ); + expect(scrollNavIntoView1).not.toHaveBeenCalled(); + expect(scrollNavIntoView2).toHaveBeenCalledWith(); + }); + + it('expand active navigation items', async () => { + const navItemClick1 = jest.fn(); + const navItemClick2 = jest.fn(); + + dom.querySelectorAll.mockReturnValue([ + { + scrollIntoView: jest.fn(), + querySelector: jest.fn().mockReturnValue({ click: navItemClick1 }), + }, + { + scrollIntoView: jest.fn(), + querySelector: jest.fn().mockReturnValue({ click: navItemClick2 }), + }, + ]); + + transformer(dom as unknown as Element); + jest.advanceTimersByTime(200); + + expect(dom.querySelectorAll).toHaveBeenCalledWith( + expect.stringMatching('li.md-nav__item--active'), + ); + expect(navItemClick1).toHaveBeenCalledWith(); + expect(navItemClick2).toHaveBeenCalledWith(); + }); +}); diff --git a/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts new file mode 100644 index 0000000000..ff6901686a --- /dev/null +++ b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2021 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 type { Transformer } from './transformer'; + +export const scrollIntoNavigation = (): Transformer => { + return dom => { + setTimeout(() => { + const activeNavItems = dom?.querySelectorAll(`li.md-nav__item--active`); + if (activeNavItems.length !== 0) { + // expand all navigation items that are active + activeNavItems.forEach(activeNavItem => { + activeNavItem?.querySelector('input')?.click(); + }); + // scroll to the last active navigation item + activeNavItems[activeNavItems.length - 1].scrollIntoView(); + } + }, 200); + return dom; + }; +}; From f2d0ea9f42c37cc61554ff301b2adfe01b988e52 Mon Sep 17 00:00:00 2001 From: Miguel Alexandre Date: Thu, 28 Jul 2022 10:40:37 +0200 Subject: [PATCH 030/377] Allow setting the subtitle in the CatalogTable component Signed-off-by: Miguel Alexandre --- .../CatalogTable/CatalogTable.test.tsx | 29 ++++++++++++++-- .../components/CatalogTable/CatalogTable.tsx | 34 ++++++++++--------- 2 files changed, 45 insertions(+), 18 deletions(-) diff --git a/plugins/catalog/src/components/CatalogTable/CatalogTable.test.tsx b/plugins/catalog/src/components/CatalogTable/CatalogTable.test.tsx index c59b10281c..bd78cecaf0 100644 --- a/plugins/catalog/src/components/CatalogTable/CatalogTable.test.tsx +++ b/plugins/catalog/src/components/CatalogTable/CatalogTable.test.tsx @@ -21,12 +21,12 @@ import { } from '@backstage/catalog-model'; import { ApiProvider } from '@backstage/core-app-api'; import { + EntityKindFilter, entityRouteRef, MockEntityListContextProvider, + MockStarredEntitiesApi, starredEntitiesApiRef, UserListFilter, - EntityKindFilter, - MockStarredEntitiesApi, } from '@backstage/plugin-catalog-react'; import { renderInTestApp, TestApiRegistry } from '@backstage/test-utils'; import { act, fireEvent } from '@testing-library/react'; @@ -306,4 +306,29 @@ describe('CatalogTable component', () => { }, 20_000, ); + it('should render the subtitle when it is specified', async () => { + const entity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'component1', + annotations: { [ANNOTATION_EDIT_URL]: 'https://other.place' }, + }, + }; + + const { getByText } = await renderInTestApp( + + + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name': entityRouteRef, + }, + }, + ); + + expect(getByText('Should be rendered')).toBeInTheDocument(); + }); }); diff --git a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx index 005a00c48e..6bc18d7a90 100644 --- a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx +++ b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx @@ -19,18 +19,6 @@ import { RELATION_OWNED_BY, RELATION_PART_OF, } from '@backstage/catalog-model'; -import { - humanizeEntityRef, - getEntityRelations, - useEntityList, - useStarredEntities, -} from '@backstage/plugin-catalog-react'; -import Edit from '@material-ui/icons/Edit'; -import OpenInNew from '@material-ui/icons/OpenInNew'; -import { capitalize } from 'lodash'; -import React, { useMemo } from 'react'; -import { columnFactories } from './columns'; -import { CatalogTableRow } from './types'; import { CodeSnippet, Table, @@ -38,10 +26,22 @@ import { TableProps, WarningPanel, } from '@backstage/core-components'; -import StarBorder from '@material-ui/icons/StarBorder'; -import { withStyles } from '@material-ui/core/styles'; -import Star from '@material-ui/icons/Star'; +import { + getEntityRelations, + humanizeEntityRef, + useEntityList, + useStarredEntities, +} from '@backstage/plugin-catalog-react'; import { Typography } from '@material-ui/core'; +import { withStyles } from '@material-ui/core/styles'; +import Edit from '@material-ui/icons/Edit'; +import OpenInNew from '@material-ui/icons/OpenInNew'; +import Star from '@material-ui/icons/Star'; +import StarBorder from '@material-ui/icons/StarBorder'; +import { capitalize } from 'lodash'; +import React, { useMemo } from 'react'; +import { columnFactories } from './columns'; +import { CatalogTableRow } from './types'; /** * Props for {@link CatalogTable}. @@ -52,6 +52,7 @@ export interface CatalogTableProps { columns?: TableColumn[]; actions?: TableProps['actions']; tableOptions?: TableProps['options']; + subtitle?: string; } const YellowStar = withStyles({ @@ -62,7 +63,7 @@ const YellowStar = withStyles({ /** @public */ export const CatalogTable = (props: CatalogTableProps) => { - const { columns, actions, tableOptions } = props; + const { columns, actions, tableOptions, subtitle } = props; const { isStarredEntity, toggleStarredEntity } = useStarredEntities(); const { loading, error, entities, filters } = useEntityList(); @@ -226,6 +227,7 @@ export const CatalogTable = (props: CatalogTableProps) => { title={`${titlePreamble} (${entities.length})`} data={rows} actions={actions || defaultActions} + subtitle={subtitle} /> ); }; From fe94398418a148dfc7fd82fbd0795b564bfceb34 Mon Sep 17 00:00:00 2001 From: Miguel Alexandre Date: Thu, 28 Jul 2022 10:44:58 +0200 Subject: [PATCH 031/377] Add changeset Signed-off-by: Miguel Alexandre --- .changeset/little-laws-heal.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/little-laws-heal.md diff --git a/.changeset/little-laws-heal.md b/.changeset/little-laws-heal.md new file mode 100644 index 0000000000..d701a6e763 --- /dev/null +++ b/.changeset/little-laws-heal.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': minor +--- + +Allow changing the subtitle of the CatalogTable component From c333ffd2c3bdc7fb4a2d4bddb0f0388ef781d09c Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 28 Jul 2022 11:13:19 +0200 Subject: [PATCH 032/377] =?UTF-8?q?chore:=20prettify!=20=F0=9F=AA=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: blam --- docs/getting-started/app-custom-theme.md | 30 +++++++++++++++++------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 79fd37ee94..da4f10a64b 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -136,15 +136,27 @@ const myTheme = createTheme({ fontFamily: 'Comic Sans MS', /* below drives the header colors */ pageTheme: { - home: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), - documentation: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave2}), - tool: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.round}), - service: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), - website: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), - library: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), - other: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), - app: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), - apis: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave}), + home: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave }), + documentation: genPageTheme({ + colors: ['#8c4351', '#343b58'], + shape: shapes.wave2, + }), + tool: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.round }), + service: genPageTheme({ + colors: ['#8c4351', '#343b58'], + shape: shapes.wave, + }), + website: genPageTheme({ + colors: ['#8c4351', '#343b58'], + shape: shapes.wave, + }), + library: genPageTheme({ + colors: ['#8c4351', '#343b58'], + shape: shapes.wave, + }), + other: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave }), + app: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave }), + apis: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave }), }, }); ``` From 97108b948b198f6fe9eb8ec2bb5790f5aae2b464 Mon Sep 17 00:00:00 2001 From: Miguel Alexandre Date: Thu, 28 Jul 2022 11:16:40 +0200 Subject: [PATCH 033/377] Add API report Signed-off-by: Miguel Alexandre --- 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 d13f2acbc2..98bc7ab89e 100644 --- a/plugins/catalog/api-report.md +++ b/plugins/catalog/api-report.md @@ -157,6 +157,8 @@ export interface CatalogTableProps { // (undocumented) columns?: TableColumn[]; // (undocumented) + subtitle?: string; + // (undocumented) tableOptions?: TableProps['options']; } From 5abeb3df2d5f09ccbc5bcc5a8f85312dc93833c0 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Thu, 28 Jul 2022 11:32:27 +0200 Subject: [PATCH 034/377] code block the changeset Signed-off-by: Ben Lambert --- .changeset/little-laws-heal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/little-laws-heal.md b/.changeset/little-laws-heal.md index d701a6e763..cd1505540e 100644 --- a/.changeset/little-laws-heal.md +++ b/.changeset/little-laws-heal.md @@ -2,4 +2,4 @@ '@backstage/plugin-catalog': minor --- -Allow changing the subtitle of the CatalogTable component +Allow changing the subtitle of the `CatalogTable` component From 130aaec10566a6d0f85da135bc0f9e576f87e425 Mon Sep 17 00:00:00 2001 From: Charge71 Date: Thu, 28 Jul 2022 11:26:58 +0200 Subject: [PATCH 035/377] Update .changeset/mean-ants-hang.md Co-authored-by: Ben Lambert Signed-off-by: Diego Bardari --- .changeset/mean-ants-hang.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/mean-ants-hang.md b/.changeset/mean-ants-hang.md index 1dbbc63de0..e3beca051e 100644 --- a/.changeset/mean-ants-hang.md +++ b/.changeset/mean-ants-hang.md @@ -1,5 +1,5 @@ --- -'@backstage/backend-common': minor +'@backstage/backend-common': patch --- Exported redactLogLine function to be able to use it in custom loggers. From a01168b4660fdf07d722d736cd457a178b83cfb6 Mon Sep 17 00:00:00 2001 From: Charge71 Date: Thu, 28 Jul 2022 11:27:05 +0200 Subject: [PATCH 036/377] Update .changeset/mean-ants-hang.md Co-authored-by: Ben Lambert Signed-off-by: Diego Bardari --- .changeset/mean-ants-hang.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/mean-ants-hang.md b/.changeset/mean-ants-hang.md index e3beca051e..6fe5c50420 100644 --- a/.changeset/mean-ants-hang.md +++ b/.changeset/mean-ants-hang.md @@ -2,4 +2,4 @@ '@backstage/backend-common': patch --- -Exported redactLogLine function to be able to use it in custom loggers. +Exported `redactLogLine` function to be able to use it in custom loggers. From ef4fd4abd1a039b950b18dcb23c8e4d6e51885ff Mon Sep 17 00:00:00 2001 From: Diego Bardari Date: Thu, 28 Jul 2022 11:56:07 +0200 Subject: [PATCH 037/377] feat(logging): renamed redactLogLine function to redactWinstonLogLine Signed-off-by: Diego Bardari --- .changeset/mean-ants-hang.md | 2 +- packages/backend-common/api-report.md | 2 +- packages/backend-common/src/logging/index.ts | 2 +- packages/backend-common/src/logging/rootLogger.ts | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.changeset/mean-ants-hang.md b/.changeset/mean-ants-hang.md index 6fe5c50420..e9c3bc4eaf 100644 --- a/.changeset/mean-ants-hang.md +++ b/.changeset/mean-ants-hang.md @@ -2,4 +2,4 @@ '@backstage/backend-common': patch --- -Exported `redactLogLine` function to be able to use it in custom loggers. +Exported `redactLogLine` function to be able to use it in custom loggers and renamed it to `redactWinstonLogLine`. diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index ff79e106e0..82263fba07 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -569,7 +569,7 @@ export type ReadUrlResponseFactoryFromStreamOptions = { }; // @public -export function redactLogLine( +export function redactWinstonLogLine( info: winston.Logform.TransformableInfo, ): winston.Logform.TransformableInfo; diff --git a/packages/backend-common/src/logging/index.ts b/packages/backend-common/src/logging/index.ts index a3b87237ec..4657dd4101 100644 --- a/packages/backend-common/src/logging/index.ts +++ b/packages/backend-common/src/logging/index.ts @@ -19,6 +19,6 @@ export { createRootLogger, getRootLogger, setRootLogger, - redactLogLine, + redactWinstonLogLine, } from './rootLogger'; export * from './voidLogger'; diff --git a/packages/backend-common/src/logging/rootLogger.ts b/packages/backend-common/src/logging/rootLogger.ts index a24dea3c00..6077662dcf 100644 --- a/packages/backend-common/src/logging/rootLogger.ts +++ b/packages/backend-common/src/logging/rootLogger.ts @@ -72,7 +72,7 @@ export function setRootLoggerRedactionList(redactionList: string[]) { * * @public */ -export function redactLogLine(info: winston.Logform.TransformableInfo) { +export function redactWinstonLogLine(info: winston.Logform.TransformableInfo) { // TODO(hhogg): The logger is created before the config is loaded, because the // logger is needed in the config loader. There is a risk of a secret being // logged out during the config loading stage. @@ -106,7 +106,7 @@ export function createRootLogger( { level: env.LOG_LEVEL || 'info', format: winston.format.combine( - winston.format(redactLogLine)(), + winston.format(redactWinstonLogLine)(), env.NODE_ENV === 'production' ? winston.format.json() : coloredFormat, ), defaultMeta: { From dae12c71cff4d958bdc35f99f67ba0a2a1dccc32 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Jul 2022 12:48:11 +0000 Subject: [PATCH 038/377] fix(deps): update dependency @asyncapi/react-component to v1.0.0-next.40 Signed-off-by: Renovate Bot --- .changeset/renovate-5ba3a71.md | 5 +++++ plugins/api-docs/package.json | 2 +- yarn.lock | 14 ++++++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 .changeset/renovate-5ba3a71.md diff --git a/.changeset/renovate-5ba3a71.md b/.changeset/renovate-5ba3a71.md new file mode 100644 index 0000000000..ba1bdd3b73 --- /dev/null +++ b/.changeset/renovate-5ba3a71.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': patch +--- + +Updated dependency `@asyncapi/react-component` to `1.0.0-next.40`. diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index a690e819ad..5c0f3dfce5 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -33,7 +33,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@asyncapi/react-component": "1.0.0-next.39", + "@asyncapi/react-component": "1.0.0-next.40", "@backstage/catalog-model": "^1.1.0", "@backstage/core-components": "^0.10.1-next.0", "@backstage/core-plugin-api": "^1.0.5-next.0", diff --git a/yarn.lock b/yarn.lock index ec3de78ed5..e68ede91da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -201,10 +201,10 @@ node-fetch "^2.6.0" tiny-merge-patch "^0.1.2" -"@asyncapi/react-component@1.0.0-next.39": - version "1.0.0-next.39" - resolved "https://registry.npmjs.org/@asyncapi/react-component/-/react-component-1.0.0-next.39.tgz#2aa236b1783f36249752b3c30e0c7e0125af8c1f" - integrity sha512-UQYmzbvKwDm3HVGjLL1znK35bOKlWNiTUw29oSe6Xdil/Y7RODLctGQrbwKSCeP0VwtsokhwivQ3QHuL3byjVw== +"@asyncapi/react-component@1.0.0-next.40": + version "1.0.0-next.40" + resolved "https://registry.npmjs.org/@asyncapi/react-component/-/react-component-1.0.0-next.40.tgz#91cb16008f18b6614f00095029f37380a1ad557b" + integrity sha512-C46TXu1agGWEKE6gAdJ+Nf+agdXPeoUUFhpfR03IaCU108kOw05HarHm6VX4y3/nDuNv36p4UmbU4dY6n2t0aA== dependencies: "@asyncapi/avro-schema-parser" "^0.3.0" "@asyncapi/openapi-schema-parser" "^2.0.0" @@ -213,6 +213,7 @@ isomorphic-dompurify "^0.13.0" marked "^4.0.14" openapi-sampler "^1.2.1" + react-icons "^4.4.0" use-resize-observer "^8.0.0" "@asyncapi/specs@^2.14.0": @@ -22097,6 +22098,11 @@ react-hot-loader@^4.13.0: shallowequal "^1.1.0" source-map "^0.7.3" +react-icons@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/react-icons/-/react-icons-4.4.0.tgz#a13a8a20c254854e1ec9aecef28a95cdf24ef703" + integrity sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg== + react-immutable-proptypes@2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.2.0.tgz#cce96d68cc3c18e89617cbf3092d08e35126af4a" From c9c6bf39326e7c4168502c0f84a4abd17f69f91d Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Thu, 28 Jul 2022 14:35:54 +0100 Subject: [PATCH 039/377] feat: github issues plugin mvp Signed-off-by: Kamil Wolny --- packages/app/package.json | 1 + packages/app/src/App.tsx | 2 + .../app/src/components/catalog/EntityPage.tsx | 18 + plugins/github-issues/.eslintrc.js | 1 + plugins/github-issues/README.md | 13 + plugins/github-issues/dev/index.tsx | 27 ++ plugins/github-issues/package.json | 60 +++ .../GitHubIssues/GitHubIssues.test.tsx | 49 +++ .../components/GitHubIssues/GitHubIssues.tsx | 150 +++++++ .../GitHubIssues/IssueCard/Assignees.tsx | 61 +++ .../GitHubIssues/IssueCard/CommentsCount.tsx | 40 ++ .../GitHubIssues/IssueCard/IssueCard.tsx | 93 +++++ .../GitHubIssues/IssueCard/index.ts | 16 + .../IssuesList/Filters/Filters.tsx | 64 +++ .../GitHubIssues/IssuesList/Filters/index.ts | 16 + .../GitHubIssues/IssuesList/IssuesList.tsx | 101 +++++ .../GitHubIssues/IssuesList/index.tsx | 16 + .../NoRepositoriesInfo/NoRepositoriesInfo.tsx | 27 ++ .../GitHubIssues/NoRepositoriesInfo/index.tsx | 16 + .../src/components/GitHubIssues/index.ts | 16 + .../GitHubIssuesCard/GitHubIssuesCard.tsx | 24 ++ .../src/components/GitHubIssuesCard/index.ts | 16 + .../GitHubIssuesPage/GitHubIssuesPage.tsx | 23 ++ .../src/components/GitHubIssuesPage/index.ts | 16 + .../src/hooks/useEntityGitHubRepositories.ts | 69 ++++ .../useGetIssuesBeRepoFromGitHub.test.tsx | 105 +++++ .../src/hooks/useGetIssuesByRepoFromGitHub.ts | 177 ++++++++ .../src/hooks/useGitHubIssues.ts | 21 + .../src/hooks/useOctokitGraphQL.ts | 47 +++ plugins/github-issues/src/index.ts | 20 + plugins/github-issues/src/plugin.test.ts | 22 + plugins/github-issues/src/plugin.ts | 48 +++ plugins/github-issues/src/routes.ts | 20 + plugins/github-issues/src/setupTests.ts | 17 + yarn.lock | 378 +++++++++++++++++- 35 files changed, 1770 insertions(+), 20 deletions(-) create mode 100644 plugins/github-issues/.eslintrc.js create mode 100644 plugins/github-issues/README.md create mode 100644 plugins/github-issues/dev/index.tsx create mode 100644 plugins/github-issues/package.json create mode 100644 plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/IssueCard/Assignees.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/IssueCard/CommentsCount.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/IssueCard/index.ts create mode 100644 plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/index.ts create mode 100644 plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/IssuesList/index.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/NoRepositoriesInfo/NoRepositoriesInfo.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/NoRepositoriesInfo/index.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssues/index.ts create mode 100644 plugins/github-issues/src/components/GitHubIssuesCard/GitHubIssuesCard.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssuesCard/index.ts create mode 100644 plugins/github-issues/src/components/GitHubIssuesPage/GitHubIssuesPage.tsx create mode 100644 plugins/github-issues/src/components/GitHubIssuesPage/index.ts create mode 100644 plugins/github-issues/src/hooks/useEntityGitHubRepositories.ts create mode 100644 plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx create mode 100644 plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts create mode 100644 plugins/github-issues/src/hooks/useGitHubIssues.ts create mode 100644 plugins/github-issues/src/hooks/useOctokitGraphQL.ts create mode 100644 plugins/github-issues/src/index.ts create mode 100644 plugins/github-issues/src/plugin.test.ts create mode 100644 plugins/github-issues/src/plugin.ts create mode 100644 plugins/github-issues/src/routes.ts create mode 100644 plugins/github-issues/src/setupTests.ts diff --git a/packages/app/package.json b/packages/app/package.json index 738dbc2246..d1ab52a6a8 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -33,6 +33,7 @@ "@backstage/plugin-gcalendar": "^0.3.4-next.0", "@backstage/plugin-gcp-projects": "^0.3.27-next.0", "@backstage/plugin-github-actions": "^0.5.8-next.0", + "@backstage/plugin-github-issues": "^0.0.0", "@backstage/plugin-gocd": "^0.1.14-next.0", "@backstage/plugin-graphiql": "^0.2.40-next.0", "@backstage/plugin-home": "^0.4.24-next.0", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 289af8d40f..bc1d86b650 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -100,6 +100,7 @@ import { techDocsPage } from './components/techdocs/TechDocsPage'; import { ApacheAirflowPage } from '@backstage/plugin-apache-airflow'; import { PermissionedRoute } from '@backstage/plugin-permission-react'; import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common'; +import { GitHubIssuesPage } from '@backstage/plugin-github-issues'; const app = createApp({ apis, @@ -241,6 +242,7 @@ const routes = ( } /> } /> + } /> ); diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 288196266e..166157a2bc 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -150,6 +150,11 @@ import { ReportIssue, } from '@backstage/plugin-techdocs-module-addons-contrib'; +import { + GitHubIssuesCard, + GitHubIssuesPage, +} from '@backstage/plugin-github-issues'; + const customEntityFilterKind = ['Component', 'API', 'System']; const EntityLayoutWrapper = (props: { children?: ReactNode }) => { @@ -325,6 +330,10 @@ const overviewContent = ( + + + + @@ -624,6 +633,9 @@ const userPage = ( entityFilterKind={customEntityFilterKind} /> + + + @@ -646,8 +658,14 @@ const groupPage = ( + + + + + + ); diff --git a/plugins/github-issues/.eslintrc.js b/plugins/github-issues/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/plugins/github-issues/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/github-issues/README.md b/plugins/github-issues/README.md new file mode 100644 index 0000000000..65757bef00 --- /dev/null +++ b/plugins/github-issues/README.md @@ -0,0 +1,13 @@ +# github-issues + +Welcome to the github-issues plugin! + +_This plugin was created through the Backstage CLI_ + +## Getting started + +Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/github-issues](http://localhost:3000/github-issues). + +You can also serve the plugin in isolation by running `yarn start` in the plugin directory. +This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. +It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory. diff --git a/plugins/github-issues/dev/index.tsx b/plugins/github-issues/dev/index.tsx new file mode 100644 index 0000000000..4de5a78b2f --- /dev/null +++ b/plugins/github-issues/dev/index.tsx @@ -0,0 +1,27 @@ +/* + * 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 { createDevApp } from '@backstage/dev-utils'; +import { gitHubIssuesPlugin, GitHubIssuesPage } from '../src/plugin'; + +createDevApp() + .registerPlugin(gitHubIssuesPlugin) + .addPage({ + element: , + title: 'Root Page', + path: '/github-issues', + }) + .render(); diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json new file mode 100644 index 0000000000..ab2f7b914e --- /dev/null +++ b/plugins/github-issues/package.json @@ -0,0 +1,60 @@ +{ + "name": "@backstage/plugin-github-issues", + "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" + }, + "backstage": { + "role": "frontend-plugin" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "prettier": "@spotify/prettier-config", + "dependencies": { + "@backstage/catalog-model": "^1.0.3", + "@backstage/core-components": "^0.9.5", + "@backstage/core-plugin-api": "^1.0.3", + "@backstage/integration": "^1.2.1", + "@backstage/plugin-catalog-react": "^1.1.1", + "@backstage/theme": "^0.2.15", + "@material-ui/core": "^4.12.4", + "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "^4.0.0-alpha.61", + "@octokit/rest": "^18.12.0", + "luxon": "^2.4.0", + "react-use": "^17.2.4" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + }, + "devDependencies": { + "@backstage/cli": "^0.17.2", + "@backstage/core-app-api": "^1.0.3", + "@backstage/dev-utils": "^1.0.3", + "@backstage/test-utils": "^1.1.1", + "@spotify/prettier-config": "^13.0.1", + "@testing-library/jest-dom": "^5.10.1", + "@testing-library/react": "^12.1.3", + "@testing-library/user-event": "^14.0.0", + "@types/jest": "*", + "@types/node": "*", + "cross-fetch": "^3.1.5", + "msw": "^0.42.0", + "prettier": "^2.7.1" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx new file mode 100644 index 0000000000..ebb9c78f19 --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx @@ -0,0 +1,49 @@ +/* + * 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 { GitHubIssues } from './GitHubIssues'; +import { ThemeProvider } from '@material-ui/core'; +import { lightTheme } from '@backstage/theme'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { + setupRequestMockHandlers, + renderInTestApp, +} from '@backstage/test-utils'; + +// test for repo duplicates + +describe('GitHubIssues', () => { + const server = setupServer(); + // Enable sane handlers for network requests + setupRequestMockHandlers(server); + + // setup mock response + beforeEach(() => { + server.use( + rest.get('/*', (_, res, ctx) => res(ctx.status(200), ctx.json({}))), + ); + }); + + it('should render', async () => { + const rendered = await renderInTestApp( + + + , + ); + expect(rendered.getByText('Welcome to github-issues!')).toBeInTheDocument(); + }); +}); diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx new file mode 100644 index 0000000000..da31869000 --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx @@ -0,0 +1,150 @@ +/* + * 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 { Box, IconButton, Typography } from '@material-ui/core'; +import { InfoCard, Progress } from '@backstage/core-components'; +import RefreshIcon from '@material-ui/icons/Refresh'; + +import { useEntityGitHubRepositories } from '../../hooks/useEntityGitHubRepositories'; +import { + RepoIssues, + useGetIssuesByRepoFromGitHub, +} from '../../hooks/useGetIssuesByRepoFromGitHub'; + +import { IssueList } from './IssuesList'; +import { NoRepositoriesInfo } from './NoRepositoriesInfo'; + +export type PluginMode = 'page' | 'card'; + +export type Props = { + mode: PluginMode; + itemsPerPage?: number; + itemsPerRepo?: number; +}; + +export const GitHubIssues = ({ + itemsPerPage = 10, + itemsPerRepo = 40, +}: Props) => { + const [isLoading, setIsLoading] = React.useState(true); + const [activeFilter, setActiveFilter] = React.useState>([]); + + const [issuesByRepository, setIssuesByRepository] = + React.useState>(); + + const { repositories } = useEntityGitHubRepositories(); + const getIssues = useGetIssuesByRepoFromGitHub(); + + const filters = React.useMemo( + () => + issuesByRepository + ? Object.keys(issuesByRepository) + .filter(repo => issuesByRepository[repo].issues.totalCount > 0) + .map(repo => ({ + label: `${repo} (${issuesByRepository[repo].issues.totalCount})`, + value: repo, + })) + : [], + [issuesByRepository], + ); + + const totalIssuesInGitHub = React.useMemo( + () => + issuesByRepository + ? Object.values(issuesByRepository).reduce( + (acc, { issues: { totalCount } }) => acc + totalCount, + 0, + ) + : 0, + [issuesByRepository], + ); + + const filteredRepos = React.useMemo( + () => + issuesByRepository && activeFilter.length + ? activeFilter.reduce( + (acc, val) => ({ + [val]: issuesByRepository[val], + ...acc, + }), + {}, + ) + : issuesByRepository, + [issuesByRepository, activeFilter], + ); + + const issues = React.useMemo( + () => + filteredRepos + ? Object.values(filteredRepos) + .map(({ issues: { edges } }) => edges) + .flat() + .sort((a, b) => { + if (a.node.updatedAt > b.node.updatedAt) { + return -1; + } else if (b.node.updatedAt > a.node.updatedAt) { + return 1; + } + return 0; + }) + : [], + [filteredRepos], + ); + + const fetchGitHubIssues = React.useCallback(async () => { + setIsLoading(true); + const issuesByRepo = await getIssues(repositories, itemsPerRepo); + + setIssuesByRepository(issuesByRepo); + setIsLoading(false); + }, [itemsPerRepo, getIssues, repositories]); + + React.useEffect(() => { + if (repositories.length) { + fetchGitHubIssues(); + } else { + setIsLoading(false); + } + }, [repositories.length, fetchGitHubIssues]); + + if (!repositories.length) { + return ; + } + + return ( + + Open GitHub Issues + + + + + } + > + {isLoading && } + + + + ); +}; diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/Assignees.tsx b/plugins/github-issues/src/components/GitHubIssues/IssueCard/Assignees.tsx new file mode 100644 index 0000000000..e6abdbb6fe --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/Assignees.tsx @@ -0,0 +1,61 @@ +/* + * 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, { FunctionComponent } from 'react'; +import { Typography, Box, Avatar, makeStyles } from '@material-ui/core'; + +type Props = { + name?: string; + avatar?: string; +}; + +const useStyles = makeStyles(theme => ({ + small: { + width: theme.spacing(4), + height: theme.spacing(4), + marginLeft: theme.spacing(1), + }, + noAssignees: { + height: theme.spacing(4), + }, +})); + +export const Assignees: FunctionComponent = (props: Props) => { + const { name, avatar } = props; + const classes = useStyles(); + + // todo: many assignees -> NUM assignees + stock images on each other + return name ? ( + + + {name} + + + + ) : ( + + + No assignees + + + ); +}; + +export default Assignees; diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/CommentsCount.tsx b/plugins/github-issues/src/components/GitHubIssues/IssueCard/CommentsCount.tsx new file mode 100644 index 0000000000..d3e7f355e0 --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/CommentsCount.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 React, { FunctionComponent } from 'react'; +import { ChatIcon } from '@backstage/core-components'; +import { Box, Badge } from '@material-ui/core'; + +type Props = { + commentsCount: number; +}; + +export const CommentsCount: FunctionComponent = (props: Props) => { + const { commentsCount } = props; + + return ( + + + + + + ); +}; diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx b/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx new file mode 100644 index 0000000000..73010d50c9 --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx @@ -0,0 +1,93 @@ +/* + * 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, { FunctionComponent } from 'react'; +import { DateTime } from 'luxon'; + +import { Box, Paper, Typography, CardActionArea } from '@material-ui/core'; +import Assignees from './Assignees'; +import { CommentsCount } from './CommentsCount'; + +import Divider from '@material-ui/core/Divider'; + +type Props = { + title: string; + createdAt: string; + updatedAt?: string; + url: string; + authorName: string; + assigneeName?: string; + assigneeAvatar?: string; + authorAvatar?: string; + repositoryName: string; + commentsCount: number; + even: boolean; +}; + +const getElapsedTime = (isoDate: string) => + DateTime.fromISO(isoDate).toRelative(); + +export const IssueCard: FunctionComponent = (props: Props) => { + const { + title, + createdAt, + updatedAt, + url, + assigneeName, + assigneeAvatar, + authorName, + repositoryName, + commentsCount, + } = props; + + return ( + + + + + + + {repositoryName} + + + + + + {title} + + + + + + + Created at: {getElapsedTime(createdAt)} by{' '} + {authorName} + + {updatedAt && ( + + Last update at: {getElapsedTime(updatedAt)} + + )} + + {commentsCount > 0 && ( + + )} + + + + + + ); +}; diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/index.ts b/plugins/github-issues/src/components/GitHubIssues/IssueCard/index.ts new file mode 100644 index 0000000000..5c60abf6ab --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/index.ts @@ -0,0 +1,16 @@ +/* + * 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 { IssueCard } from './IssueCard'; diff --git a/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx b/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx new file mode 100644 index 0000000000..7f654dd9e5 --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx @@ -0,0 +1,64 @@ +/* + * 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 { Select } from '@backstage/core-components'; +import { SelectedItems } from '@backstage/core-components'; +import { makeStyles, Box } from '@material-ui/core'; + +export type FilterItem = { + label: string; + value: string; +}; + +type Props = { + items: Array; + totalIssuesInGitHub: number; + onChange: (active: Array) => void; +}; + +const useStyles = makeStyles(theme => ({ + filters: { + margin: theme.spacing(0, 0, 2, 0), + '& > div': { + width: '600px', + '& > div': { + maxWidth: '600px', + }, + }, + }, +})); + +const checkSelectedItems: ( + onChange: (active: Array) => void, +) => (active: SelectedItems) => void = onChange => active => { + return onChange(active as Array); +}; + +export const Filters = ({ items, totalIssuesInGitHub, onChange }: Props) => { + const css = useStyles(); + + return ( + + + + *Repositories with more Issues in GitHub than available to view in + Backstage. To view them go to GitHub. + ); }; diff --git a/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx b/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx index 152a888785..34ccab597d 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx @@ -19,29 +19,86 @@ import { Box } from '@material-ui/core'; import { Pagination } from '@material-ui/lab'; import { IssueCard } from '../IssueCard'; -import { Issue } from '../../../hooks/useGetIssuesByRepoFromGitHub'; -import { Filters, FilterItem } from './Filters'; +import { RepoIssues } from '../../../hooks/useGetIssuesByRepoFromGitHub'; +import { Filters } from './Filters'; export type PluginMode = 'page' | 'card'; export type Props = { itemsPerPage?: number; - issues: Array<{ - node: Issue; - }>; - filters: Array; - totalIssuesInGitHub: number; - setActiveFilter: (active: Array) => void; + issuesByRepository?: Record; }; -export const IssueList = ({ - itemsPerPage = 10, - issues, - filters, - setActiveFilter, - totalIssuesInGitHub, -}: Props) => { +const getIssuesCountForFilterLabel = ( + totalIssues: number, + issuesAvailable: number, +) => + `(${totalIssues} ${totalIssues === 1 ? 'Issue' : `Issues`})${ + issuesAvailable < totalIssues ? '*' : '' + }`; + +export const IssueList = ({ itemsPerPage = 10, issuesByRepository }: Props) => { const [currentPage, setCurrentPage] = React.useState(1); + const [activeFilter, setActiveFilter] = React.useState>([]); + + const filters = React.useMemo( + () => + issuesByRepository + ? Object.keys(issuesByRepository) + .filter(repo => issuesByRepository[repo].issues.totalCount > 0) + .map(repo => ({ + label: `${repo} ${getIssuesCountForFilterLabel( + issuesByRepository[repo].issues.totalCount, + issuesByRepository[repo].issues.edges.length, + )}`, + value: repo, + })) + : [], + [issuesByRepository], + ); + + const totalIssuesInGitHub = React.useMemo( + () => + issuesByRepository + ? Object.values(issuesByRepository).reduce( + (acc, { issues: { totalCount } }) => acc + totalCount, + 0, + ) + : 0, + [issuesByRepository], + ); + + const filteredRepos = React.useMemo( + () => + issuesByRepository && activeFilter.length + ? activeFilter.reduce( + (acc, val) => ({ + [val]: issuesByRepository[val], + ...acc, + }), + {}, + ) + : issuesByRepository, + [issuesByRepository, activeFilter], + ); + + const issues = React.useMemo( + () => + filteredRepos + ? Object.values(filteredRepos) + .map(({ issues: { edges } }) => edges) + .flat() + .sort((a, b) => { + if (a.node.updatedAt > b.node.updatedAt) { + return -1; + } else if (b.node.updatedAt > a.node.updatedAt) { + return 1; + } + return 0; + }) + : [], + [filteredRepos], + ); const displayIssues = issues.slice( (currentPage - 1) * itemsPerPage, @@ -50,11 +107,17 @@ export const IssueList = ({ return ( - + {issues.length > 0 && ( + + )} {displayIssues.length > 0 ? ( displayIssues.map( @@ -88,7 +151,7 @@ export const IssueList = ({ ), ) ) : ( -

No issues 🚀

+

Hurray! No Issues 🚀

)} {issues.length / itemsPerPage > 1 ? ( { const Helper = () => { const getIssues = useGetIssuesByRepoFromGitHub(); - getIssues(['mrwolny/yo-yo', 'mrwolny/yoyo'], 10); + getIssues(['mrwolny/yo-yo', 'mrwolny/yoyo', 'mrwolny/yo.yo'], 10); return
; }; render(); - expect(mockGraphQLQuery).toHaveBeenCalled(); + expect(mockGraphQLQuery).toHaveBeenCalledTimes(1); expect(mockGraphQLQuery).toHaveBeenCalledWith( '\n' + ' \n' + @@ -46,7 +46,6 @@ describe('useGetIssuesBeRepoFromGitHub', () => { ' ) {\n' + ' totalCount\n' + ' edges {\n' + - ' cursor\n' + ' node {\n' + ' assignees(first: 10) {\n' + ' edges {\n' + @@ -64,7 +63,6 @@ describe('useGetIssuesBeRepoFromGitHub', () => { ' repository {\n' + ' nameWithOwner\n' + ' }\n' + - ' body\n' + ' title\n' + ' url\n' + ' participants {\n' + @@ -90,6 +88,10 @@ describe('useGetIssuesBeRepoFromGitHub', () => { ' yoyox: repository(name: "yoyo", owner: "mrwolny") {\n' + ' ...issues\n' + ' }\n' + + ' ,\n' + + ' yoyoxx: repository(name: "yo.yo", owner: "mrwolny") {\n' + + ' ...issues\n' + + ' }\n' + ' \n' + ' } \n' + ' ', diff --git a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts index c75bd495ec..271cd6c741 100644 --- a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts +++ b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts @@ -36,13 +36,11 @@ type IssueAuthor = { }; export type Issue = { - cursor: string; assignees: EdgesWithNodes; author: IssueAuthor; repository: { nameWithOwner: string; }; - body: string; title: string; url: string; participants: { @@ -80,7 +78,6 @@ const createQuery = ( ) { totalCount edges { - cursor node { assignees(first: 10) { edges { @@ -98,7 +95,6 @@ const createQuery = ( repository { nameWithOwner } - body title url participants { diff --git a/plugins/github-issues/src/hooks/useGitHubIssues.ts b/plugins/github-issues/src/hooks/useGitHubIssues.ts deleted file mode 100644 index ffe3ca20f1..0000000000 --- a/plugins/github-issues/src/hooks/useGitHubIssues.ts +++ /dev/null @@ -1,21 +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 { Issue } from './useGetIssuesByRepoFromGitHub'; - -export type GitHubIssues = { - getIssues: (repo?: string) => Array; - getIssuesTotalCountByRepo: () => Record; -}; From f9445b8d7b41996e655dae898c7eed21f19e3196 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 29 Jul 2022 14:51:32 +0100 Subject: [PATCH 096/377] feat: api report added Signed-off-by: Kamil Wolny --- plugins/github-issues/api-report.md | 34 +++++++++++++++++++++++++++++ plugins/github-issues/src/plugin.ts | 3 +++ 2 files changed, 37 insertions(+) create mode 100644 plugins/github-issues/api-report.md diff --git a/plugins/github-issues/api-report.md b/plugins/github-issues/api-report.md new file mode 100644 index 0000000000..5e6f75460d --- /dev/null +++ b/plugins/github-issues/api-report.md @@ -0,0 +1,34 @@ +## API Report File for "@backstage/plugin-github-issues" + +> 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 { FunctionComponent } from 'react'; +import { RouteRef } from '@backstage/core-plugin-api'; + +// @public (undocumented) +export const GitHubIssuesCard: FunctionComponent<{ + itemsPerPage?: number | undefined; + itemsPerRepo?: number | undefined; +}>; + +// @public (undocumented) +export const GitHubIssuesPage: FunctionComponent<{ + itemsPerPage?: number | undefined; + itemsPerRepo?: number | undefined; +}>; + +// @public (undocumented) +export const gitHubIssuesPlugin: BackstagePlugin< + { + root: RouteRef; + }, + {}, + {} +>; + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/github-issues/src/plugin.ts b/plugins/github-issues/src/plugin.ts index 60bae268c5..c5bf1cdbce 100644 --- a/plugins/github-issues/src/plugin.ts +++ b/plugins/github-issues/src/plugin.ts @@ -21,6 +21,7 @@ import { import { rootRouteRef } from './routes'; +/** @public */ export const gitHubIssuesPlugin = createPlugin({ id: 'github-issues', routes: { @@ -28,6 +29,7 @@ export const gitHubIssuesPlugin = createPlugin({ }, }); +/** @public */ export const GitHubIssuesCard = gitHubIssuesPlugin.provide( createComponentExtension({ name: 'GitHubIssuesCard', @@ -38,6 +40,7 @@ export const GitHubIssuesCard = gitHubIssuesPlugin.provide( }), ); +/** @public */ export const GitHubIssuesPage = gitHubIssuesPlugin.provide( createRoutableExtension({ name: 'GitHubIssuesPage', From 34f8a7acb395562b78db6f50eb12816f6dea2135 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 29 Jul 2022 15:27:25 +0100 Subject: [PATCH 097/377] feat: docs Signed-off-by: Kamil Wolny --- plugins/github-issues/README.md | 66 +++++++++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/plugins/github-issues/README.md b/plugins/github-issues/README.md index 65757bef00..eeb93ab27b 100644 --- a/plugins/github-issues/README.md +++ b/plugins/github-issues/README.md @@ -1,13 +1,63 @@ -# github-issues +# GitHub Issues plugin -Welcome to the github-issues plugin! +Welcome to the GitHub Issues plugin! -_This plugin was created through the Backstage CLI_ +Based on the [well-known GitHub slug annotation](https://backstage.io/docs/features/software-catalog/well-known-annotations#githubcomproject-slug) associated with the Entity, it renders the list of Open issues in GitHub. -## Getting started +The plugin is designed to work with four Entity kinds, and it behaves a bit differently depending on that kind: -Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/github-issues](http://localhost:3000/github-issues). +- Kind: Group/User: plugin renders issues from all repositories for which the Entity is the owner. +- Kind: API/Component: plugin renders issues from only one repository assigned to the Entity -You can also serve the plugin in isolation by running `yarn start` in the plugin directory. -This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. -It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory. +**Issues are sorted from the recently updated DESC order (the plugin might not render all issues from a single repo next to each other).** + +## Prerequisites + +- [GitHub Authentication Provider](https://backstage.io/docs/auth/github/provider) + +## Usage + +Install the plugin by running the following command **from your Backstage root directory** + +`yarn --cwd packages/app add @backstage/plugin-github-issues` + +After installation, the plugin can be used as a Card or as a Page. + +```typescript +import { + GitHubIssuesCard, + GitHubIssuesPage, +} from '@backstage/plugin-github-issues'; + +// To use as a page Plugin needs to be wrapped in EntityLayout.Route +const RenderGitHubIssuesPage = () => ( + + + + + + + +); + +// To use as a card and make it render correctly please place it inside appropriate Grid elements +const RenderGitHubIssuesCard = () => ( + + + + + + + + + +); +``` + +## Configuration + +Both `GitHubIssuesPage` and `GitHubIssuesCard` provide default configuration. It is ready to use out of the box. +However, you can configure the plugin with props: + +- `itemsPerPage: number = 10` - Issues in the list are paginated, number of issues on a single page is controlled with this prop +- `itemsPerRepo: number = 40` - the plugin doesn't download all Issues available on GitHub. By default, it will get at most 40 Issues - this prop controls this behaviour From ecabc7a35ed457831763762d47184bd93a8272c4 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 29 Jul 2022 15:32:48 +0100 Subject: [PATCH 098/377] feat: removed local changes to package/app Signed-off-by: Kamil Wolny --- packages/app/package.json | 1 - packages/app/src/App.tsx | 2 -- .../app/src/components/catalog/EntityPage.tsx | 18 ------------------ 3 files changed, 21 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index d1ab52a6a8..738dbc2246 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -33,7 +33,6 @@ "@backstage/plugin-gcalendar": "^0.3.4-next.0", "@backstage/plugin-gcp-projects": "^0.3.27-next.0", "@backstage/plugin-github-actions": "^0.5.8-next.0", - "@backstage/plugin-github-issues": "^0.0.0", "@backstage/plugin-gocd": "^0.1.14-next.0", "@backstage/plugin-graphiql": "^0.2.40-next.0", "@backstage/plugin-home": "^0.4.24-next.0", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index bc1d86b650..289af8d40f 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -100,7 +100,6 @@ import { techDocsPage } from './components/techdocs/TechDocsPage'; import { ApacheAirflowPage } from '@backstage/plugin-apache-airflow'; import { PermissionedRoute } from '@backstage/plugin-permission-react'; import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common'; -import { GitHubIssuesPage } from '@backstage/plugin-github-issues'; const app = createApp({ apis, @@ -242,7 +241,6 @@ const routes = ( } /> } /> - } /> ); diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 166157a2bc..288196266e 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -150,11 +150,6 @@ import { ReportIssue, } from '@backstage/plugin-techdocs-module-addons-contrib'; -import { - GitHubIssuesCard, - GitHubIssuesPage, -} from '@backstage/plugin-github-issues'; - const customEntityFilterKind = ['Component', 'API', 'System']; const EntityLayoutWrapper = (props: { children?: ReactNode }) => { @@ -330,10 +325,6 @@ const overviewContent = ( - - - - @@ -633,9 +624,6 @@ const userPage = ( entityFilterKind={customEntityFilterKind} /> - - - @@ -658,14 +646,8 @@ const groupPage = ( - - - - - - ); From 658e22b1a86fe57576ddccf559ddc526939a07e1 Mon Sep 17 00:00:00 2001 From: Iswariya Manivannan Date: Fri, 29 Jul 2022 13:50:01 +0200 Subject: [PATCH 099/377] docs: Remove markdown version constraint for mkdocs-techdocs-core Signed-off-by: Iswariya Manivannan --- docs/features/techdocs/getting-started.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/features/techdocs/getting-started.md b/docs/features/techdocs/getting-started.md index f8bf98c0e0..c2070e7840 100644 --- a/docs/features/techdocs/getting-started.md +++ b/docs/features/techdocs/getting-started.md @@ -278,10 +278,7 @@ Note: We recommend Python version 3.7 or higher. > Caveat: Please install the `mkdocs-techdocs-core` package after all other > Python packages. The order is important to make sure we get correct version of -> some of the dependencies. For example, we want `Markdown` version to be -> [3.2.2](https://github.com/backstage/backstage/blob/f9f70c225548017b6a14daea75b00fbd399c11eb/packages/techdocs-container/techdocs-core/requirements.txt#L11). -> You can also explicitly install `Markdown==3.2.2` after installing all other -> Python packages. +> some of the dependencies. ## Running Backstage locally From 42d301b43c6ea9f0c129a1d877570edc5835b967 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 29 Jul 2022 16:07:37 +0100 Subject: [PATCH 100/377] fix: add missing react types + fixed typo Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 1 + .../GitHubIssues/IssuesList/Filters/Filters.tsx | 2 +- yarn.lock | 14 +++++++++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index f1ee17b2a3..f32ccc039e 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -50,6 +50,7 @@ "@testing-library/user-event": "^14.0.0", "@types/jest": "*", "@types/node": "*", + "@types/react": "^18.0.15", "cross-fetch": "^3.1.5", "msw": "^0.42.0", "prettier": "^2.7.1" diff --git a/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx b/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx index 9a6ceb103f..eab1d8f57b 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx @@ -60,7 +60,7 @@ export const Filters = ({ items, onChange, placeholder }: Props) => { onChange={checkSelectedItems(onChange)} /> - *Repositories with more Issues in GitHub than available to view in + *Repositories with more Issues on GitHub than available to view in Backstage. To view them go to GitHub. diff --git a/yarn.lock b/yarn.lock index 28ba459975..a7a5d687cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7432,7 +7432,7 @@ 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@<18.0.0", "@types/react-dom@^17": +"@types/react-dom@*", "@types/react-dom@<18.0.0": version "17.0.17" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz#2e3743277a793a96a99f1bf87614598289da68a1" integrity sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg== @@ -7507,6 +7507,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.0.15": + version "18.0.15" + resolved "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz#d355644c26832dc27f3e6cbf0c4f4603fc4ab7fe" + integrity sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/recharts@^1.8.14", "@types/recharts@^1.8.15": version "1.8.23" resolved "https://registry.npmjs.org/@types/recharts/-/recharts-1.8.23.tgz#eeb6c52c6b2b916e9383bd5cf8fb5fd941c9c6fe" @@ -13160,7 +13169,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: "@backstage/plugin-gcalendar" "^0.3.4-next.0" "@backstage/plugin-gcp-projects" "^0.3.27-next.0" "@backstage/plugin-github-actions" "^0.5.8-next.0" - "@backstage/plugin-github-issues" "^0.0.0" "@backstage/plugin-gocd" "^0.1.14-next.0" "@backstage/plugin-graphiql" "^0.2.40-next.0" "@backstage/plugin-home" "^0.4.24-next.0" @@ -26700,7 +26708,7 @@ ws@^7.3.1, ws@^7.4.6: resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== -ws@^8.0.0, ws@^8.3.0: +ws@^8.3.0: version "8.8.1" resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== From 88dae32a7e93d6e2f674a85e74c34378a419b9f7 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Fri, 29 Jul 2022 17:22:35 +0200 Subject: [PATCH 101/377] Take into account PR comments on `sonarqube-backend` plugin's `router.ts` Simplify some code and change response method call to be `json` instead of plain `send`. Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .../sonarqube-backend/src/service/router.ts | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index c0a9cb88d1..d6f5da7691 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -15,13 +15,10 @@ */ import { errorHandler } from '@backstage/backend-common'; -import express, { RequestHandler } from 'express'; +import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; -import { - SonarqubeFindings, - SonarqubeInfoProvider, -} from './sonarqubeInfoProvider'; +import { SonarqubeInfoProvider } from './sonarqubeInfoProvider'; import { InputError } from '../../../../packages/errors'; /** @@ -55,9 +52,9 @@ export async function createRouter( const router = Router(); router.use(express.json()); - router.get('/findings', (async (request, response) => { - const componentKey = request.query.componentKey; - let instanceKey = request.query.instanceKey; + router.get('/findings', async (request, response) => { + const componentKey = request.query.componentKey as string; + let instanceKey = request.query.instanceKey as string; if (!componentKey) throw new InputError('ComponentKey must be provided as a single string.'); @@ -73,13 +70,13 @@ export async function createRouter( ); } - response.send( + response.json( await sonarqubeInfoProvider.getFindings(componentKey, instanceKey), ); - }) as RequestHandler); + }); - router.get('/instanceUrl', ((request, response) => { - let requestedInstanceKey = request.query.instanceKey; + router.get('/instanceUrl', (request, response) => { + let requestedInstanceKey = request.query.instanceKey as string; if (requestedInstanceKey) { logger.info( `Retrieving sonarqube instance URL for key ${requestedInstanceKey}`, @@ -90,12 +87,13 @@ export async function createRouter( `Retrieving default sonarqube instance URL as parameter is inexistant, empty or malformed`, ); } - response.send({ - instanceUrl: sonarqubeInfoProvider.getBaseUrl({ - instanceName: requestedInstanceKey, - }).baseUrl, + const { baseUrl } = sonarqubeInfoProvider.getBaseUrl({ + instanceName: requestedInstanceKey, }); - }) as RequestHandler); + response.json({ + instanceUrl: baseUrl, + }); + }); router.use(errorHandler()); return router; From 043fb69c3d2b32dfa38ab00bdea4d412bbb155c6 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 29 Jul 2022 16:46:19 +0100 Subject: [PATCH 102/377] fix: @types/react as dependecy in plugins/github-issues Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 2 +- yarn.lock | 13 ++----------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index f32ccc039e..861a67ffa2 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -33,6 +33,7 @@ "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", "@octokit/rest": "^18.12.0", + "@types/react": "^16.13.1 || ^17.0.0", "luxon": "^2.4.0", "react-use": "^17.2.4" }, @@ -50,7 +51,6 @@ "@testing-library/user-event": "^14.0.0", "@types/jest": "*", "@types/node": "*", - "@types/react": "^18.0.15", "cross-fetch": "^3.1.5", "msw": "^0.42.0", "prettier": "^2.7.1" diff --git a/yarn.lock b/yarn.lock index a7a5d687cf..44409c647b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7432,7 +7432,7 @@ 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@<18.0.0": +"@types/react-dom@*", "@types/react-dom@<18.0.0", "@types/react-dom@^17": version "17.0.17" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz#2e3743277a793a96a99f1bf87614598289da68a1" integrity sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg== @@ -7507,15 +7507,6 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^18.0.15": - version "18.0.15" - resolved "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz#d355644c26832dc27f3e6cbf0c4f4603fc4ab7fe" - integrity sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/recharts@^1.8.14", "@types/recharts@^1.8.15": version "1.8.23" resolved "https://registry.npmjs.org/@types/recharts/-/recharts-1.8.23.tgz#eeb6c52c6b2b916e9383bd5cf8fb5fd941c9c6fe" @@ -26708,7 +26699,7 @@ ws@^7.3.1, ws@^7.4.6: resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== -ws@^8.3.0: +ws@^8.0.0, ws@^8.3.0: version "8.8.1" resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== From e7a5a0498456e506e4e10ea3e4d0f11f5d80cc3a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 15:46:42 +0000 Subject: [PATCH 103/377] fix(deps): update dependency @roadiehq/backstage-plugin-buildkite to v2.0.5 Signed-off-by: Renovate Bot --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index fe03c06949..7588c24433 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6035,12 +6035,12 @@ integrity sha512-8UiDeDbjCImFSfOegGu13otQ7OdP9FOYpcLjeouppnhs+MPeIEAtYS+jCcBKmi3reyTagC15/KVSRhde1wS1vg== "@roadiehq/backstage-plugin-buildkite@^2.0.0": - version "2.0.4" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-2.0.4.tgz#cd72fd35a9f8b6bb1c2ccd3c13d2aece2ecaf86e" - integrity sha512-bOrqKO9MmRB5jgue+S8WEmJk83h6g4EdGp2qmirVODQddL03gtFNgMTauQkKAV7T8N+C948xDcgdL3pjvLYJdA== + version "2.0.5" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-2.0.5.tgz#540679bd1dbb4cadf654e3d939cc9cbe4cf6e2e5" + integrity sha512-zMTlBzjEHdydWSddCt+Mr+2wjbMWn2f/AgBTXfYvaGDTY1fCmEFQ3gOL2fHd7UHk635AE/DKuGLL8gyEvLbqjg== dependencies: "@backstage/catalog-model" "^1.0.0" - "@backstage/core-components" "^0.9.0" + "@backstage/core-components" "^0.10.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" "@backstage/theme" "^0.2.6" From d1cf60891fdc7f5df905adce41e804869e1faa0d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 15:47:30 +0000 Subject: [PATCH 104/377] fix(deps): update dependency @roadiehq/backstage-plugin-github-insights to v2.0.2 Signed-off-by: Renovate Bot --- yarn.lock | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index fe03c06949..7458040db7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6054,12 +6054,12 @@ react-use "^17.2.4" "@roadiehq/backstage-plugin-github-insights@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-2.0.1.tgz#b0cccdd5cfe1c94055ad372087a1daba9ec72bb4" - integrity sha512-Kq3JdzSIpLV0Ka6GqX7Ok2QW/s6w18l0Kyec+OtQ+/1dz8AeG7UoYwUtBI/+sTd+gveTHAonwi9xINYbcIvQhQ== + version "2.0.2" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-2.0.2.tgz#d6a953123f8a60be5df5b32583c5c2b22d18f8bb" + integrity sha512-3f+iTuAqINdolxrOjAS2XR2JDv7v2BALfAnr/EuCXfIS5qbJqn6IpktC1FcS0HHV1hmI/y+fyI3V5/69RjNBnQ== dependencies: "@backstage/catalog-model" "^1.0.0" - "@backstage/core-components" "^0.9.0" + "@backstage/core-components" "^0.10.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/integration-react" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" @@ -6068,7 +6068,6 @@ "@material-ui/core" "^4.11.0" "@material-ui/icons" "^4.9.1" "@material-ui/lab" "4.0.0-alpha.45" - "@octokit/request-error" "^2.1.0" "@octokit/rest" "^18.5.3" "@octokit/types" "^6.14.2" history "^5.0.0" From e614c09280e479b63781d17005eccfe4ce9658d5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 16:33:58 +0000 Subject: [PATCH 105/377] fix(deps): update dependency @roadiehq/backstage-plugin-github-pull-requests to v2.2.2 Signed-off-by: Renovate Bot --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7588c24433..72062c92fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6078,12 +6078,12 @@ zustand "3.6.9" "@roadiehq/backstage-plugin-github-pull-requests@^2.0.0": - version "2.2.1" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.2.1.tgz#a50ca71c70fb16283bd65427688c3c5e9425dec7" - integrity sha512-oMLe1ew8hee9LfV5Pdw25sV1XdoMxpq/ZKZWWtZTS0iCudgWleslkdj20preF8FPuHQjkr1xAtnDdnMWvejtxQ== + version "2.2.2" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.2.2.tgz#b58568bdfbf08dcf0d4d45e2fd1d080875627439" + integrity sha512-klMqFfiSQMVg2PxrEU7v7UulkwuTiGBjQQnfHKuwpsziGiJoN4XtEZW/VdIEc4wHbBN8BA4CRJ1127V9up1dnQ== dependencies: "@backstage/catalog-model" "^1.0.0" - "@backstage/core-components" "^0.9.0" + "@backstage/core-components" "^0.10.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" "@backstage/plugin-home" "^0.4.19" From 0175a7da43f8d757530c7e751437312c6656c80d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 16:34:46 +0000 Subject: [PATCH 106/377] fix(deps): update dependency @roadiehq/backstage-plugin-travis-ci to v2.0.2 Signed-off-by: Renovate Bot --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7588c24433..b473732c4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6102,12 +6102,12 @@ react-use "^17.2.4" "@roadiehq/backstage-plugin-travis-ci@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-2.0.1.tgz#0d706d3a31b123cd2e76b6d7fd849ae8cb97e786" - integrity sha512-Qay8Ad+heMEyW5QPi2I4C7ky3NUYhgE7FF+pV77ES21zyytCcTHQIkYHJd0FrR6WpedtNSegfcRj61VSZfbRKA== + version "2.0.2" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-2.0.2.tgz#9a7aca54a6728bf836c5f51e22fd1a397801c9e0" + integrity sha512-fIevPreKE16nEuJzg5WPN3xI+z8EaotXwqCpWk7GR/8UjLSB5bt7wAwaMsQdywvmK21rBLAmKBlSn5x0TfYoLQ== dependencies: "@backstage/catalog-model" "^1.0.0" - "@backstage/core-components" "^0.9.0" + "@backstage/core-components" "^0.10.0" "@backstage/core-plugin-api" "^1.0.0" "@backstage/plugin-catalog-react" "^1.0.0" "@backstage/theme" "^0.2.9" From ec07a46aa39e87821ae0a73cbedd8ce101aab0e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 17:40:24 +0000 Subject: [PATCH 107/377] chore(deps): update dependency @types/express-serve-static-core to v4.17.30 Signed-off-by: Renovate Bot --- yarn.lock | 63 +------------------------------------------------------ 1 file changed, 1 insertion(+), 62 deletions(-) diff --git a/yarn.lock b/yarn.lock index 916921f374..38ace74f20 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2072,52 +2072,7 @@ zen-observable "^0.8.15" zod "^3.11.6" -"@backstage/core-components@^0.9.0": - version "0.9.5" - resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.9.5.tgz#5a0b34867aaee0549bfa67b39a69c09588fa3c7a" - integrity sha512-kfAdN70idiEqHeH9ZQryn6C0RxJEKiRc/7srYIz0CVV88zJfc0nmZ5C/S10Gkht2xWfm95tTSw2P1vEYIBbfxg== - dependencies: - "@backstage/config" "^1.0.1" - "@backstage/core-plugin-api" "^1.0.3" - "@backstage/errors" "^1.0.0" - "@backstage/theme" "^0.2.15" - "@backstage/version-bridge" "^1.0.1" - "@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" "^14.0.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.3.3" - 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.19.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@^1.0.0", "@backstage/core-plugin-api@^1.0.3", "@backstage/core-plugin-api@^1.0.4": +"@backstage/core-plugin-api@^1.0.0", "@backstage/core-plugin-api@^1.0.4": version "1.0.4" resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-1.0.4.tgz#0dbe80be1d298273df0299ef69baa18522d9a808" integrity sha512-fMMpjqW2RjwclnHUJsSyPCTguplflQYEWv7wsk7IoanEkWx39pensi8OsdIBawXrOixXEnI47dgxtVMOQUxOKA== @@ -6000,13 +5955,6 @@ resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.2.tgz#4e8bdeda027379dcf8b62a42e5f75f0351b11b35" integrity sha512-cM5kPFb6EFH5q52WzRxfRX9+8g5kq78McWOYs6e1seo+nK6NpfLupT5uOCIJp37jU8ayd4Su8ni3HRFTN2C2kg== -"@react-hookz/web@^14.0.0": - version "14.7.1" - resolved "https://registry.npmjs.org/@react-hookz/web/-/web-14.7.1.tgz#5e39e6fc21331cc4ae95f36e8135ad763e6c29fb" - integrity sha512-kU1CccZDXvQ9G4vcCCpX3mDQqYKkuLXGFOtPMgmbZ9KrvkEduMRH4JqSVXp1nI/bGI1GJ0KAWm4UEb1x5eDGAg== - dependencies: - "@react-hookz/deep-equal" "^1.0.2" - "@react-hookz/web@^15.0.0": version "15.0.1" resolved "https://registry.npmjs.org/@react-hookz/web/-/web-15.0.1.tgz#a6e5460dd16e54ccc0b899e1eed4ae29e871060f" @@ -22098,15 +22046,6 @@ raw-body@2.5.1, raw-body@^2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -rc-progress@3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.3.3.tgz#eb9bffbacab1534f2542f9f6861ce772254362b1" - integrity sha512-MDVNVHzGanYtRy2KKraEaWeZLri2ZHWIRyaE1a9MQ2MuJ09m+Wxj5cfcaoaR6z5iRpHpA59YeUxAlpML8N4PJw== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - rc-util "^5.16.1" - rc-progress@3.4.0: version "3.4.0" resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.4.0.tgz#80a33c25c9675f5836ba25a87cd8dc310aad72b1" From 35f344f6adc02ec8bf586dc9763feaaf68e350ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 17:41:19 +0000 Subject: [PATCH 108/377] fix(deps): update dependency @graphql-tools/schema to v8.5.1 Signed-off-by: Renovate Bot --- yarn.lock | 63 +------------------------------------------------------ 1 file changed, 1 insertion(+), 62 deletions(-) diff --git a/yarn.lock b/yarn.lock index 916921f374..38ace74f20 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2072,52 +2072,7 @@ zen-observable "^0.8.15" zod "^3.11.6" -"@backstage/core-components@^0.9.0": - version "0.9.5" - resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.9.5.tgz#5a0b34867aaee0549bfa67b39a69c09588fa3c7a" - integrity sha512-kfAdN70idiEqHeH9ZQryn6C0RxJEKiRc/7srYIz0CVV88zJfc0nmZ5C/S10Gkht2xWfm95tTSw2P1vEYIBbfxg== - dependencies: - "@backstage/config" "^1.0.1" - "@backstage/core-plugin-api" "^1.0.3" - "@backstage/errors" "^1.0.0" - "@backstage/theme" "^0.2.15" - "@backstage/version-bridge" "^1.0.1" - "@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" "^14.0.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.3.3" - 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.19.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@^1.0.0", "@backstage/core-plugin-api@^1.0.3", "@backstage/core-plugin-api@^1.0.4": +"@backstage/core-plugin-api@^1.0.0", "@backstage/core-plugin-api@^1.0.4": version "1.0.4" resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-1.0.4.tgz#0dbe80be1d298273df0299ef69baa18522d9a808" integrity sha512-fMMpjqW2RjwclnHUJsSyPCTguplflQYEWv7wsk7IoanEkWx39pensi8OsdIBawXrOixXEnI47dgxtVMOQUxOKA== @@ -6000,13 +5955,6 @@ resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.2.tgz#4e8bdeda027379dcf8b62a42e5f75f0351b11b35" integrity sha512-cM5kPFb6EFH5q52WzRxfRX9+8g5kq78McWOYs6e1seo+nK6NpfLupT5uOCIJp37jU8ayd4Su8ni3HRFTN2C2kg== -"@react-hookz/web@^14.0.0": - version "14.7.1" - resolved "https://registry.npmjs.org/@react-hookz/web/-/web-14.7.1.tgz#5e39e6fc21331cc4ae95f36e8135ad763e6c29fb" - integrity sha512-kU1CccZDXvQ9G4vcCCpX3mDQqYKkuLXGFOtPMgmbZ9KrvkEduMRH4JqSVXp1nI/bGI1GJ0KAWm4UEb1x5eDGAg== - dependencies: - "@react-hookz/deep-equal" "^1.0.2" - "@react-hookz/web@^15.0.0": version "15.0.1" resolved "https://registry.npmjs.org/@react-hookz/web/-/web-15.0.1.tgz#a6e5460dd16e54ccc0b899e1eed4ae29e871060f" @@ -22098,15 +22046,6 @@ raw-body@2.5.1, raw-body@^2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -rc-progress@3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.3.3.tgz#eb9bffbacab1534f2542f9f6861ce772254362b1" - integrity sha512-MDVNVHzGanYtRy2KKraEaWeZLri2ZHWIRyaE1a9MQ2MuJ09m+Wxj5cfcaoaR6z5iRpHpA59YeUxAlpML8N4PJw== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - rc-util "^5.16.1" - rc-progress@3.4.0: version "3.4.0" resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.4.0.tgz#80a33c25c9675f5836ba25a87cd8dc310aad72b1" From 26bccf92689682cf849ecafdaa680ddc02719510 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 18:34:14 +0000 Subject: [PATCH 109/377] fix(deps): update dependency core-js to v3.24.1 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38ace74f20..94c027c1a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11015,9 +11015,9 @@ core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.10: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.4.1, core-js@^3.6.5: - version "3.24.0" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.24.0.tgz#4928d4e99c593a234eb1a1f9abd3122b04d3ac57" - integrity sha512-IeOyT8A6iK37Ep4kZDD423mpi6JfPRoPUdQwEWYiGolvn4o6j2diaRzNfDfpTdu3a5qMbrGUzKUpYpRY8jXCkQ== + version "3.24.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" + integrity sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" From e8cf4701e6c5dad40c9d3b1c563e28e1def30d8e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 19:25:25 +0000 Subject: [PATCH 110/377] fix(deps): update dependency aws-sdk to v2.1185.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 94c027c1a4..23059ddcae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9062,9 +9062,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1184.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1184.0.tgz#6f800815382284825a3f03422410eaf3cefcac68" - integrity sha512-g4UQgc8+Ljk2e6xJYwBSQrDJ8BmQ/E3nHLw9ITEJKC1hgK8DLy77PUielA0ptscoKz5ySCSSGbMjR1B1HgThKQ== + version "2.1185.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1185.0.tgz#157c6a900a9449cb36b37493337cae418e01210d" + integrity sha512-viFlYC6RAKOqBRM4gIB4rE80KMFNVvEkQpNmpd3PqCOemGPETDxCVHS0oqZ26qM278sZVHt+oAjPy5HmZasskg== dependencies: buffer "4.9.2" events "1.1.1" From c51d970410311dc32250241db855901249b4ac3c Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Fri, 29 Jul 2022 15:38:32 -0400 Subject: [PATCH 111/377] clarify caData field The code in `@kubernetes/client-node` will decode this value, as seen here: https://github.com/kubernetes-client/javascript/blob/2b6813f99a85605f691973d6bc43f291ac072fc7/src/config.ts#L518-L520 I have seen a casual reader insert the multi-line raw contents of a PEM file in this field, so it seems worth mentioning the extra layer of encoding explicitly. Signed-off-by: Jamie Klassen --- docs/features/kubernetes/configuration.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/features/kubernetes/configuration.md b/docs/features/kubernetes/configuration.md index c3559585f7..dc541c5c50 100644 --- a/docs/features/kubernetes/configuration.md +++ b/docs/features/kubernetes/configuration.md @@ -236,10 +236,12 @@ kubernetes: ##### `clusters.\*.caData` (optional) -PEM-encoded certificate authority certificates. +Base64-encoded certificate authority bundle in PEM format. The Kubernetes client +will verify that TLS certificate presented by the API server is signed by this +CA. -This values could be obtained via inspecting the Kubernetes config file (usually -at `~/.kube/config`) under `clusters.cluster.certificate-authority-data`. For +This value could be obtained via inspecting the kubeconfig file (usually +at `~/.kube/config`) under `clusters[*].cluster.certificate-authority-data`. For GKE, execute the following command to obtain the value ``` From 0ec2aeea70245fe609bc986e93acaaa43e0e8f6a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 22:40:39 +0000 Subject: [PATCH 112/377] fix(deps): update dependency yeoman-environment to v3.10.0 Signed-off-by: Renovate Bot --- yarn.lock | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 23059ddcae..2806f3fc9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16305,6 +16305,11 @@ isarray@2.0.1: resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= +isbinaryfile@^4.0.10: + version "4.0.10" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + isbinaryfile@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" @@ -27051,9 +27056,9 @@ yeast@0.1.2: integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= yeoman-environment@^3.9.1: - version "3.9.1" - resolved "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.9.1.tgz#21912bdee4b1d302a5c25a7d31338fa092ea7116" - integrity sha512-IdRnbQt/DSOSnao0oD9c+or1X2UrL+fx9eC0O7Lq/MGZV68nhv9k77MqG+hEAySPSlyCpocVlhfQwV62hczk5Q== + version "3.10.0" + resolved "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.10.0.tgz#d8c56571b68d16b4af8abfb950f83acc503eed77" + integrity sha512-sYtSxBK9daq21QjoskJTHKLQ1xEsRPURkmFV/aM8HS8ZlQVzwx57Rz1zCs8EGPhK4vqsmTE8H92Gp1jg1fT3EA== dependencies: "@npmcli/arborist" "^4.0.4" are-we-there-yet "^2.0.0" @@ -27073,6 +27078,7 @@ yeoman-environment@^3.9.1: grouped-queue "^2.0.0" inquirer "^8.0.0" is-scoped "^2.1.0" + isbinaryfile "^4.0.10" lodash "^4.17.10" log-symbols "^4.0.0" mem-fs "^1.2.0 || ^2.0.0" From a03914237ead04dc22550fdbb74a02b140bc9550 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Jul 2022 01:53:13 +0000 Subject: [PATCH 113/377] fix(deps): update dependency eslint-plugin-jest to v26.7.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2806f3fc9d..a43c8ffeb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12906,9 +12906,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.14.1" eslint-plugin-jest@^26.1.2: - version "26.6.0" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.6.0.tgz#546804fa42da75d7d58d4d3b278d5186abd3f6c0" - integrity sha512-f8n46/97ZFdU4KqeQYqO8AEVGIhHWvkpgNBWHH3jrM28/y8llnbf3IjfIKv6p2pZIMinK1PCqbbROxs9Eud02Q== + version "26.7.0" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.7.0.tgz#41d405ac9143e1284a3401282db47ed459436778" + integrity sha512-/YNitdfG3o3cC6juZziAdkk6nfJt01jXVfj4AgaYVLs7bupHzRDL5K+eipdzhDXtQsiqaX1TzfwSuRlEgeln1A== dependencies: "@typescript-eslint/utils" "^5.10.0" From 4274051839bc9fc616cd0cb27118f097e6ff7766 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Jul 2022 18:06:24 +0000 Subject: [PATCH 114/377] chore(deps): update dependency @graphql-codegen/cli to v2.11.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a43c8ffeb2..85e483a12c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2790,9 +2790,9 @@ meros "^1.1.4" "@graphql-codegen/cli@^2.3.1": - version "2.11.2" - resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.2.tgz#f502d0e9e19305acffca5f07789dde8d4e0fa656" - integrity sha512-dt70+et0QFmhL3krrlYWcsp7T6pvChEQ1vEGoNn46Rn53velGDwP546DtSPpHJmajY/eJ11CueoI0J/3o0/BTA== + version "2.11.3" + resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.3.tgz#6cb0fd6da0773957b531cccf7459303a23ee1c05" + integrity sha512-C1d88Kx0a0PF1tOR00UIZjHq5aWNNcw5fM2k08rOY9O5b4sU7kEb+YbGKP6EExTtJnYb49fePLKVvrIv1ejDFg== dependencies: "@graphql-codegen/core" "2.6.0" "@graphql-codegen/plugin-helpers" "^2.6.1" From 0123765ceddb0a791130f9b445def79db005e014 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Jul 2022 22:11:36 +0000 Subject: [PATCH 115/377] chore(deps): update dependency @types/node to v16.11.47 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a43c8ffeb2..2072f255d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7343,9 +7343,9 @@ integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== "@types/node@^16.0.0", "@types/node@^16.11.26", "@types/node@^16.9.2": - version "16.11.46" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.46.tgz#26047602eefa47b36759d9ebb1b55ad08ce97a73" - integrity sha512-x+sfpb2dMrhCQPL4NAGs64Z9hh0t72aP0dg+PuZidmPr/0Gj5ELQTjD/t46dq3DF/8ZvSHOaIyDIbAsdPshyVQ== + version "16.11.47" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.47.tgz#efa9e3e0f72e7aa6a138055dace7437a83d9f91c" + integrity sha512-fpP+jk2zJ4VW66+wAMFoBJlx1bxmBKx4DUFf68UHgdGCOuyUTDlLWqsaNPJh7xhNDykyJ9eIzAygilP/4WoN8g== "@types/normalize-package-data@^2.4.0": version "2.4.1" From f6c2c4847d97578242de25a522d4373ffc6b3885 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 04:44:40 +0000 Subject: [PATCH 116/377] fix(deps): update dependency dockerode to v3.3.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a43c8ffeb2..2c2dfa4e93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12185,9 +12185,9 @@ docker-modem@^3.0.0: ssh2 "^1.4.0" dockerode@^3.3.1: - version "3.3.2" - resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.3.2.tgz#f3545700d2f7f86141b58843a755eeb21e38d5cd" - integrity sha512-oXN+1XVH2TeyE0Jj9Ci6Fim8ZIDxyqeJrkx9qhEOaRiA+nhLihKfd3M2L+Aqrj5C2ObPw8RVN2zPWvvk0x2dwg== + version "3.3.3" + resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.3.3.tgz#7504db10d23866c6f267e7b0b7b4a75fc2203e8d" + integrity sha512-lvKV6/NGf2/CYLt5V4c0fd6Fl9XZSCo1Z2HBT9ioKrKLMB2o+gA62Uza8RROpzGvYv57KJx2dKu+ZwSpB//OIA== dependencies: docker-modem "^3.0.0" tar-fs "~2.0.1" From 9e5e0c97a60680f86794b43cc67f878df1fa9c4b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 04:46:17 +0000 Subject: [PATCH 117/377] fix(deps): update dependency eslint to v8.21.0 Signed-off-by: Renovate Bot --- yarn.lock | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index a43c8ffeb2..722669fd90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3390,15 +3390,20 @@ object-assign "^4.1.1" 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== +"@humanwhocodes/config-array@^0.10.4": + version "0.10.4" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" +"@humanwhocodes/gitignore-to-minimatch@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -8384,6 +8389,11 @@ acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1: resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + add-stream@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" @@ -13023,12 +13033,13 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.6.0: - version "8.20.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz#048ac56aa18529967da8354a478be4ec0a2bc81b" - integrity sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA== + version "8.21.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz#1940a68d7e0573cef6f50037addee295ff9be9ef" + integrity sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA== dependencies: "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.9.2" + "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -13038,14 +13049,17 @@ eslint@^8.6.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.2" + espree "^9.3.3" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" + find-up "^5.0.0" functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" @@ -13077,6 +13091,15 @@ espree@^9.3.2: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" +espree@^9.3.3: + version "9.3.3" + resolved "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" + integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" From 1b2d1ff431ab8c917a6dc378cd748ce4e1a5a781 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 1 Aug 2022 10:42:43 +0200 Subject: [PATCH 118/377] Make instanceName an optional parameter in plugin `sonarqube-backend` APIs Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/api-report.md | 8 ++-- .../src/service/router.test.ts | 16 +++++++- .../sonarqube-backend/src/service/router.ts | 37 +++++++------------ .../src/service/sonarqubeInfoProvider.test.ts | 13 +++++++ .../src/service/sonarqubeInfoProvider.ts | 23 +++++++----- 5 files changed, 58 insertions(+), 39 deletions(-) diff --git a/plugins/sonarqube-backend/api-report.md b/plugins/sonarqube-backend/api-report.md index b4f1ad4589..8f0c672c6c 100644 --- a/plugins/sonarqube-backend/api-report.md +++ b/plugins/sonarqube-backend/api-report.md @@ -13,12 +13,12 @@ export function createRouter(options: RouterOptions): Promise; // @public export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { static fromConfig(config: Config): DefaultSonarqubeInfoProvider; - getBaseUrl({ instanceName }: { instanceName: string }): { + getBaseUrl({ instanceName }?: { instanceName?: string }): { baseUrl: string; }; getFindings( componentKey: string, - instanceName: string, + instanceName?: string, ): Promise; } @@ -45,12 +45,12 @@ export interface SonarqubeFindings { // @public export interface SonarqubeInfoProvider { - getBaseUrl({ instanceName }: { instanceName: string }): { + getBaseUrl({ instanceName }?: { instanceName?: string }): { baseUrl: string; }; getFindings( componentKey: string, - instanceName: string, + instanceName?: string, ): Promise; } diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts index 719db6787e..e082215abc 100644 --- a/plugins/sonarqube-backend/src/service/router.test.ts +++ b/plugins/sonarqube-backend/src/service/router.test.ts @@ -83,7 +83,7 @@ describe('createRouter', () => { expect(response.status).toEqual(400); }); - it('use an empty string as instance name when instance key not provided', async () => { + it('use the value as instance name when instance key not provided', async () => { const measures = { analysisDate: '2021-04-08', measures: [{ metric: 'vulnerabilities', value: '54' }], @@ -94,11 +94,12 @@ describe('createRouter', () => { .get('/findings') .query({ componentKey: DUMMY_COMPONENT_KEY, + instanceKey: undefined, }) .send(); expect(getFindingsMock).toBeCalledTimes(1); - expect(getFindingsMock).toBeCalledWith(DUMMY_COMPONENT_KEY, ''); + expect(getFindingsMock).toBeCalledWith(DUMMY_COMPONENT_KEY, undefined); expect(response.status).toEqual(200); expect(response.body).toEqual(measures); }); @@ -121,5 +122,16 @@ describe('createRouter', () => { expect(response.status).toEqual(200); expect(response.body).toEqual({ instanceUrl: DUMMY_INSTANCE_URL }); }); + + it('query default instance when instanceKey not provided', async () => { + getBaseUrlMock.mockReturnValue({ baseUrl: DUMMY_INSTANCE_URL }); + const response = await request(app).get('/instanceUrl').send(); + expect(getBaseUrlMock).toBeCalledTimes(1); + expect(getBaseUrlMock).toBeCalledWith({ + instanceName: undefined, + }); + expect(response.status).toEqual(200); + expect(response.body).toEqual({ instanceUrl: DUMMY_INSTANCE_URL }); + }); }); }); diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index d6f5da7691..674045121f 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -54,21 +54,16 @@ export async function createRouter( router.use(express.json()); router.get('/findings', async (request, response) => { const componentKey = request.query.componentKey as string; - let instanceKey = request.query.instanceKey as string; + const instanceKey = request.query.instanceKey as string; if (!componentKey) throw new InputError('ComponentKey must be provided as a single string.'); - if (!instanceKey) { - instanceKey = ''; - logger.info( - `Retrieving findings for component ${componentKey} in default sonarqube instance`, - ); - } else { - logger.info( - `Retrieving findings for component ${componentKey} in sonarqube instance name ${instanceKey}`, - ); - } + logger.info( + instanceKey + ? `Retrieving findings for component ${componentKey} in sonarqube instance name ${instanceKey}` + : `Retrieving findings for component ${componentKey} in default sonarqube instance`, + ); response.json( await sonarqubeInfoProvider.getFindings(componentKey, instanceKey), @@ -76,19 +71,15 @@ export async function createRouter( }); router.get('/instanceUrl', (request, response) => { - let requestedInstanceKey = request.query.instanceKey as string; - if (requestedInstanceKey) { - logger.info( - `Retrieving sonarqube instance URL for key ${requestedInstanceKey}`, - ); - } else { - requestedInstanceKey = ''; - logger.info( - `Retrieving default sonarqube instance URL as parameter is inexistant, empty or malformed`, - ); - } + const instanceKey = request.query.instanceKey as string; + + logger.info( + instanceKey + ? `Retrieving sonarqube instance URL for key ${instanceKey}` + : `Retrieving default sonarqube instance URL as instanceKey is not provided`, + ); const { baseUrl } = sonarqubeInfoProvider.getBaseUrl({ - instanceName: requestedInstanceKey, + instanceName: instanceKey, }); response.json({ instanceUrl: baseUrl, diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts index 774fdca238..f7298888fe 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts @@ -229,6 +229,19 @@ describe('DefaultSonarqubeInfoProvider', () => { } describe('getBaseUrl', () => { + it('Provide base url for default from simple config and non provided instanceName', async () => { + const provider = configureProvider({ + sonarqube: { + baseUrl: 'https://sonarqube.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + }); + + expect(provider.getBaseUrl()).toEqual({ + baseUrl: 'https://sonarqube.example.com', + }); + }); + it('Provide base url for default from simple config and empty string', async () => { const provider = configureProvider({ sonarqube: { diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts index 6f75171f65..f03593b012 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts @@ -23,18 +23,21 @@ import fetch from 'node-fetch'; */ export interface SonarqubeInfoProvider { /** - * Get the sonarqube URL in configuration from a provided name. + * Get the sonarqube URL in configuration from a provided instanceName. * - * If name is omitted, default sonarqube instance is queried in config + * If instanceName is omitted, default sonarqube instance is queried in config * * @param instanceName - Name of the sonarqube instance to get the info from * @returns the url of the instance */ - getBaseUrl({ instanceName }: { instanceName: string }): { baseUrl: string }; + getBaseUrl({ instanceName }?: { instanceName?: string }): { baseUrl: string }; /** * Query the sonarqube instance corresponding to the instanceName to get all * measures for the component of key componentKey. + * + * If instanceName is omitted, default sonarqube instance is queried in config + * * @param componentKey - component key of the project we want to get measure from. * @param instanceName - name of the instance (in config) where the project is hosted. * @returns All measures with the analysis date. Will return undefined if we @@ -42,7 +45,7 @@ export interface SonarqubeInfoProvider { */ getFindings( componentKey: string, - instanceName: string, + instanceName?: string, ): Promise; } @@ -295,8 +298,10 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { * {@inheritDoc SonarqubeInfoProvider.getBaseUrl} * @throws Error If configuration can't be retrieved. */ - getBaseUrl({ instanceName }: { instanceName: string }): { baseUrl: string } { - const instanceConfig = this.config.getInstanceConfig(instanceName ?? ''); + getBaseUrl({ instanceName }: { instanceName?: string } = {}): { + baseUrl: string; + } { + const instanceConfig = this.config.getInstanceConfig(instanceName); return { baseUrl: instanceConfig.baseUrl }; } @@ -306,11 +311,9 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { */ async getFindings( componentKey: string, - instanceName: string, + instanceName?: string, ): Promise { - const { baseUrl, apiKey } = this.config.getInstanceConfig( - instanceName ?? '', - ); + const { baseUrl, apiKey } = this.config.getInstanceConfig(instanceName); // get component info to retrieve analysis date const component = From b90d81c65ba747386cf8e3558b05547d0d314bd0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 09:23:45 +0000 Subject: [PATCH 119/377] fix(deps): update dependency @roadiehq/backstage-plugin-github-pull-requests to v2.2.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d907bab571..d99d336004 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6030,9 +6030,9 @@ zustand "3.6.9" "@roadiehq/backstage-plugin-github-pull-requests@^2.0.0": - version "2.2.2" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.2.2.tgz#b58568bdfbf08dcf0d4d45e2fd1d080875627439" - integrity sha512-klMqFfiSQMVg2PxrEU7v7UulkwuTiGBjQQnfHKuwpsziGiJoN4XtEZW/VdIEc4wHbBN8BA4CRJ1127V9up1dnQ== + version "2.2.3" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.2.3.tgz#8a5f5c18f0d0196c3fb5b350598293f2e441c9cd" + integrity sha512-ClZc4gLSsE+e+C6tpXJFJ2bXSo28UdlEACKzVK/w1H63XnyebsJHNu8uJJbdZL7GImHM3P9HjkXhSjj01g6HUg== dependencies: "@backstage/catalog-model" "^1.0.0" "@backstage/core-components" "^0.10.0" From 92103db5373b8219df7d064a6352906529b7c9ee Mon Sep 17 00:00:00 2001 From: Joon Park Date: Mon, 1 Aug 2022 11:07:05 +0100 Subject: [PATCH 120/377] Aggregate catalog permissions (#12832) As a follow up to https://github.com/backstage/backstage/pull/11695, the catalog permissions will now be aggregated and made available on the `/.well-known/backstage/permissions/metadata/` endpoint. Signed-off-by: Joon Park --- .changeset/lovely-walls-brush.md | 5 +++++ .../catalog-backend/src/service/CatalogBuilder.ts | 6 +++++- plugins/catalog-common/api-report.md | 6 ++++++ plugins/catalog-common/src/index.ts | 1 + plugins/catalog-common/src/permissions.ts | 14 ++++++++++++++ 5 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 .changeset/lovely-walls-brush.md diff --git a/.changeset/lovely-walls-brush.md b/.changeset/lovely-walls-brush.md new file mode 100644 index 0000000000..8834673d3b --- /dev/null +++ b/.changeset/lovely-walls-brush.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-common': patch +--- + +Export aggregated list of all catalog permissions diff --git a/plugins/catalog-backend/src/service/CatalogBuilder.ts b/plugins/catalog-backend/src/service/CatalogBuilder.ts index a9ba5bbb23..e9e35301c3 100644 --- a/plugins/catalog-backend/src/service/CatalogBuilder.ts +++ b/plugins/catalog-backend/src/service/CatalogBuilder.ts @@ -91,7 +91,10 @@ import { } from '@backstage/plugin-permission-node'; import { AuthorizedEntitiesCatalog } from './AuthorizedEntitiesCatalog'; import { basicEntityFilter } from './request/basicEntityFilter'; -import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common'; +import { + catalogPermissions, + RESOURCE_TYPE_CATALOG_ENTITY, +} from '@backstage/plugin-catalog-common'; import { AuthorizedLocationService } from './AuthorizedLocationService'; /** @public */ @@ -435,6 +438,7 @@ export class CatalogBuilder { entitiesByRef[stringifyEntityRef(parseEntityRef(resourceRef))], ); }, + permissions: catalogPermissions, rules: this.permissionRules, }); const stitcher = new Stitcher(dbClient, logger); diff --git a/plugins/catalog-common/api-report.md b/plugins/catalog-common/api-report.md index ab540d446b..b7eaf99d8b 100644 --- a/plugins/catalog-common/api-report.md +++ b/plugins/catalog-common/api-report.md @@ -49,6 +49,12 @@ export const catalogLocationDeletePermission: BasicPermission; // @alpha export const catalogLocationReadPermission: BasicPermission; +// @alpha +export const catalogPermissions: ( + | BasicPermission + | ResourcePermission<'catalog-entity'> +)[]; + // @alpha export const RESOURCE_TYPE_CATALOG_ENTITY = 'catalog-entity'; ``` diff --git a/plugins/catalog-common/src/index.ts b/plugins/catalog-common/src/index.ts index dfa90c448b..614948e56c 100644 --- a/plugins/catalog-common/src/index.ts +++ b/plugins/catalog-common/src/index.ts @@ -30,6 +30,7 @@ export { catalogLocationReadPermission, catalogLocationCreatePermission, catalogLocationDeletePermission, + catalogPermissions, } from './permissions'; export type { CatalogEntityPermission } from './permissions'; diff --git a/plugins/catalog-common/src/permissions.ts b/plugins/catalog-common/src/permissions.ts index aa95e8c00f..615f02a7fb 100644 --- a/plugins/catalog-common/src/permissions.ts +++ b/plugins/catalog-common/src/permissions.ts @@ -129,3 +129,17 @@ export const catalogLocationDeletePermission = createPermission({ action: 'delete', }, }); + +/** + * List of all catalog permissions. + * @alpha + */ +export const catalogPermissions = [ + catalogEntityReadPermission, + catalogEntityCreatePermission, + catalogEntityDeletePermission, + catalogEntityRefreshPermission, + catalogLocationReadPermission, + catalogLocationCreatePermission, + catalogLocationDeletePermission, +]; From 23abde02b63e9dda7197c6f1c70f9ac4e1e09939 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 1 Aug 2022 13:12:21 +0200 Subject: [PATCH 121/377] chore(techdocs-node): bump techdocs container image Signed-off-by: Camila Belo --- plugins/techdocs-node/src/stages/generate/techdocs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/techdocs-node/src/stages/generate/techdocs.ts b/plugins/techdocs-node/src/stages/generate/techdocs.ts index e3debab526..d80449d58c 100644 --- a/plugins/techdocs-node/src/stages/generate/techdocs.ts +++ b/plugins/techdocs-node/src/stages/generate/techdocs.ts @@ -53,7 +53,7 @@ export class TechdocsGenerator implements GeneratorBase { * The default docker image (and version) used to generate content. Public * and static so that techdocs-node consumers can use the same version. */ - public static readonly defaultDockerImage = 'spotify/techdocs:v1.0.3'; + public static readonly defaultDockerImage = 'spotify/techdocs:v1.1.0'; private readonly logger: Logger; private readonly containerRunner: ContainerRunner; private readonly options: GeneratorConfig; From e7d8ef03d37419ec7036fc5588fe6d2267519d59 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 1 Aug 2022 13:21:25 +0200 Subject: [PATCH 122/377] chore(techdocs-node): update api reports Signed-off-by: Camila Belo --- plugins/techdocs-node/api-report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/techdocs-node/api-report.md b/plugins/techdocs-node/api-report.md index cc9bc8eb51..0ac8c3eaae 100644 --- a/plugins/techdocs-node/api-report.md +++ b/plugins/techdocs-node/api-report.md @@ -217,7 +217,7 @@ export class TechdocsGenerator implements GeneratorBase { config: Config; scmIntegrations: ScmIntegrationRegistry; }); - static readonly defaultDockerImage = 'spotify/techdocs:v1.0.3'; + static readonly defaultDockerImage = 'spotify/techdocs:v1.1.0'; static fromConfig( config: Config, options: GeneratorOptions, From dcbb438e5f167ff5a503bc428405554460a12fda Mon Sep 17 00:00:00 2001 From: Mathias Geat Date: Mon, 1 Aug 2022 11:19:37 +0200 Subject: [PATCH 123/377] feat(techdocs-cli): Allow passing docker extra args to @techdocs/cli serve and serve:mkdocs Signed-off-by: Mathias Geat --- docs/features/techdocs/cli.md | 2 ++ packages/techdocs-cli/src/commands/index.ts | 8 +++++ .../techdocs-cli/src/commands/serve/mkdocs.ts | 1 + .../techdocs-cli/src/commands/serve/serve.ts | 1 + .../techdocs-cli/src/lib/mkdocsServer.test.ts | 33 +++++++++++++++++++ packages/techdocs-cli/src/lib/mkdocsServer.ts | 2 ++ 6 files changed, 47 insertions(+) diff --git a/docs/features/techdocs/cli.md b/docs/features/techdocs/cli.md index 52c389975e..dc89f1718b 100644 --- a/docs/features/techdocs/cli.md +++ b/docs/features/techdocs/cli.md @@ -83,6 +83,8 @@ Serve a documentation project locally in a Backstage app-like environment Options: -i, --docker-image The mkdocs docker container to use (default: "spotify/techdocs") --docker-entrypoint Override the image entrypoint + --docker-option Extra options to pass to the docker run command, e.g. "--add-host=internal.host:192.168.11.12" + (can be added multiple times). --no-docker Do not use Docker, use MkDocs executable in current user environment. --mkdocs-port Port for MkDocs server to use (default: "8000") -v --verbose Enable verbose output. (default: false) diff --git a/packages/techdocs-cli/src/commands/index.ts b/packages/techdocs-cli/src/commands/index.ts index 68e8f88c0b..03772d09d7 100644 --- a/packages/techdocs-cli/src/commands/index.ts +++ b/packages/techdocs-cli/src/commands/index.ts @@ -215,6 +215,10 @@ export function registerCommands(program: Command) { '--docker-entrypoint ', 'Override the image entrypoint', ) + .option( + '--docker-option ', + 'Extra options to pass to the docker run command, e.g. "--add-host=internal.host:192.168.11.12" (can be added multiple times).', + ) .option( '--no-docker', 'Do not use Docker, run `mkdocs serve` in current user environment.', @@ -237,6 +241,10 @@ export function registerCommands(program: Command) { '--docker-entrypoint ', 'Override the image entrypoint', ) + .option( + '--docker-option ', + 'Extra options to pass to the docker run command, e.g. "--add-host=internal.host:192.168.11.12" (can be added multiple times).', + ) .option( '--no-docker', 'Do not use Docker, use MkDocs executable in current user environment.', diff --git a/packages/techdocs-cli/src/commands/serve/mkdocs.ts b/packages/techdocs-cli/src/commands/serve/mkdocs.ts index 511df00a17..9cc0aef3be 100644 --- a/packages/techdocs-cli/src/commands/serve/mkdocs.ts +++ b/packages/techdocs-cli/src/commands/serve/mkdocs.ts @@ -62,6 +62,7 @@ export default async function serveMkdocs(opts: OptionValues) { port: opts.port, dockerImage: opts.dockerImage, dockerEntrypoint: opts.dockerEntrypoint, + dockerOptions: opts.dockerOption, useDocker: opts.docker, stdoutLogFunc: logFunc, stderrLogFunc: logFunc, diff --git a/packages/techdocs-cli/src/commands/serve/serve.ts b/packages/techdocs-cli/src/commands/serve/serve.ts index 454e9ffa55..68d0bbb277 100644 --- a/packages/techdocs-cli/src/commands/serve/serve.ts +++ b/packages/techdocs-cli/src/commands/serve/serve.ts @@ -93,6 +93,7 @@ export default async function serve(opts: OptionValues) { port: opts.mkdocsPort, dockerImage: opts.dockerImage, dockerEntrypoint: opts.dockerEntrypoint, + dockerOptions: opts.dockerOption, useDocker: opts.docker, stdoutLogFunc: mkdocsLogFunc, stderrLogFunc: mkdocsLogFunc, diff --git a/packages/techdocs-cli/src/lib/mkdocsServer.test.ts b/packages/techdocs-cli/src/lib/mkdocsServer.test.ts index 0167dec12b..8484c4e242 100644 --- a/packages/techdocs-cli/src/lib/mkdocsServer.test.ts +++ b/packages/techdocs-cli/src/lib/mkdocsServer.test.ts @@ -64,6 +64,39 @@ describe('runMkdocsServer', () => { expect.objectContaining({}), ); }); + + it('should accept custom docker options', async () => { + await runMkdocsServer({ + dockerOptions: [ + '--add-host=internal.host:192.168.11.12', + '--name', + 'my-techdocs-container', + ], + }); + + expect(run).toHaveBeenCalledWith( + 'docker', + expect.arrayContaining([ + 'run', + '--rm', + '-w', + '/content', + '-v', + `${process.cwd()}:/content`, + '-p', + '8000:8000', + '-it', + '--add-host=internal.host:192.168.11.12', + '--name', + 'my-techdocs-container', + 'spotify/techdocs', + 'serve', + '--dev-addr', + '0.0.0.0:8000', + ]), + expect.objectContaining({}), + ); + }); }); describe('mkdocs', () => { diff --git a/packages/techdocs-cli/src/lib/mkdocsServer.ts b/packages/techdocs-cli/src/lib/mkdocsServer.ts index c0b0cec498..5ca7e47573 100644 --- a/packages/techdocs-cli/src/lib/mkdocsServer.ts +++ b/packages/techdocs-cli/src/lib/mkdocsServer.ts @@ -22,6 +22,7 @@ export const runMkdocsServer = async (options: { useDocker?: boolean; dockerImage?: string; dockerEntrypoint?: string; + dockerOptions?: string[]; stdoutLogFunc?: LogFunc; stderrLogFunc?: LogFunc; }): Promise => { @@ -45,6 +46,7 @@ export const runMkdocsServer = async (options: { ...(options.dockerEntrypoint ? ['--entrypoint', options.dockerEntrypoint] : []), + ...(options.dockerOptions || []), dockerImage, 'serve', '--dev-addr', From 855952db536488e7eab99ae720ac8aca6e9d13e4 Mon Sep 17 00:00:00 2001 From: Mathias Geat Date: Mon, 1 Aug 2022 11:34:52 +0200 Subject: [PATCH 124/377] feat(techdocs-cli): Add changeset for serve --docker-option Signed-off-by: Mathias Geat --- .changeset/weak-shrimps-deny.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/weak-shrimps-deny.md diff --git a/.changeset/weak-shrimps-deny.md b/.changeset/weak-shrimps-deny.md new file mode 100644 index 0000000000..38b5ca1a8a --- /dev/null +++ b/.changeset/weak-shrimps-deny.md @@ -0,0 +1,5 @@ +--- +'@techdocs/cli': minor +--- + +Added CLI option `--docker-option` to allow passing additional options to the `docker run` command executed my `serve` and `serve:mkdocs`. From 163bfaebd8eb743f9eb1ceb0ef7a3cacaff6fc9d Mon Sep 17 00:00:00 2001 From: Mathias Geat Date: Mon, 1 Aug 2022 13:20:16 +0200 Subject: [PATCH 125/377] feat(techdocs-cli): Add new --docker-option to cli-report for techdocs-cli Signed-off-by: Mathias Geat --- packages/techdocs-cli/cli-report.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/techdocs-cli/cli-report.md b/packages/techdocs-cli/cli-report.md index 64b5e9c090..cf5b2caf0f 100644 --- a/packages/techdocs-cli/cli-report.md +++ b/packages/techdocs-cli/cli-report.md @@ -96,6 +96,7 @@ Usage: techdocs-cli serve [options] Options: -i, --docker-image --docker-entrypoint + --docker-option --no-docker --mkdocs-port -v --verbose @@ -110,6 +111,7 @@ Usage: techdocs-cli serve:mkdocs [options] Options: -i, --docker-image --docker-entrypoint + --docker-option --no-docker -p, --port -v --verbose From f83334461139a3aa4d3fcb40656c1d5f4d3abe34 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 1 Aug 2022 13:31:48 +0200 Subject: [PATCH 126/377] chore: add changeset file Signed-off-by: Camila Belo --- .changeset/techdocs-eagles-stare.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/techdocs-eagles-stare.md diff --git a/.changeset/techdocs-eagles-stare.md b/.changeset/techdocs-eagles-stare.md new file mode 100644 index 0000000000..cf8bda4024 --- /dev/null +++ b/.changeset/techdocs-eagles-stare.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs-node': patch +--- + +Bump default `TechDocs` image to `v1.1.0`, see the release [here](https://github.com/backstage/techdocs-container/releases/tag/v1.1.0). From 6b7214547f86f7d15b69ea72fa794d2b7c1b5869 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 1 Aug 2022 16:42:05 +0200 Subject: [PATCH 127/377] Make plugin `sonarqube-backend` APIs use object as parameters To be easily modified in the future Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .../src/service/sonarqubeInfoProvider.test.ts | 42 ++++++++++++++----- .../src/service/sonarqubeInfoProvider.ts | 34 ++++++++++----- 2 files changed, 55 insertions(+), 21 deletions(-) diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts index f7298888fe..e617324555 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts @@ -173,7 +173,7 @@ describe('SonarqubeConfig', () => { }, ]); - expect(config.getInstanceConfig('default')).toEqual({ + expect(config.getInstanceConfig({ sonarqubeName: 'default' })).toEqual({ name: 'default', baseUrl: 'https://sonarqube.example.com', apiKey: '123456789abcdef0123456789abcedf012', @@ -190,7 +190,7 @@ describe('SonarqubeConfig', () => { }, ]); - expect(config.getInstanceConfig('other')).toEqual({ + expect(config.getInstanceConfig({ sonarqubeName: 'other' })).toEqual({ name: 'other', baseUrl: 'https://sonarqube-other.example.com', apiKey: '123456789abcdef0123456789abcedf012', @@ -206,7 +206,9 @@ describe('SonarqubeConfig', () => { }, ]); - expect(() => config.getInstanceConfig('default')).toThrowError(Error); + expect(() => + config.getInstanceConfig({ sonarqubeName: 'default' }), + ).toThrowError(Error); }); it('Throw an error if named instance could not be found', async () => { @@ -214,7 +216,9 @@ describe('SonarqubeConfig', () => { DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG, ]); - expect(() => config.getInstanceConfig('other')).toThrowError(Error); + expect(() => + config.getInstanceConfig({ sonarqubeName: 'other' }), + ).toThrowError(Error); }); }); }); @@ -385,7 +389,10 @@ describe('DefaultSonarqubeInfoProvider', () => { setupHandlers(); const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toEqual({ analysisDate: DUMMY_ANALYSIS_DATE, measures: [ @@ -414,7 +421,10 @@ describe('DefaultSonarqubeInfoProvider', () => { }, }); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toBeUndefined(); }); it('Provide undefined as finding if component API answer incorrectly', async () => { @@ -434,7 +444,10 @@ describe('DefaultSonarqubeInfoProvider', () => { const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toBeUndefined(); }); it('Provide findings when metrics API uses pages', async () => { @@ -462,7 +475,10 @@ describe('DefaultSonarqubeInfoProvider', () => { const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toEqual({ analysisDate: DUMMY_ANALYSIS_DATE, measures: [ @@ -489,7 +505,10 @@ describe('DefaultSonarqubeInfoProvider', () => { const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toBeUndefined(); }); @@ -509,7 +528,10 @@ describe('DefaultSonarqubeInfoProvider', () => { const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toEqual({ analysisDate: DUMMY_ANALYSIS_DATE, measures: [], diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts index f03593b012..7027738d2c 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts @@ -43,10 +43,13 @@ export interface SonarqubeInfoProvider { * @returns All measures with the analysis date. Will return undefined if we * can't provide the full response */ - getFindings( - componentKey: string, - instanceName?: string, - ): Promise; + getFindings({ + componentKey, + instanceName, + }: { + componentKey: string; + instanceName?: string; + }): Promise; } /** @@ -182,7 +185,9 @@ export class SonarqubeConfig { * @returns The requested Sonarqube instance. * @throws Error when no default config could be found or the requested name couldn't be found in config. */ - getInstanceConfig(sonarqubeName?: string): SonarqubeInstanceConfig { + getInstanceConfig({ + sonarqubeName, + }: { sonarqubeName?: string } = {}): SonarqubeInstanceConfig { const DEFAULT_SONARQUBE_NAME = 'default'; if (!sonarqubeName || sonarqubeName === DEFAULT_SONARQUBE_NAME) { @@ -301,7 +306,9 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { getBaseUrl({ instanceName }: { instanceName?: string } = {}): { baseUrl: string; } { - const instanceConfig = this.config.getInstanceConfig(instanceName); + const instanceConfig = this.config.getInstanceConfig({ + sonarqubeName: instanceName, + }); return { baseUrl: instanceConfig.baseUrl }; } @@ -309,11 +316,16 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { * {@inheritDoc SonarqubeInfoProvider.getFindings} * @throws Error If configuration can't be retrieved. */ - async getFindings( - componentKey: string, - instanceName?: string, - ): Promise { - const { baseUrl, apiKey } = this.config.getInstanceConfig(instanceName); + async getFindings({ + componentKey, + instanceName, + }: { + componentKey: string; + instanceName?: string; + }): Promise { + const { baseUrl, apiKey } = this.config.getInstanceConfig({ + sonarqubeName: instanceName, + }); // get component info to retrieve analysis date const component = From 063ca9713772d28704ebafd8d5c9b832f720d269 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 1 Aug 2022 16:54:24 +0200 Subject: [PATCH 128/377] Change behavior of method `useProjectInfo` in plugin `sonarqube` Will now return undefined instead of empty string. To be consistent with how the rest of the API works. Also provide unit test for this method and the other one in the same file `isSonarQubeAvailable` Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .../SonarQubeCard/SonarQubeCard.tsx | 6 +- .../src/components/useProjectKey.test.ts | 100 ++++++++++++++++++ .../sonarqube/src/components/useProjectKey.ts | 10 +- 3 files changed, 110 insertions(+), 6 deletions(-) create mode 100644 plugins/sonarqube/src/components/useProjectKey.test.ts diff --git a/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx b/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx index d8aaec04f2..af91bc5469 100644 --- a/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx +++ b/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx @@ -98,7 +98,11 @@ export const SonarQubeCard = ({ const { projectKey: projectTitle, projectInstance } = useProjectInfo(entity); const { value, loading } = useAsync( - async () => sonarQubeApi.getFindingSummary(projectTitle, projectInstance), + async () => + sonarQubeApi.getFindingSummary({ + componentKey: projectTitle, + projectInstance: projectInstance, + }), [sonarQubeApi, projectTitle], ); diff --git a/plugins/sonarqube/src/components/useProjectKey.test.ts b/plugins/sonarqube/src/components/useProjectKey.test.ts new file mode 100644 index 0000000000..be83c236df --- /dev/null +++ b/plugins/sonarqube/src/components/useProjectKey.test.ts @@ -0,0 +1,100 @@ +/* + * 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 { + isSonarQubeAvailable, + SONARQUBE_PROJECT_INSTANCE_SEPARATOR, + SONARQUBE_PROJECT_KEY_ANNOTATION, + useProjectInfo, +} from './useProjectKey'; +import { Entity } from '../../../../packages/catalog-model'; + +const createDummyEntity = (sonarqubeAnnotationValue: string): Entity => { + return { + apiVersion: '', + kind: '', + metadata: { + name: 'dummy', + annotations: { + [SONARQUBE_PROJECT_KEY_ANNOTATION]: sonarqubeAnnotationValue, + }, + }, + }; +}; + +describe('isSonarQubeAvailable', () => { + it('returns true if sonarqube annotation defined', () => { + const entity = createDummyEntity('dummy'); + expect(isSonarQubeAvailable(entity)).toBe(true); + }); + it('returns false if sonarqube annotation empty', () => { + const entity = createDummyEntity(''); + expect(isSonarQubeAvailable(entity)).toBe(false); + }); + it('returns false if sonarqube annotation not defined', () => { + const entity = { + apiVersion: '', + kind: '', + metadata: { + name: 'dummy', + annotations: {}, + }, + }; + expect(isSonarQubeAvailable(entity)).toBe(false); + }); +}); + +describe('useProjectInfo', () => { + const DUMMY_INSTANCE = 'dummyInstance'; + const DUMMY_KEY = 'dummyKey'; + it('parse annotation with key and instance', () => { + const entity = createDummyEntity( + DUMMY_INSTANCE + SONARQUBE_PROJECT_INSTANCE_SEPARATOR + DUMMY_KEY, + ); + expect(useProjectInfo(entity)).toEqual({ + projectInstance: DUMMY_INSTANCE, + projectKey: DUMMY_KEY, + }); + }); + // compatibility with previous mono-instance sonarqube config + it('parse annotation with only key', () => { + const entity = createDummyEntity(DUMMY_KEY); + expect(useProjectInfo(entity)).toEqual({ + projectInstance: undefined, + projectKey: DUMMY_KEY, + }); + }); + it('handle empty annotation', () => { + const entity = createDummyEntity(''); + expect(useProjectInfo(entity)).toEqual({ + projectInstance: undefined, + projectKey: undefined, + }); + }); + it('handle non-existent annotation', () => { + const entity = { + apiVersion: '', + kind: '', + metadata: { + name: 'dummy', + annotations: {}, + }, + }; + expect(useProjectInfo(entity)).toEqual({ + projectInstance: undefined, + projectKey: undefined, + }); + }); +}); diff --git a/plugins/sonarqube/src/components/useProjectKey.ts b/plugins/sonarqube/src/components/useProjectKey.ts index fbe12b5b5d..7a5a428f49 100644 --- a/plugins/sonarqube/src/components/useProjectKey.ts +++ b/plugins/sonarqube/src/components/useProjectKey.ts @@ -25,7 +25,7 @@ export const isSonarQubeAvailable = (entity: Entity) => /** * Try to parse sonarqube information from an entity. * - * If part or all info are not found, they will default to an empty string + * If part or all info are not found, they will default to undefined * * @param entity entity to find the sonarqube information from. * @return a ProjectInfo properly populated. @@ -33,11 +33,11 @@ export const isSonarQubeAvailable = (entity: Entity) => export const useProjectInfo = ( entity: Entity, ): { - projectInstance: string; - projectKey: string; + projectInstance: string | undefined; + projectKey: string | undefined; } => { - let projectInstance = ''; - let projectKey = ''; + let projectInstance = undefined; + let projectKey = undefined; const annotation = entity?.metadata.annotations?.[SONARQUBE_PROJECT_KEY_ANNOTATION]; if (annotation) { From e598739487d641e673563c725e7b68eb8cc311f8 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 1 Aug 2022 17:06:57 +0200 Subject: [PATCH 129/377] Modify plugin `sonarqube`'s APIs to take object as parameter to make the API more easy to extend. Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube/src/api/SonarQubeApi.ts | 11 +++++++---- .../sonarqube/src/api/SonarQubeClient.test.ts | 17 +++++++++++++---- plugins/sonarqube/src/api/SonarQubeClient.ts | 11 +++++++---- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/plugins/sonarqube/src/api/SonarQubeApi.ts b/plugins/sonarqube/src/api/SonarQubeApi.ts index 2232a00d9f..271f1d8e8e 100644 --- a/plugins/sonarqube/src/api/SonarQubeApi.ts +++ b/plugins/sonarqube/src/api/SonarQubeApi.ts @@ -38,8 +38,11 @@ export const sonarQubeApiRef = createApiRef({ }); export type SonarQubeApi = { - getFindingSummary( - projectInstance?: string, - componentKey?: string, - ): Promise; + getFindingSummary({ + componentKey, + projectInstance, + }: { + componentKey?: string; + projectInstance?: string; + }): Promise; }; diff --git a/plugins/sonarqube/src/api/SonarQubeClient.test.ts b/plugins/sonarqube/src/api/SonarQubeClient.test.ts index 87137ea93f..dc5d7f077e 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.test.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.test.ts @@ -124,7 +124,9 @@ describe('SonarQubeClient', () => { identityApi: identityApiAuthenticated, }); - const summary = await client.getFindingSummary('our:service'); + const summary = await client.getFindingSummary({ + componentKey: 'our:service', + }); expect(summary).toEqual( expect.objectContaining({ lastAnalysis: '2020-01-01T00:00:00Z', @@ -199,7 +201,10 @@ describe('SonarQubeClient', () => { identityApi: identityApiAuthenticated, }); - const summary = await client.getFindingSummary('our:service', 'custom'); + const summary = await client.getFindingSummary({ + componentKey: 'our:service', + projectInstance: 'custom', + }); expect(summary).toEqual( expect.objectContaining({ @@ -241,7 +246,9 @@ describe('SonarQubeClient', () => { discoveryApi, identityApi: identityApiAuthenticated, }); - const summary = await client.getFindingSummary('our:service'); + const summary = await client.getFindingSummary({ + componentKey: 'our:service', + }); expect(summary?.lastAnalysis).toBe('2020-01-01T00:00:00Z'); }); @@ -267,7 +274,9 @@ describe('SonarQubeClient', () => { discoveryApi, identityApi: identityApiGuest, }); - const summary = await client.getFindingSummary('our:service'); + const summary = await client.getFindingSummary({ + componentKey: 'our:service', + }); expect(summary?.lastAnalysis).toBe('2020-01-01T00:00:00Z'); }); diff --git a/plugins/sonarqube/src/api/SonarQubeClient.ts b/plugins/sonarqube/src/api/SonarQubeClient.ts index 59182d917f..9ec40e8420 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.ts @@ -56,10 +56,13 @@ export class SonarQubeClient implements SonarQubeApi { return undefined; } - async getFindingSummary( - componentKey?: string, - projectInstance?: string, - ): Promise { + async getFindingSummary({ + componentKey, + projectInstance, + }: { + componentKey?: string; + projectInstance?: string; + } = {}): Promise { if (!componentKey) { return undefined; } From 65f3172896fc9effb20d6c11e215e73169ab7a7d Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 1 Aug 2022 17:27:52 +0200 Subject: [PATCH 130/377] Fix forgotten use of recent API change in `sonarqube-backend` plugin Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/src/service/router.test.ts | 7 ++++++- plugins/sonarqube-backend/src/service/router.ts | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts index e082215abc..6b42e745be 100644 --- a/plugins/sonarqube-backend/src/service/router.test.ts +++ b/plugins/sonarqube-backend/src/service/router.test.ts @@ -29,7 +29,12 @@ describe('createRouter', () => { > = jest.fn(); const getFindingsMock: jest.Mock< Promise, - [string, string] + [ + { + componentKey: string; + instanceName: string; + }, + ] > = jest.fn(); beforeAll(async () => { diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index 674045121f..45cdcb64c3 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -66,7 +66,10 @@ export async function createRouter( ); response.json( - await sonarqubeInfoProvider.getFindings(componentKey, instanceKey), + await sonarqubeInfoProvider.getFindings({ + componentKey, + instanceName: instanceKey, + }), ); }); From 4c9193c384e407d50008be8ce30bf65cd629173a Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 1 Aug 2022 17:37:24 +0200 Subject: [PATCH 131/377] Fix more forgotten use of recent API change in `sonarqube-backend` plugin Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- .../sonarqube-backend/src/service/router.test.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts index 6b42e745be..426066d897 100644 --- a/plugins/sonarqube-backend/src/service/router.test.ts +++ b/plugins/sonarqube-backend/src/service/router.test.ts @@ -70,10 +70,10 @@ describe('createRouter', () => { }) .send(); expect(getFindingsMock).toBeCalledTimes(1); - expect(getFindingsMock).toBeCalledWith( - DUMMY_COMPONENT_KEY, - DUMMY_INSTANCE_KEY, - ); + expect(getFindingsMock).toBeCalledWith({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: DUMMY_INSTANCE_KEY, + }); expect(response.status).toEqual(200); expect(response.body).toEqual(measures); }); @@ -104,7 +104,10 @@ describe('createRouter', () => { .send(); expect(getFindingsMock).toBeCalledTimes(1); - expect(getFindingsMock).toBeCalledWith(DUMMY_COMPONENT_KEY, undefined); + expect(getFindingsMock).toBeCalledWith({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: undefined, + }); expect(response.status).toEqual(200); expect(response.body).toEqual(measures); }); From 1abe0a2333c4551926a0839222ef3dd086b94418 Mon Sep 17 00:00:00 2001 From: Crevil Date: Mon, 1 Aug 2022 17:37:33 +0200 Subject: [PATCH 132/377] Support already expanded navigation Signed-off-by: Crevil --- .../transformers/scrollIntoNavigation.test.ts | 82 +- .../transformers/scrollIntoNavigation.ts | 10 +- .../fixtures/mkdocs-expanded-index.ts | 1577 +++++++++++++++++ plugins/techdocs/src/test-utils/index.ts | 2 + 4 files changed, 1629 insertions(+), 42 deletions(-) create mode 100644 plugins/techdocs/src/test-utils/fixtures/mkdocs-expanded-index.ts diff --git a/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.test.ts b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.test.ts index ca8cf04b5e..965f2d4771 100644 --- a/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.test.ts +++ b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.test.ts @@ -15,66 +15,70 @@ */ import { scrollIntoNavigation } from '.'; +import { createTestShadowDom, FIXTURES } from '../../test-utils'; jest.useFakeTimers(); describe('scrollIntoNavigation', () => { - const transformer = scrollIntoNavigation(); - const dom = { querySelectorAll: jest.fn().mockReturnValue([]) }; - afterEach(() => { jest.clearAllMocks(); }); it('scroll to active navigation item', async () => { - const scrollNavIntoView1 = jest.fn(); - const scrollNavIntoView2 = jest.fn(); + await createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + preTransformers: [], + postTransformers: [scrollIntoNavigation()], + }); - dom.querySelectorAll.mockReturnValue([ - { - scrollIntoView: scrollNavIntoView1, - querySelector: jest.fn(), - click: jest.fn(), - }, - { - scrollIntoView: scrollNavIntoView2, - querySelector: jest.fn(), - click: jest.fn(), - }, - ]); + // jsdom does not implement scrollIntoView so we attach a function to the + // prototype to be able to test the expected behaviour. + const scrollNavIntoView = jest.fn(); + window.HTMLElement.prototype.scrollIntoView = scrollNavIntoView; - transformer(dom as unknown as Element); jest.advanceTimersByTime(200); - expect(dom.querySelectorAll).toHaveBeenCalledWith( - expect.stringMatching('li.md-nav__item--active'), - ); - expect(scrollNavIntoView1).not.toHaveBeenCalled(); - expect(scrollNavIntoView2).toHaveBeenCalledWith(); + expect(scrollNavIntoView).toHaveBeenCalledWith(); }); it('expand active navigation items', async () => { - const navItemClick1 = jest.fn(); - const navItemClick2 = jest.fn(); - - dom.querySelectorAll.mockReturnValue([ + const shadowDom = await createTestShadowDom( + FIXTURES.FIXTURE_STANDARD_PAGE, { - scrollIntoView: jest.fn(), - querySelector: jest.fn().mockReturnValue({ click: navItemClick1 }), + preTransformers: [], + postTransformers: [scrollIntoNavigation()], }, - { - scrollIntoView: jest.fn(), - querySelector: jest.fn().mockReturnValue({ click: navItemClick2 }), - }, - ]); + ); + + // jsdom does not implement scrollIntoView so we attach an empty function to + // support the behaviour. + window.HTMLElement.prototype.scrollIntoView = () => {}; + + const click = jest.fn(); + shadowDom.addEventListener('click', click); - transformer(dom as unknown as Element); jest.advanceTimersByTime(200); - expect(dom.querySelectorAll).toHaveBeenCalledWith( - expect.stringMatching('li.md-nav__item--active'), + expect(click).toHaveBeenCalled(); + }); + + it('does not expand already expanded active navigation items', async () => { + const shadowDom = await createTestShadowDom( + FIXTURES.FIXTURE_STANDARD_PAGE_EXPANDED_NAVIGATION, + { + preTransformers: [], + postTransformers: [scrollIntoNavigation()], + }, ); - expect(navItemClick1).toHaveBeenCalledWith(); - expect(navItemClick2).toHaveBeenCalledWith(); + + // jsdom does not implement scrollIntoView so we attach an empty function to + // support the behaviour. + window.HTMLElement.prototype.scrollIntoView = () => {}; + + const click = jest.fn(); + shadowDom.addEventListener('click', click); + + jest.advanceTimersByTime(200); + + expect(click).not.toHaveBeenCalled(); }); }); diff --git a/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts index ff6901686a..1e17d08835 100644 --- a/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts +++ b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts @@ -23,10 +23,14 @@ export const scrollIntoNavigation = (): Transformer => { if (activeNavItems.length !== 0) { // expand all navigation items that are active activeNavItems.forEach(activeNavItem => { - activeNavItem?.querySelector('input')?.click(); + const input = activeNavItem?.querySelector('input'); + if (input && !input?.checked) { + input.click(); + } }); - // scroll to the last active navigation item - activeNavItems[activeNavItems.length - 1].scrollIntoView(); + + const lastItem = activeNavItems[activeNavItems.length - 1]; + lastItem.scrollIntoView(); } }, 200); return dom; diff --git a/plugins/techdocs/src/test-utils/fixtures/mkdocs-expanded-index.ts b/plugins/techdocs/src/test-utils/fixtures/mkdocs-expanded-index.ts new file mode 100644 index 0000000000..1d607fd8b4 --- /dev/null +++ b/plugins/techdocs/src/test-utils/fixtures/mkdocs-expanded-index.ts @@ -0,0 +1,1577 @@ +/* + * 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. + */ +export default ` + + + + + + + + + + + + + + + MkDocs + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+
+
+
+
+ +
+
+
+ + + +
+
+

+ MkDocs +

+

Project documentation with Markdown.

+
+

+ Overview +

+

+ MkDocs is a fast, simple and + downright gorgeous static site generator that's + geared towards building project documentation. Documentation + source files are written in Markdown, and configured with a + single YAML configuration file. Start by reading the + introduction below, then check the User Guide for more info. +

+

+ Host anywhere +

+

+ MkDocs builds completely static HTML sites that you can host on + GitHub pages, Amazon S3, or + anywhere else you + choose. +

+

+ Great themes available +

+

+ There's a stack of good looking + themes available for + MkDocs. Choose between the built in themes: + mkdocs and + readthedocs, select one of the 3rd party themes listed on the + MkDocs Themes + wiki page, or + build your own. +

+

+ Preview your site as you work +

+

+ The built-in dev-server allows you to preview your documentation + as you're writing it. It will even auto-reload and refresh your + browser whenever you save your changes. +

+

+ Easy to customize +

+

+ Get your project documentation looking just the way you want it + by customizing the + theme and/or + installing some plugins. +

+
+

+ Installation +

+

+ Install with a Package Manager +

+

+ If you have and use a package manager (such as + apt-get, + dnf, homebrew, + yum, + chocolatey, etc.) to + install packages on your system, then you may want to search for + a "MkDocs" package and, if a recent version is available, + install it with your package manager (check your system's + documentation for details). That's it, you're done! Skip down to + Getting Started. +

+

+ If your package manager does not have a recent "MkDocs" package, + you can still use your package manager to install "Python" and + "pip". Then you can use pip to + install MkDocs. +

+

+ Manual Installation +

+

+ In order to manually install MkDocs you'll need + Python installed on your + system, as well as the Python package manager, + pip. You can check if you have these already installed from the + command line: +

+
+
$ python --version
+Python 3.8.2
+$ pip --version
+pip 20.0.2 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
+
+
+ +

+ MkDocs supports Python versions 3.5, 3.6, 3.7, 3.8, and pypy3. +

+

+ Installing Python +

+

+ Install Python by + downloading an installer appropriate for your system from + python.org and + running it. +

+
+

Note

+

+ If you are installing Python on Windows, be sure to check the + box to have Python added to your PATH if the installer offers + such an option (it's normally off by default). +

+

+ Add Python to PATH +

+
+

+ Installing pip +

+

+ If you're using a recent version of Python, the Python package + manager, + pip, is most likely installed by default. However, you may need to + upgrade pip to the lasted version: +

+
+
pip install --upgrade pip
+
+
+ +

+ If you need to install + pip + for the first time, download + get-pip.py. + Then run the following command to install it: +

+
+
python get-pip.py
+
+
+ +

+ Installing MkDocs +

+

Install the mkdocs package using pip:

+
+
pip install mkdocs
+
+
+ +

+ You should now have the mkdocs command installed on + your system. Run mkdocs --version to check that + everything worked okay. +

+
+
$ mkdocs --version
+mkdocs, version 0.15.3
+
+
+ +
+

Note

+

+ If you would like manpages installed for MkDocs, the + click-man + tool can generate and install them for you. Simply run the + following two commands: +

+ + + + + +
+
+
+1
+2
+
+
+
+
pip install click-man
+click-man --target path/to/man/pages mkdocs
+
+
+
+ +

+ See the + click-man documentation + for an explanation of why manpages are not automatically + generated and installed by pip. +

+
+
+

Note

+

+ If you are using Windows, some of the above commands may not + work out-of-the-box. +

+

+ A quick solution may be to preface every Python command with + python -m like this: +

+ + + + + +
+
+
+1
+2
+
+
+
+
python -m pip install mkdocs
+python -m mkdocs
+
+
+
+ +

+ For a more permanent solution, you may need to edit your + PATH environment variable to include the + Scripts directory of your Python installation. + Recent versions of Python include a script to do this for you. + Navigate to your Python installation directory (for example + C:\Python38\), open the Tools, then + Scripts folder, and run the + win_add2path.py file by double clicking on it. + Alternatively, you can + download + the script and run it (python win_add2path.py). +

+
+
+

+ Getting Started +

+

Getting started is super easy.

+
+
mkdocs new my-project
+cd my-project
+
+
+ +

+ Take a moment to review the initial project that has been + created for you. +

+

+ The initial MkDocs layout +

+

+ There's a single configuration file named + mkdocs.yml, and a folder named + docs that will contain your documentation source + files. Right now the docs folder just contains a + single documentation page, named index.md. +

+

+ MkDocs comes with a built-in dev-server that lets you preview + your documentation as you work on it. Make sure you're in the + same directory as the mkdocs.yml configuration + file, and then start the server by running the + mkdocs serve command: +

+
+
$ mkdocs serve
+INFO    -  Building documentation...
+INFO    -  Cleaning site directory
+[I 160402 15:50:43 server:271] Serving on http://127.0.0.1:8000
+[I 160402 15:50:43 handlers:58] Start watching changes
+[I 160402 15:50:43 handlers:60] Start detecting changes
+
+
+ +

+ Open up http://127.0.0.1:8000/ in your browser, and + you'll see the default home page being displayed: +

+

+ The MkDocs live server +

+

+ The dev-server also supports auto-reloading, and will rebuild + your documentation whenever anything in the configuration file, + documentation directory, or theme directory changes. +

+

+ Open the docs/index.md document in your text editor + of choice, change the initial heading to MkLorum, + and save your changes. Your browser will auto-reload and you + should see your updated documentation immediately. +

+

+ Now try editing the configuration file: mkdocs.yml. + Change the + site_name + setting to MkLorum and save the file. +

+
+
site_name: MkLorum
+
+
+ +

+ Your browser should immediately reload, and you'll see your new + site name take effect. +

+

The site_name setting

+

+ Adding pages +

+

Now add a second page to your documentation:

+
+
curl 'https://jaspervdj.be/lorem-markdownum/markdown.txt' > docs/about.md
+
+
+ +

+ As our documentation site will include some navigation headers, + you may want to edit the configuration file and add some + information about the order, title, and nesting of each page in + the navigation header by adding a + nav + setting: +

+
+
site_name: MkLorum
+nav:
+    - Home: index.md
+    - About: about.md
+
+
+ +

+ Save your changes and you'll now see a navigation bar with + Home and About items on the left as + well as Search, Previous, and + Next items on the right. +

+

Screenshot

+

+ Try the menu items and navigate back and forth between pages. + Then click on Search. A search dialog will appear, + allowing you to search for any text on any page. Notice that the + search results include every occurrence of the search term on + the site and links directly to the section of the page in which + the search term appears. You get all of that with no effort or + configuration on your part! +

+

Screenshot

+

+ Theming our documentation +

+

+ Now change the configuration file to alter how the documentation + is displayed by changing the theme. Edit the + mkdocs.yml file and add a + theme + setting: +

+
+
site_name: MkLorum
+nav:
+    - Home: index.md
+    - About: about.md
+theme: readthedocs
+
+
+ +

+ Save your changes, and you'll see the ReadTheDocs theme being + used. +

+

Screenshot

+

+ Changing the Favicon Icon +

+

+ By default, MkDocs uses the + MkDocs favicon icon. To use a + different icon, create an img subdirectory in your + docs_dir and copy your custom + favicon.ico file to that directory. MkDocs will + automatically detect and use that file as your favicon icon. +

+

+ Building the site +

+

+ That's looking good. You're ready to deploy the first pass of + your MkLorum documentation. First build the + documentation: +

+
+
mkdocs build
+
+
+ +

+ This will create a new directory, named site. Take + a look inside the directory: +

+
+
$ ls site
+about  fonts  index.html  license  search.html
+css    img    js          mkdocs   sitemap.xml
+
+
+ +

+ Notice that your source documentation has been output as two + HTML files named index.html and + about/index.html. You also have various other media + that's been copied into the site directory as part + of the documentation theme. You even have a + sitemap.xml file and + mkdocs/search_index.json. +

+

+ If you're using source code control such as git you + probably don't want to check your documentation builds into the + repository. Add a line containing site/ to your + .gitignore file. +

+
+
echo "site/" >> .gitignore
+
+
+ +

+ If you're using another source code control tool you'll want to + check its documentation on how to ignore specific directories. +

+

+ After some time, files may be removed from the documentation but + they will still reside in the site directory. To + remove those stale files, just run mkdocs with the + --clean switch. +

+
+
mkdocs build --clean
+
+
+ +

+ Other Commands and Options +

+

+ There are various other commands and options available. For a + complete list of commands, use the --help flag: +

+
+
mkdocs --help
+
+
+ +

+ To view a list of options available on a given command, use the + --help flag with that command. For example, to get + a list of all options available for the + build command run the following: +

+
+
mkdocs build --help
+
+
+ +

+ Deploying +

+

+ The documentation site that you just built only uses static + files so you'll be able to host it from pretty much anywhere. + GitHub project pages + and + Amazon S3 + may be good hosting options, depending upon your needs. Upload + the contents of the entire site directory to + wherever you're hosting your website from and you're done. For + specific instructions on a number of common hosts, see the + Deploying your Docs + page. +

+

+ Getting help +

+

+ To get help with MkDocs, please use the + discussion group, + GitHub issues + or the MkDocs IRC channel #mkdocs on freenode. +

+
+
+
+
+ + +
+ + + + + + + + +`; diff --git a/plugins/techdocs/src/test-utils/index.ts b/plugins/techdocs/src/test-utils/index.ts index 584934f732..3ed7161f01 100644 --- a/plugins/techdocs/src/test-utils/index.ts +++ b/plugins/techdocs/src/test-utils/index.ts @@ -15,9 +15,11 @@ */ import FIXTURE_STANDARD_PAGE from './fixtures/mkdocs-index'; +import FIXTURE_STANDARD_PAGE_EXPANDED_NAVIGATION from './fixtures/mkdocs-expanded-index'; export const FIXTURES = { FIXTURE_STANDARD_PAGE, + FIXTURE_STANDARD_PAGE_EXPANDED_NAVIGATION, }; export * from './shadowDom'; From e69f40594514a2b0c6f4351d33a372b0377cccab Mon Sep 17 00:00:00 2001 From: Crevil Date: Mon, 1 Aug 2022 17:40:19 +0200 Subject: [PATCH 133/377] Simplify code to be more readable Signed-off-by: Crevil --- .../src/reader/transformers/scrollIntoNavigation.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts index 1e17d08835..e8d6161404 100644 --- a/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts +++ b/plugins/techdocs/src/reader/transformers/scrollIntoNavigation.ts @@ -23,9 +23,9 @@ export const scrollIntoNavigation = (): Transformer => { if (activeNavItems.length !== 0) { // expand all navigation items that are active activeNavItems.forEach(activeNavItem => { - const input = activeNavItem?.querySelector('input'); - if (input && !input?.checked) { - input.click(); + const checkbox = activeNavItem?.querySelector('input'); + if (!checkbox?.checked) { + checkbox?.click(); } }); From ead23df325a7759cefad70d2bc5884f635d1c6ba Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 1 Aug 2022 17:49:15 +0200 Subject: [PATCH 134/377] Update api-report.md in `sonarqube-backend` plugin Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube-backend/api-report.md | 28 +++++++++++++++++-------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/plugins/sonarqube-backend/api-report.md b/plugins/sonarqube-backend/api-report.md index 8f0c672c6c..f4c48cadce 100644 --- a/plugins/sonarqube-backend/api-report.md +++ b/plugins/sonarqube-backend/api-report.md @@ -16,10 +16,13 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { getBaseUrl({ instanceName }?: { instanceName?: string }): { baseUrl: string; }; - getFindings( - componentKey: string, - instanceName?: string, - ): Promise; + getFindings({ + componentKey, + instanceName, + }: { + componentKey: string; + instanceName?: string; + }): Promise; } // @public @@ -32,7 +35,11 @@ export interface RouterOptions { export class SonarqubeConfig { constructor(instances: SonarqubeInstanceConfig[]); static fromConfig(config: Config): SonarqubeConfig; - getInstanceConfig(sonarqubeName?: string): SonarqubeInstanceConfig; + getInstanceConfig({ + sonarqubeName, + }?: { + sonarqubeName?: string; + }): SonarqubeInstanceConfig; // (undocumented) readonly instances: SonarqubeInstanceConfig[]; } @@ -48,10 +55,13 @@ export interface SonarqubeInfoProvider { getBaseUrl({ instanceName }?: { instanceName?: string }): { baseUrl: string; }; - getFindings( - componentKey: string, - instanceName?: string, - ): Promise; + getFindings({ + componentKey, + instanceName, + }: { + componentKey: string; + instanceName?: string; + }): Promise; } // @public From 156d4194f38481a395de11a7fffb717f425b8203 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 19:52:01 +0000 Subject: [PATCH 135/377] fix(deps): update dependency @google-cloud/storage to v6.3.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 75f810e611..0902fb1880 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2742,9 +2742,9 @@ integrity sha512-91ArYvRgXWb73YvEOBMmOcJc0bDRs5yiVHnqkwoG0f3nm7nZuipllz6e7BvFESBvjkDTBC0zMD8QxedUwNLc1A== "@google-cloud/storage@^6.0.0": - version "6.2.3" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.2.3.tgz#e3dae8708488cf2e0e4fbf0488083d9d279ee097" - integrity sha512-UJqn3Ln8wFBPLuwBaNu3PlhzQDL3EKKfP1+3mzLRQhcFqgpBSMPLDgAXxc6e9S0l0kqsi4GOuAA7fA+l/VAMjQ== + version "6.3.0" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.3.0.tgz#0a9765416b659f54477da6611d9c12b914c04a61" + integrity sha512-Ah4wl9cWUEW+2lAqHsKauaLlPmbtdOdQkvJE6BFwmTSZhywYVtVHLcEpf5F+/GmmNTnirFGNdE7UjgbyOxcnRg== dependencies: "@google-cloud/paginator" "^3.0.7" "@google-cloud/projectify" "^3.0.0" From 85cfe5979ef8ce41f7dc2e28db11247066471035 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 19:52:54 +0000 Subject: [PATCH 136/377] fix(deps): update dependency aws-sdk to v2.1186.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 75f810e611..973848d82d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9072,9 +9072,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1185.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1185.0.tgz#157c6a900a9449cb36b37493337cae418e01210d" - integrity sha512-viFlYC6RAKOqBRM4gIB4rE80KMFNVvEkQpNmpd3PqCOemGPETDxCVHS0oqZ26qM278sZVHt+oAjPy5HmZasskg== + version "2.1186.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1186.0.tgz#f08fc5f1f53defa1fff83177621947dc0ca8d29b" + integrity sha512-3yDWwNWgbSH9tRVyan0PlRU938Po9QH+06XHwRNwAa/6bixYl4L48c6YgpfxBpwl0IvcCCTivD7ZqshndwishQ== dependencies: buffer "4.9.2" events "1.1.1" From e9a47dd5d4d33cd9bc6464723ad6f2490bd273a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 20:44:15 +0000 Subject: [PATCH 137/377] fix(deps): update typescript-eslint monorepo to v5.32.0 Signed-off-by: Renovate Bot --- yarn.lock | 90 +++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/yarn.lock b/yarn.lock index 20a7bb07e0..66a83a0039 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7940,13 +7940,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.31.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.31.0.tgz#cae1967b1e569e6171bbc6bec2afa4e0c8efccfe" - integrity sha512-VKW4JPHzG5yhYQrQ1AzXgVgX8ZAJEvCz0QI6mLRX4tf7rnFfh5D8SKm0Pq6w5PyNfAWJk6sv313+nEt3ohWMBQ== + version "5.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.32.0.tgz#e27e38cffa4a61226327c874a7be965e9a861624" + integrity sha512-CHLuz5Uz7bHP2WgVlvoZGhf0BvFakBJKAD/43Ty0emn4wXWv5k01ND0C0fHcl/Im8Td2y/7h44E9pca9qAu2ew== dependencies: - "@typescript-eslint/scope-manager" "5.31.0" - "@typescript-eslint/type-utils" "5.31.0" - "@typescript-eslint/utils" "5.31.0" + "@typescript-eslint/scope-manager" "5.32.0" + "@typescript-eslint/type-utils" "5.32.0" + "@typescript-eslint/utils" "5.32.0" debug "^4.3.4" functional-red-black-tree "^1.0.1" ignore "^5.2.0" @@ -7967,13 +7967,13 @@ eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": - version "5.31.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.31.0.tgz#7f42d7dcc68a0a6d80a0f3d9a65063aee7bb8d2c" - integrity sha512-UStjQiZ9OFTFReTrN+iGrC6O/ko9LVDhreEK5S3edmXgR396JGq7CoX2TWIptqt/ESzU2iRKXAHfSF2WJFcWHw== + version "5.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.32.0.tgz#1de243443bc6186fb153b9e395b842e46877ca5d" + integrity sha512-IxRtsehdGV9GFQ35IGm5oKKR2OGcazUoiNBxhRV160iF9FoyuXxjY+rIqs1gfnd+4eL98OjeGnMpE7RF/NBb3A== dependencies: - "@typescript-eslint/scope-manager" "5.31.0" - "@typescript-eslint/types" "5.31.0" - "@typescript-eslint/typescript-estree" "5.31.0" + "@typescript-eslint/scope-manager" "5.32.0" + "@typescript-eslint/types" "5.32.0" + "@typescript-eslint/typescript-estree" "5.32.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.20.0": @@ -7984,13 +7984,13 @@ "@typescript-eslint/types" "5.20.0" "@typescript-eslint/visitor-keys" "5.20.0" -"@typescript-eslint/scope-manager@5.31.0": - version "5.31.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz#f47a794ba84d9b818ab7f8f44fff55a61016c606" - integrity sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg== +"@typescript-eslint/scope-manager@5.32.0": + version "5.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.32.0.tgz#763386e963a8def470580cc36cf9228864190b95" + integrity sha512-KyAE+tUON0D7tNz92p1uetRqVJiiAkeluvwvZOqBmW9z2XApmk5WSMV9FrzOroAcVxJZB3GfUwVKr98Dr/OjOg== dependencies: - "@typescript-eslint/types" "5.31.0" - "@typescript-eslint/visitor-keys" "5.31.0" + "@typescript-eslint/types" "5.32.0" + "@typescript-eslint/visitor-keys" "5.32.0" "@typescript-eslint/scope-manager@5.9.0": version "5.9.0" @@ -8000,12 +8000,12 @@ "@typescript-eslint/types" "5.9.0" "@typescript-eslint/visitor-keys" "5.9.0" -"@typescript-eslint/type-utils@5.31.0": - version "5.31.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.31.0.tgz#70a0b7201360b5adbddb0c36080495aa08f6f3d9" - integrity sha512-7ZYqFbvEvYXFn9ax02GsPcEOmuWNg+14HIf4q+oUuLnMbpJ6eHAivCg7tZMVwzrIuzX3QCeAOqKoyMZCv5xe+w== +"@typescript-eslint/type-utils@5.32.0": + version "5.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.32.0.tgz#45a14506fe3fb908600b4cef2f70778f7b5cdc79" + integrity sha512-0gSsIhFDduBz3QcHJIp3qRCvVYbqzHg8D6bHFsDMrm0rURYDj+skBK2zmYebdCp+4nrd9VWd13egvhYFJj/wZg== dependencies: - "@typescript-eslint/utils" "5.31.0" + "@typescript-eslint/utils" "5.32.0" debug "^4.3.4" tsutils "^3.21.0" @@ -8014,10 +8014,10 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== -"@typescript-eslint/types@5.31.0": - version "5.31.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.31.0.tgz#7aa389122b64b18e473c1672fb3b8310e5f07a9a" - integrity sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g== +"@typescript-eslint/types@5.32.0": + version "5.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.32.0.tgz#484273021eeeae87ddb288f39586ef5efeb6dcd8" + integrity sha512-EBUKs68DOcT/EjGfzywp+f8wG9Zw6gj6BjWu7KV/IYllqKJFPlZlLSYw/PTvVyiRw50t6wVbgv4p9uE2h6sZrQ== "@typescript-eslint/types@5.9.0": version "5.9.0" @@ -8037,13 +8037,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.31.0": - version "5.31.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz#eb92970c9d6e3946690d50c346fb9b1d745ee882" - integrity sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw== +"@typescript-eslint/typescript-estree@5.32.0": + version "5.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.32.0.tgz#282943f34babf07a4afa7b0ff347a8e7b6030d12" + integrity sha512-ZVAUkvPk3ITGtCLU5J4atCw9RTxK+SRc6hXqLtllC2sGSeMFWN+YwbiJR9CFrSFJ3w4SJfcWtDwNb/DmUIHdhg== dependencies: - "@typescript-eslint/types" "5.31.0" - "@typescript-eslint/visitor-keys" "5.31.0" + "@typescript-eslint/types" "5.32.0" + "@typescript-eslint/visitor-keys" "5.32.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -8063,15 +8063,15 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.31.0": - version "5.31.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.31.0.tgz#e146fa00dca948bfe547d665b2138a2dc1b79acd" - integrity sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg== +"@typescript-eslint/utils@5.32.0": + version "5.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.32.0.tgz#eccb6b672b94516f1afc6508d05173c45924840c" + integrity sha512-W7lYIAI5Zlc5K082dGR27Fczjb3Q57ECcXefKU/f0ajM5ToM0P+N9NmJWip8GmGu/g6QISNT+K6KYB+iSHjXCQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.31.0" - "@typescript-eslint/types" "5.31.0" - "@typescript-eslint/typescript-estree" "5.31.0" + "@typescript-eslint/scope-manager" "5.32.0" + "@typescript-eslint/types" "5.32.0" + "@typescript-eslint/typescript-estree" "5.32.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -8095,12 +8095,12 @@ "@typescript-eslint/types" "5.20.0" eslint-visitor-keys "^3.0.0" -"@typescript-eslint/visitor-keys@5.31.0": - version "5.31.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz#b0eca264df01ce85dceb76aebff3784629258f54" - integrity sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg== +"@typescript-eslint/visitor-keys@5.32.0": + version "5.32.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.32.0.tgz#b9715d0b11fdb5dd10fd0c42ff13987470525394" + integrity sha512-S54xOHZgfThiZ38/ZGTgB2rqx51CMJ5MCfVT2IplK4Q7hgzGfe0nLzLCcenDnc/cSjP568hdeKfeDcBgqNHD/g== dependencies: - "@typescript-eslint/types" "5.31.0" + "@typescript-eslint/types" "5.32.0" eslint-visitor-keys "^3.3.0" "@typescript-eslint/visitor-keys@5.9.0": From ff3d0e67799753e7a97ef43298f383ae491a7598 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Mon, 1 Aug 2022 22:51:25 +0100 Subject: [PATCH 138/377] feat: renamed react props to include components name + removed redundant default export Signed-off-by: Kamil Wolny --- .../components/GitHubIssues/GitHubIssues.tsx | 7 ++----- .../GitHubIssues/IssueCard/Assignees.tsx | 8 +++----- .../GitHubIssues/IssueCard/CommentsCount.tsx | 6 +++--- .../GitHubIssues/IssueCard/IssueCard.tsx | 8 ++++---- .../GitHubIssues/IssuesList/Filters/Filters.tsx | 17 ++++++++--------- .../GitHubIssues/IssuesList/IssuesList.tsx | 11 +++++++---- 6 files changed, 27 insertions(+), 30 deletions(-) diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx index 1e50ececbf..e873028060 100644 --- a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx @@ -28,10 +28,7 @@ import { import { IssueList } from './IssuesList'; import { NoRepositoriesInfo } from './NoRepositoriesInfo'; -export type PluginMode = 'page' | 'card'; - -export type Props = { - mode: PluginMode; +export type GitHubIssuesProps = { itemsPerPage?: number; itemsPerRepo?: number; }; @@ -39,7 +36,7 @@ export type Props = { export const GitHubIssues = ({ itemsPerPage = 10, itemsPerRepo = 40, -}: Props) => { +}: GitHubIssuesProps) => { const [isLoading, setIsLoading] = React.useState(true); const [issuesByRepository, setIssuesByRepository] = diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/Assignees.tsx b/plugins/github-issues/src/components/GitHubIssues/IssueCard/Assignees.tsx index e6abdbb6fe..173c8d9439 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssueCard/Assignees.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/Assignees.tsx @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { FunctionComponent } from 'react'; +import React from 'react'; import { Typography, Box, Avatar, makeStyles } from '@material-ui/core'; -type Props = { +type AssigneesProps = { name?: string; avatar?: string; }; @@ -32,7 +32,7 @@ const useStyles = makeStyles(theme => ({ }, })); -export const Assignees: FunctionComponent = (props: Props) => { +export const Assignees = (props: AssigneesProps) => { const { name, avatar } = props; const classes = useStyles(); @@ -57,5 +57,3 @@ export const Assignees: FunctionComponent = (props: Props) => { ); }; - -export default Assignees; diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/CommentsCount.tsx b/plugins/github-issues/src/components/GitHubIssues/IssueCard/CommentsCount.tsx index d3e7f355e0..80a365cbbb 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssueCard/CommentsCount.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/CommentsCount.tsx @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { FunctionComponent } from 'react'; +import React from 'react'; import { ChatIcon } from '@backstage/core-components'; import { Box, Badge } from '@material-ui/core'; -type Props = { +type CommentsCountProps = { commentsCount: number; }; -export const CommentsCount: FunctionComponent = (props: Props) => { +export const CommentsCount = (props: CommentsCountProps) => { const { commentsCount } = props; return ( diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx b/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx index 5b0abe79b3..95658fb343 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { FunctionComponent } from 'react'; +import React from 'react'; import { DateTime } from 'luxon'; import { @@ -23,12 +23,12 @@ import { CardActionArea, Link, } from '@material-ui/core'; -import Assignees from './Assignees'; +import { Assignees } from './Assignees'; import { CommentsCount } from './CommentsCount'; import Divider from '@material-ui/core/Divider'; -type Props = { +type IssueCardProps = { title: string; createdAt: string; updatedAt?: string; @@ -45,7 +45,7 @@ type Props = { const getElapsedTime = (isoDate: string) => DateTime.fromISO(isoDate).toRelative(); -export const IssueCard: FunctionComponent = (props: Props) => { +export const IssueCard = (props: IssueCardProps) => { const { title, createdAt, diff --git a/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx b/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx index eab1d8f57b..de071ab5bb 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssuesList/Filters/Filters.tsx @@ -14,16 +14,11 @@ * limitations under the License. */ import React from 'react'; -import { Select, SelectedItems } from '@backstage/core-components'; +import { Select, SelectedItems, SelectItem } from '@backstage/core-components'; import { makeStyles, Box, Typography } from '@material-ui/core'; -export type FilterItem = { - label: string; - value: string; -}; - -type Props = { - items: Array; +type RepositoryFiltersProps = { + items: Array; totalIssuesInGitHub: number; placeholder: string; onChange: (active: Array) => void; @@ -47,7 +42,11 @@ const checkSelectedItems: ( return onChange(active as Array); }; -export const Filters = ({ items, onChange, placeholder }: Props) => { +export const RepositoryFilters = ({ + items, + onChange, + placeholder, +}: RepositoryFiltersProps) => { const css = useStyles(); return ( diff --git a/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx b/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx index 34ccab597d..f279294928 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx @@ -20,11 +20,11 @@ import { Pagination } from '@material-ui/lab'; import { IssueCard } from '../IssueCard'; import { RepoIssues } from '../../../hooks/useGetIssuesByRepoFromGitHub'; -import { Filters } from './Filters'; +import { RepositoryFilters } from './Filters'; export type PluginMode = 'page' | 'card'; -export type Props = { +export type IssueListProps = { itemsPerPage?: number; issuesByRepository?: Record; }; @@ -37,7 +37,10 @@ const getIssuesCountForFilterLabel = ( issuesAvailable < totalIssues ? '*' : '' }`; -export const IssueList = ({ itemsPerPage = 10, issuesByRepository }: Props) => { +export const IssueList = ({ + itemsPerPage = 10, + issuesByRepository, +}: IssueListProps) => { const [currentPage, setCurrentPage] = React.useState(1); const [activeFilter, setActiveFilter] = React.useState>([]); @@ -108,7 +111,7 @@ export const IssueList = ({ itemsPerPage = 10, issuesByRepository }: Props) => { return ( {issues.length > 0 && ( - Date: Mon, 1 Aug 2022 22:52:42 +0100 Subject: [PATCH 139/377] feat: export the same github component as card and as a page Signed-off-by: Kamil Wolny --- .../GitHubIssuesCard/GitHubIssuesCard.tsx | 24 ------------------- .../src/components/GitHubIssuesCard/index.ts | 16 ------------- .../GitHubIssuesPage/GitHubIssuesPage.tsx | 23 ------------------ .../src/components/GitHubIssuesPage/index.ts | 16 ------------- plugins/github-issues/src/plugin.ts | 5 ++-- 5 files changed, 2 insertions(+), 82 deletions(-) delete mode 100644 plugins/github-issues/src/components/GitHubIssuesCard/GitHubIssuesCard.tsx delete mode 100644 plugins/github-issues/src/components/GitHubIssuesCard/index.ts delete mode 100644 plugins/github-issues/src/components/GitHubIssuesPage/GitHubIssuesPage.tsx delete mode 100644 plugins/github-issues/src/components/GitHubIssuesPage/index.ts diff --git a/plugins/github-issues/src/components/GitHubIssuesCard/GitHubIssuesCard.tsx b/plugins/github-issues/src/components/GitHubIssuesCard/GitHubIssuesCard.tsx deleted file mode 100644 index 2db4cabb21..0000000000 --- a/plugins/github-issues/src/components/GitHubIssuesCard/GitHubIssuesCard.tsx +++ /dev/null @@ -1,24 +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 React, { FunctionComponent } from 'react'; - -import { GitHubIssues, Props as GitHubIssuesProps } from '../GitHubIssues'; - -type Props = Omit; - -export const GitHubIssuesCard: FunctionComponent = props => { - return ; -}; diff --git a/plugins/github-issues/src/components/GitHubIssuesCard/index.ts b/plugins/github-issues/src/components/GitHubIssuesCard/index.ts deleted file mode 100644 index c300af125c..0000000000 --- a/plugins/github-issues/src/components/GitHubIssuesCard/index.ts +++ /dev/null @@ -1,16 +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. - */ -export * from './GitHubIssuesCard'; diff --git a/plugins/github-issues/src/components/GitHubIssuesPage/GitHubIssuesPage.tsx b/plugins/github-issues/src/components/GitHubIssuesPage/GitHubIssuesPage.tsx deleted file mode 100644 index 0c9bf4d08e..0000000000 --- a/plugins/github-issues/src/components/GitHubIssuesPage/GitHubIssuesPage.tsx +++ /dev/null @@ -1,23 +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 React, { FunctionComponent } from 'react'; -import { GitHubIssues, Props as GitHubIssuesProps } from '../GitHubIssues'; - -type Props = Omit; - -export const GitHubIssuesPage: FunctionComponent = props => { - return ; -}; diff --git a/plugins/github-issues/src/components/GitHubIssuesPage/index.ts b/plugins/github-issues/src/components/GitHubIssuesPage/index.ts deleted file mode 100644 index 83f7f4eb87..0000000000 --- a/plugins/github-issues/src/components/GitHubIssuesPage/index.ts +++ /dev/null @@ -1,16 +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. - */ -export * from './GitHubIssuesPage'; diff --git a/plugins/github-issues/src/plugin.ts b/plugins/github-issues/src/plugin.ts index c5bf1cdbce..ece3fd09a2 100644 --- a/plugins/github-issues/src/plugin.ts +++ b/plugins/github-issues/src/plugin.ts @@ -34,8 +34,7 @@ export const GitHubIssuesCard = gitHubIssuesPlugin.provide( createComponentExtension({ name: 'GitHubIssuesCard', component: { - lazy: () => - import('./components/GitHubIssuesCard').then(m => m.GitHubIssuesCard), + lazy: () => import('./components/GitHubIssues').then(m => m.GitHubIssues), }, }), ); @@ -45,7 +44,7 @@ export const GitHubIssuesPage = gitHubIssuesPlugin.provide( createRoutableExtension({ name: 'GitHubIssuesPage', component: () => - import('./components/GitHubIssuesPage').then(m => m.GitHubIssuesPage), + import('./components/GitHubIssues').then(m => m.GitHubIssues), mountPoint: rootRouteRef, }), ); From 5b8aa801f772fd542fa2dd4fadc5b4c7786a8de9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 01:50:57 +0000 Subject: [PATCH 140/377] chore(deps): update dependency @types/tar to v6.1.2 Signed-off-by: Renovate Bot --- yarn.lock | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 66a83a0039..6ced0266ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7781,12 +7781,12 @@ "@types/node" "*" "@types/tar@^6.1.1": - version "6.1.1" - resolved "https://registry.npmjs.org/@types/tar/-/tar-6.1.1.tgz#ab341ec1f149d7eb2a4f4ded56ff85f0d4fe7cb5" - integrity sha512-8mto3YZfVpqB1CHMaYz1TUYIQfZFbh/QbEq5Hsn6D0ilCfqRVCdalmc89B7vi3jhl9UYIk+dWDABShNfOkv5HA== + version "6.1.2" + resolved "https://registry.npmjs.org/@types/tar/-/tar-6.1.2.tgz#e60108a7d1b08cc91bf2faf1286cc08fdad48bbe" + integrity sha512-bnX3RRm70/n1WMwmevdOAeDU4YP7f5JSubgnuU+yrO+xQQjwDboJj3u2NTJI5ngCQhXihqVVAH5h5J8YpdpEvg== dependencies: - "@types/minipass" "*" "@types/node" "*" + minipass "^3.3.5" "@types/tern@*": version "0.23.4" @@ -19261,6 +19261,13 @@ minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3. dependencies: yallist "^4.0.0" +minipass@^3.3.5: + version "3.3.5" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.5.tgz#6da7e53a48db8a856eeb9153d85b230a2119e819" + integrity sha512-rQ/p+KfKBkeNwo04U15i+hOwoVBVmekmm/HcfTkTN2t9pbQKCMm4eN5gFeqgrrSp/kH/7BYYhTIHOxGqzbBPaA== + dependencies: + yallist "^4.0.0" + minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" From 8b03fb7800d3bedaa21268bb64dca31e8c66368a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 05:12:13 +0000 Subject: [PATCH 141/377] fix(deps): update dependency sucrase to v3.25.0 Signed-off-by: Renovate Bot --- storybook/yarn.lock | 6 +++--- yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/storybook/yarn.lock b/storybook/yarn.lock index f603d5ba1a..bec1d7019f 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -7783,9 +7783,9 @@ style-to-object@0.3.0, style-to-object@^0.3.0: inline-style-parser "0.1.1" sucrase@^3.21.0: - version "3.24.0" - resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.24.0.tgz#66a8f2cc845bc441706ce5f3056de283289067b6" - integrity sha512-SevqflhW356TKEyWjFHg2e5f3eH+5rzmsMJxrVMDvZIEHh/goYrpzDGA6APEj4ME9MdGm8oNgIzi1eF3c3dDQA== + version "3.25.0" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.25.0.tgz#6dffa34e614b3347877507a4380cc4f022b7b7aa" + integrity sha512-WxTtwEYXSmZArPGStGBicyRsg5TBEFhT5b7N+tF+zauImP0Acy+CoUK0/byJ8JNPK/5lbpWIVuFagI4+0l85QQ== dependencies: commander "^4.0.0" glob "7.1.6" diff --git a/yarn.lock b/yarn.lock index 66a83a0039..1a52a2cdaa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24761,9 +24761,9 @@ subscriptions-transport-ws@^0.11.0: ws "^5.2.0 || ^6.0.0 || ^7.0.0" sucrase@^3.18.0, sucrase@^3.20.2: - version "3.24.0" - resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.24.0.tgz#66a8f2cc845bc441706ce5f3056de283289067b6" - integrity sha512-SevqflhW356TKEyWjFHg2e5f3eH+5rzmsMJxrVMDvZIEHh/goYrpzDGA6APEj4ME9MdGm8oNgIzi1eF3c3dDQA== + version "3.25.0" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.25.0.tgz#6dffa34e614b3347877507a4380cc4f022b7b7aa" + integrity sha512-WxTtwEYXSmZArPGStGBicyRsg5TBEFhT5b7N+tF+zauImP0Acy+CoUK0/byJ8JNPK/5lbpWIVuFagI4+0l85QQ== dependencies: commander "^4.0.0" glob "7.1.6" From f762386d482c45f11d780f1d085f5f53ad083c1c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 2 Aug 2022 08:43:23 +0000 Subject: [PATCH 142/377] Version Packages (next) --- .changeset/create-app-1659429685.md | 5 + .changeset/pre.json | 22 +- docs/releases/v1.5.0-next.1-changelog.md | 274 ++++++++++++++++++ package.json | 2 +- packages/app/CHANGELOG.md | 17 ++ packages/app/package.json | 24 +- packages/backend-common/CHANGELOG.md | 8 + packages/backend-common/package.json | 4 +- packages/core-components/CHANGELOG.md | 6 + packages/core-components/package.json | 2 +- packages/create-app/CHANGELOG.md | 6 + packages/create-app/package.json | 2 +- packages/integration/CHANGELOG.md | 12 + packages/integration/package.json | 2 +- packages/techdocs-cli/CHANGELOG.md | 8 + packages/techdocs-cli/package.json | 6 +- plugins/airbrake/package.json | 2 +- plugins/allure/package.json | 2 +- plugins/analytics-module-ga/package.json | 2 +- plugins/apache-airflow/package.json | 2 +- plugins/api-docs/CHANGELOG.md | 10 + plugins/api-docs/package.json | 8 +- plugins/azure-devops/package.json | 2 +- plugins/badges/package.json | 2 +- plugins/bazaar/package.json | 2 +- plugins/bitrise/package.json | 2 +- .../CHANGELOG.md | 15 + .../package.json | 8 +- plugins/catalog-backend/CHANGELOG.md | 13 + plugins/catalog-backend/package.json | 8 +- plugins/catalog-common/CHANGELOG.md | 6 + plugins/catalog-common/package.json | 2 +- plugins/catalog-graph/package.json | 2 +- plugins/catalog-import/package.json | 2 +- plugins/catalog-react/CHANGELOG.md | 9 + plugins/catalog-react/package.json | 10 +- plugins/catalog/CHANGELOG.md | 13 + plugins/catalog/package.json | 8 +- plugins/circleci/package.json | 2 +- plugins/cloudbuild/package.json | 2 +- plugins/code-climate/package.json | 2 +- plugins/code-coverage/package.json | 2 +- plugins/config-schema/package.json | 2 +- plugins/cost-insights/package.json | 2 +- plugins/example-todo-list/package.json | 2 +- plugins/explore/package.json | 2 +- plugins/firehydrant/package.json | 2 +- plugins/fossa/package.json | 2 +- plugins/gcp-projects/package.json | 2 +- plugins/git-release-manager/package.json | 2 +- plugins/github-actions/package.json | 2 +- plugins/github-deployments/package.json | 2 +- .../github-pull-requests-board/package.json | 2 +- plugins/gitops-profiles/package.json | 2 +- plugins/gocd/package.json | 2 +- plugins/graphiql/package.json | 2 +- plugins/home/CHANGELOG.md | 9 + plugins/home/package.json | 6 +- plugins/ilert/package.json | 2 +- plugins/jenkins-backend/CHANGELOG.md | 8 + plugins/jenkins-backend/package.json | 6 +- plugins/jenkins-common/CHANGELOG.md | 7 + plugins/jenkins-common/package.json | 4 +- plugins/jenkins/CHANGELOG.md | 9 + plugins/jenkins/package.json | 8 +- plugins/kafka/package.json | 4 +- plugins/kubernetes/CHANGELOG.md | 9 + plugins/kubernetes/package.json | 6 +- plugins/lighthouse/package.json | 2 +- plugins/newrelic-dashboard/package.json | 2 +- plugins/newrelic/package.json | 2 +- plugins/org/package.json | 4 +- plugins/pagerduty/package.json | 2 +- plugins/periskop/package.json | 2 +- plugins/rollbar/package.json | 2 +- plugins/scaffolder-backend/CHANGELOG.md | 13 + plugins/scaffolder-backend/package.json | 8 +- plugins/scaffolder/CHANGELOG.md | 14 + plugins/scaffolder/package.json | 12 +- plugins/search/package.json | 2 +- plugins/sentry/package.json | 2 +- plugins/shortcuts/package.json | 2 +- plugins/sonarqube-backend/CHANGELOG.md | 12 + plugins/sonarqube-backend/package.json | 4 +- plugins/sonarqube/CHANGELOG.md | 17 ++ plugins/sonarqube/package.json | 6 +- plugins/splunk-on-call/package.json | 2 +- plugins/stack-overflow/package.json | 2 +- plugins/tech-insights/package.json | 2 +- plugins/tech-radar/package.json | 2 +- plugins/techdocs-backend/CHANGELOG.md | 10 + plugins/techdocs-backend/package.json | 10 +- .../CHANGELOG.md | 10 + .../package.json | 8 +- plugins/techdocs-node/CHANGELOG.md | 13 + plugins/techdocs-node/package.json | 6 +- plugins/techdocs-react/CHANGELOG.md | 9 + plugins/techdocs-react/package.json | 4 +- plugins/techdocs/CHANGELOG.md | 11 + plugins/techdocs/package.json | 10 +- plugins/todo/package.json | 2 +- plugins/user-settings/package.json | 2 +- plugins/xcmetrics/package.json | 2 +- yarn.lock | 40 ++- 104 files changed, 739 insertions(+), 158 deletions(-) create mode 100644 .changeset/create-app-1659429685.md create mode 100644 docs/releases/v1.5.0-next.1-changelog.md create mode 100644 plugins/sonarqube-backend/CHANGELOG.md diff --git a/.changeset/create-app-1659429685.md b/.changeset/create-app-1659429685.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1659429685.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/pre.json b/.changeset/pre.json index 6af2afaf45..f20db5bacb 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -165,34 +165,54 @@ "@backstage/plugin-vault": "0.1.1", "@backstage/plugin-vault-backend": "0.2.0", "@backstage/plugin-xcmetrics": "0.2.27", - "@internal/plugin-catalog-customized": "0.0.0" + "@internal/plugin-catalog-customized": "0.0.0", + "@backstage/plugin-sonarqube-backend": "0.0.0" }, "changesets": [ + "big-mirrors-play", "calm-clocks-drum", "create-app-1658824524", + "create-app-1659429685", + "dull-owls-grab", "dull-pumas-hope", "dull-starfishes-chew", + "eighty-radios-look", + "empty-apple-pie", + "empty-apples-tie", "famous-bikes-brush", "fast-panthers-fold", "few-berries-deny", + "forty-lobsters-guess", "fresh-hounds-argue", "friendly-sheep-flash", + "itchy-mice-kiss", "khaki-meals-hammer", + "little-laws-heal", "loud-panthers-arrive", + "lovely-walls-brush", + "mean-ants-hang", "metal-points-itch", "mighty-penguins-tap", "modern-shrimps-wave", "nine-mails-crash", "odd-adults-smash", + "odd-tomatoes-juggle", "olive-tips-camp", "pretty-gifts-do", "purple-apricots-build", + "red-turtles-melt", "renovate-15030f1", "renovate-5b7b62b", + "renovate-5ba3a71", + "rotten-moles-give", "short-trains-roll", "silver-poets-push", "strange-crabs-confess", + "strange-moles-design", + "techdocs-eagles-stare", + "ten-roses-walk", "thick-readers-invite", + "twenty-humans-visit", "violet-mayflies-mix", "violet-trees-play" ] diff --git a/docs/releases/v1.5.0-next.1-changelog.md b/docs/releases/v1.5.0-next.1-changelog.md new file mode 100644 index 0000000000..deedd1dc44 --- /dev/null +++ b/docs/releases/v1.5.0-next.1-changelog.md @@ -0,0 +1,274 @@ +# Release v1.5.0-next.1 + +## @backstage/integration@1.3.0-next.1 + +### Minor Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer + +### Patch Changes + +- 1f27d83933: Fixed bug in getGitLabFileFetchUrl where a target whose path did not contain the + `/-/` scope would result in a fetch URL that did not support + private-token-based authentication. + +## @backstage/plugin-catalog@1.5.0-next.1 + +### Minor Changes + +- fe94398418: Allow changing the subtitle of the `CatalogTable` component + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/plugin-catalog-react@1.1.3-next.1 + +## @backstage/plugin-scaffolder@1.5.0-next.1 + +### Minor Changes + +- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + +## @backstage/plugin-scaffolder-backend@1.5.0-next.1 + +### Minor Changes + +- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-catalog-backend@1.3.1-next.1 + +## @backstage/plugin-sonarqube@0.4.0-next.1 + +### Minor Changes + +- 619b515172: **BREAKING** This plugin now call the `sonarqube-backend` plugin instead of relying on the proxy plugin + + The whole proxy's `'/sonarqube':` key can be removed from your configuration files. + + Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/master/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. + +### Patch Changes + +- f9c310a439: Add ability to provide an optional Sonarqube instance into the annotation in the `catalog-info.yaml` file +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + +## @backstage/plugin-sonarqube-backend@0.1.0-next.0 + +### Minor Changes + +- e2be9ab3a4: Initial creation of the plugin + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + +## @backstage/plugin-techdocs-node@1.3.0-next.1 + +### Minor Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer + +### Patch Changes + +- f833344611: Bump default `TechDocs` image to `v1.1.0`, see the release [here](https://github.com/backstage/techdocs-container/releases/tag/v1.1.0). +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + +## @backstage/backend-common@0.15.0-next.1 + +### Patch Changes + +- 1732a18a7a: Exported `redactLogLine` function to be able to use it in custom loggers and renamed it to `redactWinstonLogLine`. +- Updated dependencies + - @backstage/integration@1.3.0-next.1 + +## @backstage/core-components@0.10.1-next.1 + +### Patch Changes + +- a22af3edc8: Adding a `className` prop to the `MarkdownContent` component + +## @backstage/create-app@0.4.30-next.1 + +### Patch Changes + +- Bumped create-app version. + +## @techdocs/cli@1.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/plugin-techdocs-node@1.3.0-next.1 + +## @backstage/plugin-api-docs@0.8.8-next.1 + +### Patch Changes + +- dae12c71cf: Updated dependency `@asyncapi/react-component` to `1.0.0-next.40`. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog@1.5.0-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + +## @backstage/plugin-catalog-backend@1.3.1-next.1 + +### Patch Changes + +- e3d3018531: Fix issue for conditional decisions based on properties stored as arrays, like tags. + + Before this change, having a permission policy returning conditional decisions based on metadata like tags, such like `createCatalogConditionalDecision(permission, catalogConditions.hasMetadata('tags', 'java'),)`, was producing wrong results. The issue occurred when authorizing entities already loaded from the database, for example when authorizing `catalogEntityDeletePermission`. + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + +## @backstage/plugin-catalog-backend-module-github@0.1.6-next.1 + +### Patch Changes + +- f48950e34b: Github Entity Provider functionality for adding entities to the catalog. + + This provider replaces the GithubDiscoveryProcessor functionality as providers offer more flexibility with scheduling ingestion, removing and preventing orphaned entities. + + More information can be found on the [GitHub Discovery](https://backstage.io/docs/integrations/github/discovery) page. + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-catalog-backend@1.3.1-next.1 + +## @backstage/plugin-catalog-common@1.0.5-next.0 + +### Patch Changes + +- 92103db537: Export aggregated list of all catalog permissions + +## @backstage/plugin-catalog-react@1.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/integration@1.3.0-next.1 + +## @backstage/plugin-home@0.4.24-next.1 + +### Patch Changes + +- df7b9158b8: Add wrap-around for the listing of tools to prevent increasing width with name length. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + +## @backstage/plugin-jenkins@0.7.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + - @backstage/plugin-jenkins-common@0.1.7-next.0 + +## @backstage/plugin-jenkins-backend@0.1.25-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/plugin-jenkins-common@0.1.7-next.0 + +## @backstage/plugin-jenkins-common@0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.5-next.0 + +## @backstage/plugin-kubernetes@0.7.1-next.1 + +### Patch Changes + +- 860ed68343: Fixed bug in CronJobsAccordions component that causes an error when cronjobs use a kubernetes alias, such as `@hourly` or `@daily` instead of standard cron syntax. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + +## @backstage/plugin-techdocs@1.3.1-next.1 + +### Patch Changes + +- b86ed4d990: Add highlight to active navigation item and navigation parents. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + +## @backstage/plugin-techdocs-backend@1.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-techdocs-node@1.3.0-next.1 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.1 + +### Patch Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.1 + +## @backstage/plugin-techdocs-react@1.0.3-next.1 + +### Patch Changes + +- 29d6cf0147: Add `toLowerEntityRefMaybe()` helper function for handling `techdocs.legacyUseCaseSensitiveTripletPaths` flag. + Pass modified `entityRef` to `TechDocsReaderPageContext` to handle the `techdocs.legacyUseCaseSensitiveTripletPaths` flag. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + +## example-app@0.2.74-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes@0.7.1-next.1 + - @backstage/plugin-home@0.4.24-next.1 + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-scaffolder@1.5.0-next.1 + - @backstage/plugin-techdocs@1.3.1-next.1 + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.1 + - @backstage/plugin-api-docs@0.8.8-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + - @backstage/plugin-jenkins@0.7.7-next.1 diff --git a/package.json b/package.json index 8c8c643879..23e847f49f 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.5.0-next.0", + "version": "1.5.0-next.1", "dependencies": { "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.17.11", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 2f4c0e7bff..002ea41927 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,22 @@ # example-app +## 0.2.74-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes@0.7.1-next.1 + - @backstage/plugin-home@0.4.24-next.1 + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-scaffolder@1.5.0-next.1 + - @backstage/plugin-techdocs@1.3.1-next.1 + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.1 + - @backstage/plugin-api-docs@0.8.8-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + - @backstage/plugin-jenkins@0.7.7-next.1 + ## 0.2.74-next.0 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 738dbc2246..8fdbce600d 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.74-next.0", + "version": "0.2.74-next.1", "private": true, "backstage": { "role": "frontend" @@ -12,18 +12,18 @@ "@backstage/cli": "^0.18.1-next.0", "@backstage/config": "^1.0.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration-react": "^1.1.3-next.0", "@backstage/plugin-airbrake": "^0.3.8-next.0", - "@backstage/plugin-api-docs": "^0.8.8-next.0", + "@backstage/plugin-api-docs": "^0.8.8-next.1", "@backstage/plugin-azure-devops": "^0.1.24-next.0", "@backstage/plugin-apache-airflow": "^0.2.1-next.0", "@backstage/plugin-badges": "^0.2.32-next.0", - "@backstage/plugin-catalog-common": "^1.0.4", + "@backstage/plugin-catalog-common": "^1.0.5-next.0", "@backstage/plugin-catalog-graph": "^0.2.20-next.0", "@backstage/plugin-catalog-import": "^0.8.11-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", "@backstage/plugin-circleci": "^0.3.8-next.0", "@backstage/plugin-cloudbuild": "^0.3.8-next.0", "@backstage/plugin-code-coverage": "^0.2.1-next.0", @@ -35,10 +35,10 @@ "@backstage/plugin-github-actions": "^0.5.8-next.0", "@backstage/plugin-gocd": "^0.1.14-next.0", "@backstage/plugin-graphiql": "^0.2.40-next.0", - "@backstage/plugin-home": "^0.4.24-next.0", - "@backstage/plugin-jenkins": "^0.7.7-next.0", + "@backstage/plugin-home": "^0.4.24-next.1", + "@backstage/plugin-jenkins": "^0.7.7-next.1", "@backstage/plugin-kafka": "^0.3.8-next.0", - "@backstage/plugin-kubernetes": "^0.7.1-next.0", + "@backstage/plugin-kubernetes": "^0.7.1-next.1", "@backstage/plugin-lighthouse": "^0.3.8-next.0", "@backstage/plugin-newrelic": "^0.3.26-next.0", "@backstage/plugin-newrelic-dashboard": "^0.2.1-next.0", @@ -46,7 +46,7 @@ "@backstage/plugin-pagerduty": "0.5.1-next.0", "@backstage/plugin-permission-react": "^0.4.4-next.0", "@backstage/plugin-rollbar": "^0.4.8-next.0", - "@backstage/plugin-scaffolder": "^1.4.1-next.0", + "@backstage/plugin-scaffolder": "^1.5.0-next.1", "@backstage/plugin-search": "^1.0.1-next.0", "@backstage/plugin-search-common": "^1.0.0", "@backstage/plugin-search-react": "^1.0.1-next.0", @@ -55,9 +55,9 @@ "@backstage/plugin-stack-overflow": "^0.1.4-next.0", "@backstage/plugin-tech-insights": "^0.2.4-next.0", "@backstage/plugin-tech-radar": "^0.5.15-next.0", - "@backstage/plugin-techdocs": "^1.3.1-next.0", - "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.3-next.0", - "@backstage/plugin-techdocs-react": "^1.0.3-next.0", + "@backstage/plugin-techdocs": "^1.3.1-next.1", + "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.3-next.1", + "@backstage/plugin-techdocs-react": "^1.0.3-next.1", "@backstage/plugin-todo": "^0.2.10-next.0", "@backstage/plugin-user-settings": "^0.4.7-next.0", "@backstage/theme": "^0.2.16", diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index 790bb0eedd..e712a96470 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/backend-common +## 0.15.0-next.1 + +### Patch Changes + +- 1732a18a7a: Exported `redactLogLine` function to be able to use it in custom loggers and renamed it to `redactWinstonLogLine`. +- Updated dependencies + - @backstage/integration@1.3.0-next.1 + ## 0.15.0-next.0 ### Minor Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 7a0d492638..1e89cf13df 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.15.0-next.0", + "version": "0.15.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -38,7 +38,7 @@ "@backstage/config": "^1.0.1", "@backstage/config-loader": "^1.1.3", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0-next.1", "@backstage/types": "^1.0.0", "@google-cloud/storage": "^6.0.0", "@keyv/redis": "^2.2.3", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 8edd7e8242..35dd20153d 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/core-components +## 0.10.1-next.1 + +### Patch Changes + +- a22af3edc8: Adding a `className` prop to the `MarkdownContent` component + ## 0.10.1-next.0 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 5a67fa32c3..e8aae8d2fa 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.10.1-next.0", + "version": "0.10.1-next.1", "private": false, "publishConfig": { "access": "public", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index adbd0c50fd..d3180a9332 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/create-app +## 0.4.30-next.1 + +### Patch Changes + +- Bumped create-app version. + ## 0.4.30-next.0 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 3182e2e83a..8b5daf3030 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.30-next.0", + "version": "0.4.30-next.1", "private": false, "publishConfig": { "access": "public" diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index e2487eb1fb..ad2a32a713 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/integration +## 1.3.0-next.1 + +### Minor Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer + +### Patch Changes + +- 1f27d83933: Fixed bug in getGitLabFileFetchUrl where a target whose path did not contain the + `/-/` scope would result in a fetch URL that did not support + private-token-based authentication. + ## 1.3.0-next.0 ### Minor Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index ade3399415..30eed36ae4 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.3.0-next.0", + "version": "1.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index fe5db6db4c..feda80db73 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,13 @@ # @techdocs/cli +## 1.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/plugin-techdocs-node@1.3.0-next.1 + ## 1.1.4-next.0 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 14e09515ea..c47270ed70 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "Utility CLI for managing TechDocs sites in Backstage.", - "version": "1.1.4-next.0", + "version": "1.1.4-next.1", "private": false, "publishConfig": { "access": "public" @@ -62,11 +62,11 @@ "ext": "ts" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.1", "@backstage/catalog-model": "^1.1.0", "@backstage/cli-common": "^0.1.9", "@backstage/config": "^1.0.1", - "@backstage/plugin-techdocs-node": "^1.2.1-next.0", + "@backstage/plugin-techdocs-node": "^1.3.0-next.1", "@types/dockerode": "^3.3.0", "commander": "^9.1.0", "dockerode": "^3.3.1", diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 25e36a0a35..b4744d0f80 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 77c175f12d..cf32d42566 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -26,7 +26,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 300402bc83..99c159b474 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 29448beef5..9b72ec0b20 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -23,7 +23,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index ca61827a0a..fbde937344 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-api-docs +## 0.8.8-next.1 + +### Patch Changes + +- dae12c71cf: Updated dependency `@asyncapi/react-component` to `1.0.0-next.40`. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog@1.5.0-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + ## 0.8.8-next.0 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 5c0f3dfce5..bac0fd8e39 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.8-next.0", + "version": "0.8.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,10 +35,10 @@ "dependencies": { "@asyncapi/react-component": "1.0.0-next.40", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog": "^1.5.0-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index bf782919a0..c0f4f89354 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -31,7 +31,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-azure-devops-common": "^0.2.4", diff --git a/plugins/badges/package.json b/plugins/badges/package.json index d7b6bd6489..4c93e4474a 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -31,7 +31,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index d08ca17676..9ddb42d9e8 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -27,7 +27,7 @@ "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/cli": "^0.18.1-next.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog": "^1.5.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 0517a594f8..f6e2b5bebf 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index aabee0b1eb..7403016bf1 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-github +## 0.1.6-next.1 + +### Patch Changes + +- f48950e34b: Github Entity Provider functionality for adding entities to the catalog. + + This provider replaces the GithubDiscoveryProcessor functionality as providers offer more flexibility with scheduling ingestion, removing and preventing orphaned entities. + + More information can be found on the [GitHub Discovery](https://backstage.io/docs/integrations/github/discovery) page. + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-catalog-backend@1.3.1-next.1 + ## 0.1.6-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index ed45d98b73..53ef808262 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.6-next.0", + "version": "0.1.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,13 +33,13 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.1", "@backstage/backend-tasks": "^0.3.4-next.0", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/integration": "^1.3.0-next.1", + "@backstage/plugin-catalog-backend": "^1.3.1-next.1", "@backstage/types": "^1.0.0", "@octokit/graphql": "^5.0.0", "lodash": "^4.17.21", diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 287ab75267..f7a42d0bf5 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend +## 1.3.1-next.1 + +### Patch Changes + +- e3d3018531: Fix issue for conditional decisions based on properties stored as arrays, like tags. + + Before this change, having a permission policy returning conditional decisions based on metadata like tags, such like `createCatalogConditionalDecision(permission, catalogConditions.hasMetadata('tags', 'java'),)`, was producing wrong results. The issue occurred when authorizing entities already loaded from the database, for example when authorizing `catalogEntityDeletePermission`. + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + ## 1.3.1-next.0 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index fbc9dabf85..63ef5bc397 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.3.1-next.0", + "version": "1.3.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,13 +36,13 @@ "dependencies": { "@backstage/backend-plugin-api": "^0.1.1-next.0", "@backstage/plugin-catalog-node": "^1.0.1-next.0", - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.1", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-common": "^1.0.4", + "@backstage/integration": "^1.3.0-next.1", + "@backstage/plugin-catalog-common": "^1.0.5-next.0", "@backstage/plugin-permission-common": "^0.6.3", "@backstage/plugin-permission-node": "^0.6.4-next.0", "@backstage/plugin-scaffolder-common": "^1.1.2", diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index 05830979e5..b05ac57b9f 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-catalog-common +## 1.0.5-next.0 + +### Patch Changes + +- 92103db537: Export aggregated list of all catalog permissions + ## 1.0.4 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index 329db25c75..f3cfa2d236 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.4", + "version": "1.0.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index e444c84713..a46d8b5ec3 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -26,7 +26,7 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index d44b9aaa67..61e2ecc2a6 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -37,7 +37,7 @@ "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index 51ef8b15a0..f9a6b39e96 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-react +## 1.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/integration@1.3.0-next.1 + ## 1.1.3-next.0 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 8bc5f1dfd0..b5ebf51c78 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.1.3-next.0", + "version": "1.1.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,11 +36,11 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-common": "^1.0.4", + "@backstage/integration": "^1.3.0-next.1", + "@backstage/plugin-catalog-common": "^1.0.5-next.0", "@backstage/plugin-permission-common": "^0.6.3", "@backstage/plugin-permission-react": "^0.4.4-next.0", "@backstage/theme": "^0.2.16", @@ -65,7 +65,7 @@ "devDependencies": { "@backstage/cli": "^0.18.1-next.0", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-common": "^1.0.4", + "@backstage/plugin-catalog-common": "^1.0.5-next.0", "@backstage/plugin-scaffolder-common": "^1.1.2", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index e1583cb69e..ac7c8bb06f 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog +## 1.5.0-next.1 + +### Minor Changes + +- fe94398418: Allow changing the subtitle of the `CatalogTable` component + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/plugin-catalog-react@1.1.3-next.1 + ## 1.5.0-next.0 ### Minor Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 7bf2c9d5ec..04d9b98701 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.5.0-next.0", + "version": "1.5.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,12 +36,12 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog-common": "^1.0.4", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-common": "^1.0.5-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", "@backstage/plugin-search-common": "^1.0.0", "@backstage/plugin-search-react": "^1.0.1-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 8810aca917..a4add36d06 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -36,7 +36,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 8107d4c411..d6ffd896a1 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 5e1313a8f8..53c2d0f9e0 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index d6e67ae320..d5adc75d4f 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -26,7 +26,7 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 80fdaf693c..9a04af2abf 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 980b916e31..dadf992c5d 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -36,7 +36,7 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-cost-insights-common": "^0.1.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index e767c59cd4..4fdaf42140 100644 --- a/plugins/example-todo-list/package.json +++ b/plugins/example-todo-list/package.json @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 209a22ff39..9d10bb182c 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/plugin-explore-react": "^0.0.20-next.0", diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 100ed11839..4cfaa1be32 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -25,7 +25,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index b24f02fa71..e0946d30a3 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -36,7 +36,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 3f78ea6609..824fbd80ed 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index fb357a2944..83710dc5e1 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index a589741d33..57a4789f3e 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -37,7 +37,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 75b7fcbb92..504b65fff4 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index ee48ebc9fe..ba19ccf68b 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -36,7 +36,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 630c4ded07..19cd4fdeab 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -35,7 +35,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index ecc8d8a4d0..e36653daf4 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 5d0c221ed5..1938ef108e 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 69b215106a..6c25055568 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-home +## 0.4.24-next.1 + +### Patch Changes + +- df7b9158b8: Add wrap-around for the listing of tools to prevent increasing width with name length. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + ## 0.4.24-next.0 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index f11a7d33fb..dbace1bcf6 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.24-next.0", + "version": "0.4.24-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", "@backstage/plugin-stack-overflow": "^0.1.4-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 9b73003de7..f1e03ad8ae 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index f1c6ed84e9..46430334b1 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-jenkins-backend +## 0.1.25-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/plugin-jenkins-common@0.1.7-next.0 + ## 0.1.25-next.0 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 4877a73093..c49e4a66cd 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.25-next.0", + "version": "0.1.25-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,13 +25,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.1", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@backstage/plugin-auth-node": "^0.2.4-next.0", - "@backstage/plugin-jenkins-common": "^0.1.6", + "@backstage/plugin-jenkins-common": "^0.1.7-next.0", "@backstage/plugin-permission-common": "^0.6.3", "@types/express": "^4.17.6", "express": "^4.17.1", diff --git a/plugins/jenkins-common/CHANGELOG.md b/plugins/jenkins-common/CHANGELOG.md index 0ccf0659bf..befb804c0c 100644 --- a/plugins/jenkins-common/CHANGELOG.md +++ b/plugins/jenkins-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-jenkins-common +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.5-next.0 + ## 0.1.6 ### Patch Changes diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index 75a4c60b35..e207f8e298 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.6", + "version": "0.1.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,7 +22,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-catalog-common": "^1.0.4", + "@backstage/plugin-catalog-common": "^1.0.5-next.0", "@backstage/plugin-permission-common": "^0.6.3" }, "devDependencies": { diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index bee2b3ca63..245dc67b92 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-jenkins +## 0.7.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + - @backstage/plugin-jenkins-common@0.1.7-next.0 + ## 0.7.7-next.0 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index a3f0b2b533..6ff8f60c16 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins", "description": "A Backstage plugin that integrates towards Jenkins", - "version": "0.7.7-next.0", + "version": "0.7.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,11 +36,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", - "@backstage/plugin-jenkins-common": "^0.1.6", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", + "@backstage/plugin-jenkins-common": "^0.1.7-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 68c05a0a4c..9beedf324a 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -26,11 +26,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/config": "^1.0.1", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", - "@backstage/config": "^1.0.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 0784be7f50..736395425d 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-kubernetes +## 0.7.1-next.1 + +### Patch Changes + +- 860ed68343: Fixed bug in CronJobsAccordions component that causes an error when cronjobs use a kubernetes alias, such as `@hourly` or `@daily` instead of standard cron syntax. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + ## 0.7.1-next.0 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index c46b56809c..efcb553d9b 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.7.1-next.0", + "version": "0.7.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", "@backstage/plugin-kubernetes-common": "^0.4.0", "@backstage/theme": "^0.2.16", "@kubernetes/client-node": "^0.17.0", diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index eae133af16..89ba839759 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -37,7 +37,7 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index 7c977ad733..645e1eec5a 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 32d6397940..1103a1290b 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -35,7 +35,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/org/package.json b/plugins/org/package.json index 49b0d78821..44459af351 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -30,16 +30,16 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", + "p-limit": "^3.1.0", "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/pagerduty/package.json b/plugins/pagerduty/package.json index ae4819b5e6..9842bdee62 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 9e9f94bda9..132074afff 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -26,7 +26,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index e343d841af..b8211cd17f 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -36,7 +36,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index e2c5b51281..07cb50bd5f 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend +## 1.5.0-next.1 + +### Minor Changes + +- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-catalog-backend@1.3.1-next.1 + ## 1.5.0-next.0 ### Minor Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 7c2b2b4401..27a22f99cf 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.5.0-next.0", + "version": "1.5.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,13 +35,13 @@ "build:assets": "node scripts/build-nunjucks.js" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.1", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/integration": "^1.3.0-next.1", + "@backstage/plugin-catalog-backend": "^1.3.1-next.1", "@backstage/plugin-scaffolder-common": "^1.1.2", "@backstage/backend-plugin-api": "^0.1.1-next.0", "@backstage/plugin-catalog-node": "^1.0.1-next.0", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index a1f7c1a68d..d69a811811 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder +## 1.5.0-next.1 + +### Minor Changes + +- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + ## 1.4.1-next.0 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index ca54750dd0..2c2c667c65 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.4.1-next.0", + "version": "1.5.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,13 +38,13 @@ "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0-next.1", "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog-common": "^1.0.4", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-common": "^1.0.5-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", "@backstage/plugin-permission-react": "^0.4.4-next.0", "@backstage/plugin-scaffolder-common": "^1.1.2", "@backstage/theme": "^0.2.16", @@ -83,7 +83,7 @@ "@backstage/cli": "^0.18.1-next.0", "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.0", + "@backstage/plugin-catalog": "^1.5.0-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/search/package.json b/plugins/search/package.json index 994d9c3f1f..db3bd9e16d 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -35,7 +35,7 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 2f7243dead..c36019b179 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -36,7 +36,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 6ff802fd22..b8b2a8c442 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", diff --git a/plugins/sonarqube-backend/CHANGELOG.md b/plugins/sonarqube-backend/CHANGELOG.md new file mode 100644 index 0000000000..167224e5d5 --- /dev/null +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -0,0 +1,12 @@ +# @backstage/plugin-sonarqube-backend + +## 0.1.0-next.0 + +### Minor Changes + +- e2be9ab3a4: Initial creation of the plugin + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 5d3b8f852e..e4d87147b3 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-backend", - "version": "0.0.0", + "version": "0.1.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.1", "@backstage/config": "^1.0.1", "@types/express": "*", "express": "^4.18.1", diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index 8f2f86fc1a..94bb723bcb 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-sonarqube +## 0.4.0-next.1 + +### Minor Changes + +- 619b515172: **BREAKING** This plugin now call the `sonarqube-backend` plugin instead of relying on the proxy plugin + + The whole proxy's `'/sonarqube':` key can be removed from your configuration files. + + Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/master/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. + +### Patch Changes + +- f9c310a439: Add ability to provide an optional Sonarqube instance into the annotation in the `catalog-info.yaml` file +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + ## 0.3.8-next.0 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index c5c27d800a..4d53258bdf 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.3.8-next.0", + "version": "0.4.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,9 +37,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 63b4ddf1e2..f8d588bac0 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 8c896fb602..4ca025c346 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-home": "^0.4.24-next.0", "@backstage/plugin-search-common": "^1.0.0", diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index bf6c21fcdf..5660ff8118 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -29,7 +29,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 1c73979600..5b05ba3313 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -34,7 +34,7 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 56b01d5bf0..944926f841 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-techdocs-backend +## 1.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.5-next.0 + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-techdocs-node@1.3.0-next.1 + ## 1.2.1-next.0 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 6b724686c9..eea1837301 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.2.1-next.0", + "version": "1.2.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.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.1", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-common": "^1.0.4", + "@backstage/integration": "^1.3.0-next.1", + "@backstage/plugin-catalog-common": "^1.0.5-next.0", "@backstage/plugin-permission-common": "^0.6.3", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-techdocs-node": "^1.2.1-next.0", + "@backstage/plugin-techdocs-node": "^1.3.0-next.1", "@types/express": "^4.17.6", "dockerode": "^3.3.1", "express": "^4.17.1", diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index a7756a3221..929c851751 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.0.3-next.1 + +### Patch Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.1 + ## 1.0.3-next.0 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 635037bb81..61a2b11ea8 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", "description": "Plugin module for contributed TechDocs Addons", - "version": "1.0.3-next.0", + "version": "1.0.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,11 +34,11 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0-next.1", "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-techdocs-react": "^1.0.3-next.0", + "@backstage/plugin-techdocs-react": "^1.0.3-next.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index 4405c103af..4f8356a87c 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-techdocs-node +## 1.3.0-next.1 + +### Minor Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer + +### Patch Changes + +- f833344611: Bump default `TechDocs` image to `v1.1.0`, see the release [here](https://github.com/backstage/techdocs-container/releases/tag/v1.1.0). +- Updated dependencies + - @backstage/backend-common@0.15.0-next.1 + - @backstage/integration@1.3.0-next.1 + ## 1.2.1-next.0 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 9f61fa54a0..643ac95be2 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.2.1-next.0", + "version": "1.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -42,11 +42,11 @@ "dependencies": { "@azure/identity": "^2.0.1", "@azure/storage-blob": "^12.5.0", - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.1", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0-next.1", "@backstage/plugin-search-common": "^1.0.0", "@google-cloud/storage": "^6.0.0", "@trendyol-js/openstack-swift-sdk": "^0.0.5", diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index f11f3a6ae3..e70f55ac8a 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-techdocs-react +## 1.0.3-next.1 + +### Patch Changes + +- 29d6cf0147: Add `toLowerEntityRefMaybe()` helper function for handling `techdocs.legacyUseCaseSensitiveTripletPaths` flag. + Pass modified `entityRef` to `TechDocsReaderPageContext` to handle the `techdocs.legacyUseCaseSensitiveTripletPaths` flag. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + ## 1.0.3-next.0 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 75821eac88..a6dbfa85d7 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-react", "description": "Shared frontend utilities for TechDocs and Addons", - "version": "1.0.3-next.0", + "version": "1.0.3-next.1", "private": false, "publishConfig": { "access": "public", @@ -37,7 +37,7 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/version-bridge": "^1.0.1", "@material-ui/core": "^4.12.2", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index bbc5b31139..8d5c5a8d2e 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs +## 1.3.1-next.1 + +### Patch Changes + +- b86ed4d990: Add highlight to active navigation item and navigation parents. +- Updated dependencies + - @backstage/core-components@0.10.1-next.1 + - @backstage/integration@1.3.0-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.1 + - @backstage/plugin-catalog-react@1.1.3-next.1 + ## 1.3.1-next.0 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 1cf6dd7bd8..fe1ad97bbf 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.3.1-next.0", + "version": "1.3.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,15 +37,15 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0-next.1", "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.1", "@backstage/plugin-search-common": "^1.0.0", "@backstage/plugin-search-react": "^1.0.1-next.0", - "@backstage/plugin-techdocs-react": "^1.0.3-next.0", + "@backstage/plugin-techdocs-react": "^1.0.3-next.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/todo/package.json b/plugins/todo/package.json index 6e1d555ab0..a025c3c136 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -31,7 +31,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-catalog-react": "^1.1.3-next.0", diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 2a16a80332..05ceb6f5f5 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 2dbc98a290..68b8c834eb 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.10.1-next.1", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", diff --git a/yarn.lock b/yarn.lock index 2fc42e810b..919c41fcc7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2114,6 +2114,14 @@ lodash "^4.17.21" luxon "^3.0.0" +"@backstage/plugin-catalog-common@^1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.4.tgz#94389cb6555eeaea2814d286744d951578ae9132" + integrity sha512-6+3pQMFOjvsswzaGZ1qqgkc2dnuQOFILDk4zmmc/bq35R4ICk48Pbw41gH0/YR7yupXPi3OwN4la50ECUELCqw== + dependencies: + "@backstage/plugin-permission-common" "^0.6.3" + "@backstage/plugin-search-common" "^1.0.0" + "@backstage/plugin-catalog-react@^1.0.0", "@backstage/plugin-catalog-react@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.1.2.tgz#253a99d9ced5d751f9d1fb3d278511d754aaed4e" @@ -7751,7 +7759,7 @@ "@types/cookiejar" "*" "@types/node" "*" -"@types/supertest@^2.0.8": +"@types/supertest@^2.0.12", "@types/supertest@^2.0.8": version "2.0.12" resolved "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz#ddb4a0568597c9aadff8dbec5b2e8fddbe8692fc" integrity sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ== @@ -13216,25 +13224,25 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" "example-app@link:packages/app": - version "0.2.74-next.0" + version "0.2.74-next.1" dependencies: "@backstage/app-defaults" "^1.0.5-next.0" "@backstage/catalog-model" "^1.1.0" "@backstage/cli" "^0.18.1-next.0" "@backstage/config" "^1.0.1" "@backstage/core-app-api" "^1.0.5-next.0" - "@backstage/core-components" "^0.10.1-next.0" + "@backstage/core-components" "^0.10.1-next.1" "@backstage/core-plugin-api" "^1.0.5-next.0" "@backstage/integration-react" "^1.1.3-next.0" "@backstage/plugin-airbrake" "^0.3.8-next.0" "@backstage/plugin-apache-airflow" "^0.2.1-next.0" - "@backstage/plugin-api-docs" "^0.8.8-next.0" + "@backstage/plugin-api-docs" "^0.8.8-next.1" "@backstage/plugin-azure-devops" "^0.1.24-next.0" "@backstage/plugin-badges" "^0.2.32-next.0" - "@backstage/plugin-catalog-common" "^1.0.4" + "@backstage/plugin-catalog-common" "^1.0.5-next.0" "@backstage/plugin-catalog-graph" "^0.2.20-next.0" "@backstage/plugin-catalog-import" "^0.8.11-next.0" - "@backstage/plugin-catalog-react" "^1.1.3-next.0" + "@backstage/plugin-catalog-react" "^1.1.3-next.1" "@backstage/plugin-circleci" "^0.3.8-next.0" "@backstage/plugin-cloudbuild" "^0.3.8-next.0" "@backstage/plugin-code-coverage" "^0.2.1-next.0" @@ -13246,10 +13254,10 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: "@backstage/plugin-github-actions" "^0.5.8-next.0" "@backstage/plugin-gocd" "^0.1.14-next.0" "@backstage/plugin-graphiql" "^0.2.40-next.0" - "@backstage/plugin-home" "^0.4.24-next.0" - "@backstage/plugin-jenkins" "^0.7.7-next.0" + "@backstage/plugin-home" "^0.4.24-next.1" + "@backstage/plugin-jenkins" "^0.7.7-next.1" "@backstage/plugin-kafka" "^0.3.8-next.0" - "@backstage/plugin-kubernetes" "^0.7.1-next.0" + "@backstage/plugin-kubernetes" "^0.7.1-next.1" "@backstage/plugin-lighthouse" "^0.3.8-next.0" "@backstage/plugin-newrelic" "^0.3.26-next.0" "@backstage/plugin-newrelic-dashboard" "^0.2.1-next.0" @@ -13257,7 +13265,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: "@backstage/plugin-pagerduty" "0.5.1-next.0" "@backstage/plugin-permission-react" "^0.4.4-next.0" "@backstage/plugin-rollbar" "^0.4.8-next.0" - "@backstage/plugin-scaffolder" "^1.4.1-next.0" + "@backstage/plugin-scaffolder" "^1.5.0-next.1" "@backstage/plugin-search" "^1.0.1-next.0" "@backstage/plugin-search-common" "^1.0.0" "@backstage/plugin-search-react" "^1.0.1-next.0" @@ -13266,9 +13274,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: "@backstage/plugin-stack-overflow" "^0.1.4-next.0" "@backstage/plugin-tech-insights" "^0.2.4-next.0" "@backstage/plugin-tech-radar" "^0.5.15-next.0" - "@backstage/plugin-techdocs" "^1.3.1-next.0" - "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.3-next.0" - "@backstage/plugin-techdocs-react" "^1.0.3-next.0" + "@backstage/plugin-techdocs" "^1.3.1-next.1" + "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.3-next.1" + "@backstage/plugin-techdocs-react" "^1.0.3-next.1" "@backstage/plugin-todo" "^0.2.10-next.0" "@backstage/plugin-user-settings" "^0.4.7-next.0" "@backstage/theme" "^0.2.16" @@ -19427,7 +19435,7 @@ msw@^0.43.0: type-fest "^1.2.2" yargs "^17.3.1" -msw@^0.44.0: +msw@^0.44.0, msw@^0.44.2: version "0.44.2" resolved "https://registry.npmjs.org/msw/-/msw-0.44.2.tgz#00a901b6cc9d119fb30f794330d96dca6944afc2" integrity sha512-u8wjzzcMWouoZtuIShCwx4M3wFF5sBAV1f8K4a0WX8kiihFjzl89IKE1VYmTclLyMIwpOq8qQ1HTpuh2BFX/3A== @@ -24796,7 +24804,7 @@ superagent@^8.0.0: readable-stream "^3.6.0" semver "^7.3.7" -supertest@^6.1.3, supertest@^6.1.6: +supertest@^6.1.3, supertest@^6.1.6, supertest@^6.2.4: version "6.2.4" resolved "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz#3dcebe42f7fd6f28dd7ac74c6cba881f7101b2f0" integrity sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA== @@ -26651,7 +26659,7 @@ winston-transport@^4.5.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@^3.2.1, winston@^3.7.2: +winston@^3.2.1, winston@^3.7.2, winston@^3.8.1: version "3.8.1" resolved "https://registry.npmjs.org/winston/-/winston-3.8.1.tgz#76f15b3478cde170b780234e0c4cf805c5a7fb57" integrity sha512-r+6YAiCR4uI3N8eQNOg8k3P3PqwAm20cLKlzVD9E66Ch39+LZC+VH1UKf9JemQj2B3QoUHfKD7Poewn0Pr3Y1w== From 4a4b9ad2de274fdf47178edba54da6d74d858c31 Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Tue, 2 Aug 2022 11:51:33 +0200 Subject: [PATCH 143/377] Added project pattern for GitLab provider to be able to filter projects on more granular level. Signed-off-by: bnechyporenko --- plugins/catalog-backend-module-gitlab/src/lib/types.ts | 1 + .../src/providers/GitlabDiscoveryEntityProvider.ts | 4 ++++ .../catalog-backend-module-gitlab/src/providers/config.ts | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-gitlab/src/lib/types.ts b/plugins/catalog-backend-module-gitlab/src/lib/types.ts index 69de9d28c7..8a3c33c8f2 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/types.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/types.ts @@ -35,4 +35,5 @@ export type GitlabProviderConfig = { id: string; branch: string; catalogFile: string; + projectPattern: RegExp; }; diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts index 36c3ee90be..ffb123edf7 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts @@ -147,6 +147,10 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider { }; for await (const project of projects) { + if (!this.config.projectPattern.test(project.path_with_namespace ?? '')) { + continue; + } + res.scanned++; if (project.archived) { diff --git a/plugins/catalog-backend-module-gitlab/src/providers/config.ts b/plugins/catalog-backend-module-gitlab/src/providers/config.ts index d6ad28b2ca..a316ddc3c9 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/config.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/config.ts @@ -15,13 +15,14 @@ */ import { Config } from '@backstage/config'; -import { GitlabProviderConfig } from '../lib/types'; +import { GitlabProviderConfig } from '../lib'; /** * Extracts the gitlab config from a config object * * @public * + * @param id - The provider key * @param config - The config object to extract from */ function readGitlabConfig(id: string, config: Config): GitlabProviderConfig { @@ -30,6 +31,8 @@ function readGitlabConfig(id: string, config: Config): GitlabProviderConfig { const branch = config.getOptionalString('branch') ?? 'master'; const catalogFile = config.getOptionalString('entityFilename') ?? 'catalog-info.yaml'; + const projectPattern = + new RegExp(config.getString('projectPattern')) ?? /[\s\S]*/; return { id, @@ -37,6 +40,7 @@ function readGitlabConfig(id: string, config: Config): GitlabProviderConfig { branch, host, catalogFile, + projectPattern, }; } From 24979413a43493ff276862a29c23c078746522f5 Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Tue, 2 Aug 2022 11:56:43 +0200 Subject: [PATCH 144/377] Added project pattern for GitLab provider to be able to filter projects on more granular level. Signed-off-by: bnechyporenko --- .changeset/cool-months-tickle.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .changeset/cool-months-tickle.md diff --git a/.changeset/cool-months-tickle.md b/.changeset/cool-months-tickle.md new file mode 100644 index 0000000000..a160b13bd0 --- /dev/null +++ b/.changeset/cool-months-tickle.md @@ -0,0 +1,17 @@ +--- +'@backstage/plugin-catalog-backend-module-gitlab': minor +--- + +Enhancing GitLab provider with filtering projects by pattern RegExp + +```yaml +providers: + gitlab: + stg: + host: gitlab.stg.company.io + branch: main + projectPattern: johndoe/ <== new option + entityFilename: template.yaml +``` + +With the abovementioned parameter you can filter projects, and keep only who belongs to the namespace "johndoe". From d51e5223d6c06838f7c17282bfc10c42f84e9597 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 2 Aug 2022 08:57:29 +0100 Subject: [PATCH 145/377] feat: updated api-report.md Signed-off-by: Kamil Wolny --- plugins/github-issues/api-report.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/plugins/github-issues/api-report.md b/plugins/github-issues/api-report.md index 5e6f75460d..6679fec610 100644 --- a/plugins/github-issues/api-report.md +++ b/plugins/github-issues/api-report.md @@ -6,20 +6,21 @@ /// import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { FunctionComponent } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; +// Warning: (ae-forgotten-export) The symbol "GitHubIssuesProps" needs to be exported by the entry point index.d.ts +// // @public (undocumented) -export const GitHubIssuesCard: FunctionComponent<{ - itemsPerPage?: number | undefined; - itemsPerRepo?: number | undefined; -}>; +export const GitHubIssuesCard: ({ + itemsPerPage, + itemsPerRepo, +}: GitHubIssuesProps) => JSX.Element; // @public (undocumented) -export const GitHubIssuesPage: FunctionComponent<{ - itemsPerPage?: number | undefined; - itemsPerRepo?: number | undefined; -}>; +export const GitHubIssuesPage: ({ + itemsPerPage, + itemsPerRepo, +}: GitHubIssuesProps) => JSX.Element; // @public (undocumented) export const gitHubIssuesPlugin: BackstagePlugin< From ffd5e47fb5c6338aa0e6965d687d0028e0baabb5 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 2 Aug 2022 10:35:51 +0100 Subject: [PATCH 146/377] feat: pr review fixes + changeset Signed-off-by: Kamil Wolny --- .changeset/silver-carpets-grin.md | 5 ++ plugins/github-issues/api-report.md | 8 +- plugins/github-issues/package.json | 4 +- .../components/GitHubIssues/GitHubIssues.tsx | 10 ++- .../src/hooks/useOctokitGraphQL.ts | 2 +- plugins/github-issues/src/index.ts | 2 + yarn.lock | 78 +------------------ 7 files changed, 23 insertions(+), 86 deletions(-) create mode 100644 .changeset/silver-carpets-grin.md diff --git a/.changeset/silver-carpets-grin.md b/.changeset/silver-carpets-grin.md new file mode 100644 index 0000000000..9865393631 --- /dev/null +++ b/.changeset/silver-carpets-grin.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-github-issues': minor +--- + +New plugin for displaying GitHub Issues added diff --git a/plugins/github-issues/api-report.md b/plugins/github-issues/api-report.md index 6679fec610..8c77aaf674 100644 --- a/plugins/github-issues/api-report.md +++ b/plugins/github-issues/api-report.md @@ -8,8 +8,6 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; -// Warning: (ae-forgotten-export) The symbol "GitHubIssuesProps" needs to be exported by the entry point index.d.ts -// // @public (undocumented) export const GitHubIssuesCard: ({ itemsPerPage, @@ -31,5 +29,11 @@ export const gitHubIssuesPlugin: BackstagePlugin< {} >; +// @public (undocumented) +export type GitHubIssuesProps = { + itemsPerPage?: number; + itemsPerRepo?: number; +}; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 861a67ffa2..74f108cd94 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -32,9 +32,9 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", - "@octokit/rest": "^18.12.0", "@types/react": "^16.13.1 || ^17.0.0", "luxon": "^2.4.0", + "octokit": "^2.0.4", "react-use": "^17.2.4" }, "peerDependencies": { @@ -52,7 +52,7 @@ "@types/jest": "*", "@types/node": "*", "cross-fetch": "^3.1.5", - "msw": "^0.42.0", + "msw": "^0.44.0", "prettier": "^2.7.1" }, "files": [ diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx index e873028060..5380c8eb22 100644 --- a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx @@ -28,15 +28,17 @@ import { import { IssueList } from './IssuesList'; import { NoRepositoriesInfo } from './NoRepositoriesInfo'; +/** + * @public + */ export type GitHubIssuesProps = { itemsPerPage?: number; itemsPerRepo?: number; }; -export const GitHubIssues = ({ - itemsPerPage = 10, - itemsPerRepo = 40, -}: GitHubIssuesProps) => { +export const GitHubIssues = (props: GitHubIssuesProps) => { + const { itemsPerPage = 10, itemsPerRepo = 40 } = props; + const [isLoading, setIsLoading] = React.useState(true); const [issuesByRepository, setIssuesByRepository] = diff --git a/plugins/github-issues/src/hooks/useOctokitGraphQL.ts b/plugins/github-issues/src/hooks/useOctokitGraphQL.ts index e408360c53..6b783efd6f 100644 --- a/plugins/github-issues/src/hooks/useOctokitGraphQL.ts +++ b/plugins/github-issues/src/hooks/useOctokitGraphQL.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Octokit } from '@octokit/rest'; +import { Octokit } from 'octokit'; import { useApi, githubAuthApiRef, diff --git a/plugins/github-issues/src/index.ts b/plugins/github-issues/src/index.ts index 7905d2fba2..5f6c248db7 100644 --- a/plugins/github-issues/src/index.ts +++ b/plugins/github-issues/src/index.ts @@ -18,3 +18,5 @@ export { GitHubIssuesPage, GitHubIssuesCard, } from './plugin'; + +export type { GitHubIssuesProps } from './components/GitHubIssues'; diff --git a/yarn.lock b/yarn.lock index 44409c647b..3b60557a67 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5431,19 +5431,6 @@ before-after-hook "^2.1.0" universal-user-agent "^6.0.0" -"@octokit/core@^3.5.1": - version "3.6.0" - resolved "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.3" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - "@octokit/core@^4.0.0": version "4.0.2" resolved "https://registry.npmjs.org/@octokit/core/-/core-4.0.2.tgz#4eaf9c5fd39913b541c5e31a2b8fdc3cf50480bc" @@ -5560,11 +5547,6 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== -"@octokit/openapi-types@^12.11.0": - version "12.11.0" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" - integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== - "@octokit/openapi-types@^12.4.0": version "12.4.0" resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz#fd8bf5db72bd566c5ba2cb76754512a9ebe66e71" @@ -5585,13 +5567,6 @@ resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.21.3" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" - integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== - dependencies: - "@octokit/types" "^6.40.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" @@ -5624,14 +5599,6 @@ "@octokit/types" "^6.16.2" deprecation "^2.3.1" -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.16.2" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" - integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== - dependencies: - "@octokit/types" "^6.39.0" - deprecation "^2.3.1" - "@octokit/plugin-rest-endpoint-methods@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.0.0.tgz#e4a55d83ec5a00e6b4d7a780f4ec9009095bff6f" @@ -5708,16 +5675,6 @@ "@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== - dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" - "@octokit/rest@^19.0.3": version "19.0.3" resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.3.tgz#b9a4e8dc8d53e030d611c053153ee6045f080f02" @@ -5763,13 +5720,6 @@ dependencies: "@octokit/openapi-types" "^12.7.0" -"@octokit/types@^6.40.0": - version "6.41.0" - resolved "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" - integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== - dependencies: - "@octokit/openapi-types" "^12.11.0" - "@octokit/webhooks-methods@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" @@ -19310,32 +19260,6 @@ msw@^0.39.2: type-fest "^1.2.2" yargs "^17.3.1" -msw@^0.42.0: - version "0.42.3" - resolved "https://registry.npmjs.org/msw/-/msw-0.42.3.tgz#150c475e2cb6d53c67503bd0e3f6251bfd075328" - integrity sha512-zrKBIGCDsNUCZLd3DLSeUtRruZ0riwJgORg9/bSDw3D0PTI8XUGAK3nC0LJA9g0rChGuKaWK/SwObA8wpFrz4g== - dependencies: - "@mswjs/cookies" "^0.2.0" - "@mswjs/interceptors" "^0.16.3" - "@open-draft/until" "^1.0.3" - "@types/cookie" "^0.4.1" - "@types/js-levenshtein" "^1.1.1" - chalk "4.1.1" - chokidar "^3.4.2" - cookie "^0.4.2" - graphql "^16.3.0" - headers-polyfill "^3.0.4" - inquirer "^8.2.0" - is-node-process "^1.0.1" - js-levenshtein "^1.1.6" - node-fetch "^2.6.7" - outvariant "^1.3.0" - path-to-regexp "^6.2.0" - statuses "^2.0.0" - strict-event-emitter "^0.2.0" - type-fest "^1.2.2" - yargs "^17.3.1" - msw@^0.43.0: version "0.43.1" resolved "https://registry.npmjs.org/msw/-/msw-0.43.1.tgz#57cb4af56f07442e8a6d14d76032a0ab41434256" @@ -20090,7 +20014,7 @@ octokit-plugin-create-pull-request@^3.10.0: dependencies: "@octokit/types" "^6.8.2" -octokit@^2.0.0: +octokit@^2.0.0, octokit@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/octokit/-/octokit-2.0.4.tgz#cfd3adee6b775d3fa8cd8746590bed36127cc0a0" integrity sha512-9QvgYGzrSTGmr3koSGtbgeMgqYI20QI0Vv8Bk9y6phchk6L2aHFhcrUOIeNUPj1Z+KZnEBd6A/8faNpDFNfVjg== From 34504ab52b9d3efa5f97892ea75d59b73d6a5ce9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brad=20Reed=20=F0=9F=98=8E?= Date: Tue, 2 Aug 2022 12:12:48 +0200 Subject: [PATCH 147/377] feat(kubernetes): add namespace to k8s error reporting table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Brad Reed 😎 --- .../src/components/ErrorReporting/ErrorReporting.tsx | 9 +++++++-- plugins/kubernetes/src/error-detection/common.ts | 2 ++ .../src/error-detection/error-detection.test.ts | 8 ++++++++ plugins/kubernetes/src/error-detection/types.ts | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/plugins/kubernetes/src/components/ErrorReporting/ErrorReporting.tsx b/plugins/kubernetes/src/components/ErrorReporting/ErrorReporting.tsx index 62af1d9d14..0dbf889fab 100644 --- a/plugins/kubernetes/src/components/ErrorReporting/ErrorReporting.tsx +++ b/plugins/kubernetes/src/components/ErrorReporting/ErrorReporting.tsx @@ -26,12 +26,17 @@ type ErrorReportingProps = { const columns: TableColumn[] = [ { title: 'cluster', - width: '15%', + width: '10%', render: (detectedError: DetectedError) => detectedError.cluster, }, + { + title: 'namespace', + width: '10%', + render: (detectedError: DetectedError) => detectedError.namespace, + }, { title: 'kind', - width: '15%', + width: '10%', render: (detectedError: DetectedError) => detectedError.kind, }, { diff --git a/plugins/kubernetes/src/error-detection/common.ts b/plugins/kubernetes/src/error-detection/common.ts index ce7902110f..bc5fd2fc40 100644 --- a/plugins/kubernetes/src/error-detection/common.ts +++ b/plugins/kubernetes/src/error-detection/common.ts @@ -45,6 +45,7 @@ export const detectErrorsInObjects = ( const value = errors.get(dedupKey); const name = object.metadata?.name ?? 'unknown'; + const namespace = object.metadata?.namespace ?? 'unknown'; if (value !== undefined) { // This gets translated into the Chip "+5 others" @@ -60,6 +61,7 @@ export const detectErrorsInObjects = ( names: [name], message: message, severity: errorMapper.severity, + namespace, }); } } diff --git a/plugins/kubernetes/src/error-detection/error-detection.test.ts b/plugins/kubernetes/src/error-detection/error-detection.test.ts index ef64ff6a20..2c6373f32d 100644 --- a/plugins/kubernetes/src/error-detection/error-detection.test.ts +++ b/plugins/kubernetes/src/error-detection/error-detection.test.ts @@ -154,6 +154,7 @@ describe('detectErrors', () => { 'container=side-car restarted 38 times', ], names: ['dice-roller-canary-7d64cd756c-55rfq'], + namespace: 'default', severity: 4, }); @@ -165,6 +166,7 @@ describe('detectErrors', () => { 'containers with unready status: [side-car other-side-car]', ], names: ['dice-roller-canary-7d64cd756c-55rfq'], + namespace: 'default', severity: 5, }); @@ -176,6 +178,7 @@ describe('detectErrors', () => { 'back-off 5m0s restarting failed container=side-car pod=dice-roller-canary-7d64cd756c-55rfq_default(65ad28e3-5d51-4b4b-9bf8-4cb069803034)', ], names: ['dice-roller-canary-7d64cd756c-55rfq'], + namespace: 'default', severity: 6, }); @@ -187,6 +190,7 @@ describe('detectErrors', () => { 'container=side-car exited with error code (1)', ], names: ['dice-roller-canary-7d64cd756c-55rfq'], + namespace: 'default', severity: 4, }); }); @@ -210,6 +214,7 @@ describe('detectErrors', () => { 'containers with unready status: [nginx]', ], names: ['dice-roller-bad-cm-855bf85464-mg6xb'], + namespace: 'default', severity: 5, }); @@ -218,6 +223,7 @@ describe('detectErrors', () => { kind: 'Pod', message: ['configmap "some-cm" not found'], names: ['dice-roller-bad-cm-855bf85464-mg6xb'], + namespace: 'default', severity: 6, }); }); @@ -248,6 +254,7 @@ describe('detectErrors', () => { kind: 'Deployment', message: ['Deployment does not have minimum availability.'], names: ['dice-roller-canary'], + namespace: 'default', severity: 6, }); }); @@ -280,6 +287,7 @@ describe('detectErrors', () => { 'Current number of replicas (10) is equal to the configured max number of replicas (10)', ], names: ['dice-roller'], + namespace: 'default', severity: 8, }); }); diff --git a/plugins/kubernetes/src/error-detection/types.ts b/plugins/kubernetes/src/error-detection/types.ts index 871413d43e..5e35cef8b6 100644 --- a/plugins/kubernetes/src/error-detection/types.ts +++ b/plugins/kubernetes/src/error-detection/types.ts @@ -55,6 +55,7 @@ export type DetectedErrorsByCluster = Map; export interface DetectedError { severity: ErrorSeverity; cluster: string; + namespace: string; kind: ErrorDetectableKind; names: string[]; message: string[]; From f563b86a5b1fc76dc4875c6331de85e81e009cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brad=20Reed=20=F0=9F=98=8E?= Date: Tue, 2 Aug 2022 12:20:07 +0200 Subject: [PATCH 148/377] changeset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Brad Reed 😎 --- .changeset/flat-zebras-draw.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/flat-zebras-draw.md diff --git a/.changeset/flat-zebras-draw.md b/.changeset/flat-zebras-draw.md new file mode 100644 index 0000000000..338ee9ca27 --- /dev/null +++ b/.changeset/flat-zebras-draw.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes': minor +--- + +Adds namespace column to Kubernetes error reporting table From 62aae9363a4dc82de17eb5d9705b0dadb411ac31 Mon Sep 17 00:00:00 2001 From: kielosz Date: Tue, 2 Aug 2022 12:43:48 +0200 Subject: [PATCH 149/377] Add names to Groups Signed-off-by: kielosz --- plugins/cost-insights-common/src/types/Group.ts | 1 + .../src/components/CostInsightsTabs/CostInsightsTabs.test.tsx | 3 ++- .../src/components/CostInsightsTabs/CostInsightsTabs.tsx | 2 +- plugins/cost-insights/src/example/client.ts | 3 ++- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/cost-insights-common/src/types/Group.ts b/plugins/cost-insights-common/src/types/Group.ts index b34cac083f..ad384abe7b 100644 --- a/plugins/cost-insights-common/src/types/Group.ts +++ b/plugins/cost-insights-common/src/types/Group.ts @@ -19,4 +19,5 @@ */ export type Group = { id: string; + name?: string; }; diff --git a/plugins/cost-insights/src/components/CostInsightsTabs/CostInsightsTabs.test.tsx b/plugins/cost-insights/src/components/CostInsightsTabs/CostInsightsTabs.test.tsx index 6da6286515..2e2131daff 100644 --- a/plugins/cost-insights/src/components/CostInsightsTabs/CostInsightsTabs.test.tsx +++ b/plugins/cost-insights/src/components/CostInsightsTabs/CostInsightsTabs.test.tsx @@ -32,6 +32,7 @@ const mockGroups: Group[] = [ }, { id: 'test-group-3', + name: 'Test Group 3', }, ]; @@ -76,7 +77,7 @@ describe('', () => { ); await userEvent.click(rendered.getByTestId('cost-insights-groups-tab')); mockGroups.forEach(group => - expect(rendered.getByText(group.id)).toBeInTheDocument(), + expect(rendered.getByText(group.name ?? group.id)).toBeInTheDocument(), ); }); }); diff --git a/plugins/cost-insights/src/components/CostInsightsTabs/CostInsightsTabs.tsx b/plugins/cost-insights/src/components/CostInsightsTabs/CostInsightsTabs.tsx index 3bb3f14214..935184ee55 100644 --- a/plugins/cost-insights/src/components/CostInsightsTabs/CostInsightsTabs.tsx +++ b/plugins/cost-insights/src/components/CostInsightsTabs/CostInsightsTabs.tsx @@ -100,7 +100,7 @@ export const CostInsightsTabs = ({ groups }: CostInsightsTabsProps) => { data-testid={g.id} onClick={updateGroupFilterAndCloseMenu(g)} > - {g.id} + {g.name ?? g.id} ))} diff --git a/plugins/cost-insights/src/example/client.ts b/plugins/cost-insights/src/example/client.ts index a7a2a0e22f..a6aadedd09 100644 --- a/plugins/cost-insights/src/example/client.ts +++ b/plugins/cost-insights/src/example/client.ts @@ -52,7 +52,8 @@ export class ExampleCostInsightsClient implements CostInsightsApi { async getUserGroups(userId: string): Promise { const groups: Group[] = await this.request({ userId }, [ - { id: 'pied-piper' }, + { id: 'group-a', name: 'Group A' }, + { id: 'group-b', name: 'Group B' }, ]); return groups; From daf4b33e34cbc9257f783a2a6e87f51919fb7bc2 Mon Sep 17 00:00:00 2001 From: kielosz Date: Tue, 2 Aug 2022 12:51:48 +0200 Subject: [PATCH 150/377] Add changeset Signed-off-by: kielosz --- .changeset/plenty-timers-flow.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/plenty-timers-flow.md diff --git a/.changeset/plenty-timers-flow.md b/.changeset/plenty-timers-flow.md new file mode 100644 index 0000000000..8a26c8068b --- /dev/null +++ b/.changeset/plenty-timers-flow.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-cost-insights': patch +'@backstage/plugin-cost-insights-common': patch +--- + +Add name property to Group From eae2f7c73224f1ed66bf856e4f4fa5f0a047a855 Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Tue, 2 Aug 2022 13:02:04 +0200 Subject: [PATCH 151/377] Added project pattern for GitLab provider to be able to filter projects on more granular level. Signed-off-by: bnechyporenko --- .changeset/cool-months-tickle.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/cool-months-tickle.md b/.changeset/cool-months-tickle.md index a160b13bd0..41ee67db33 100644 --- a/.changeset/cool-months-tickle.md +++ b/.changeset/cool-months-tickle.md @@ -10,8 +10,8 @@ providers: stg: host: gitlab.stg.company.io branch: main - projectPattern: johndoe/ <== new option + projectPattern: john/ <== new option entityFilename: template.yaml ``` -With the abovementioned parameter you can filter projects, and keep only who belongs to the namespace "johndoe". +With the aforementioned parameter you can filter projects, and keep only who belongs to the namespace "john". From 440663a4fd484cd2ffe16ba097006e045063fadd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brad=20Reed=20=F0=9F=98=8E?= Date: Tue, 2 Aug 2022 13:09:07 +0200 Subject: [PATCH 152/377] api-report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Brad Reed 😎 --- plugins/kubernetes/api-report.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/kubernetes/api-report.md b/plugins/kubernetes/api-report.md index e85c9cbeca..ccb4dcae8d 100644 --- a/plugins/kubernetes/api-report.md +++ b/plugins/kubernetes/api-report.md @@ -109,6 +109,8 @@ export interface DetectedError { // (undocumented) names: string[]; // (undocumented) + namespace: string; + // (undocumented) severity: ErrorSeverity; } From 986fcb39d8dd2615ad39e26df9b4f0219854b62b Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Tue, 2 Aug 2022 13:10:38 +0200 Subject: [PATCH 153/377] Added project pattern for GitLab provider to be able to filter projects on more granular level. Signed-off-by: bnechyporenko --- .../catalog-backend-module-gitlab/src/providers/config.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend-module-gitlab/src/providers/config.ts b/plugins/catalog-backend-module-gitlab/src/providers/config.ts index a316ddc3c9..da2a7e0b8d 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/config.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/config.ts @@ -31,8 +31,9 @@ function readGitlabConfig(id: string, config: Config): GitlabProviderConfig { const branch = config.getOptionalString('branch') ?? 'master'; const catalogFile = config.getOptionalString('entityFilename') ?? 'catalog-info.yaml'; - const projectPattern = - new RegExp(config.getString('projectPattern')) ?? /[\s\S]*/; + const projectPattern = new RegExp( + config.getString('projectPattern') ?? /[\s\S]*/, + ); return { id, From 77e84d6ea4113d664cb45caa7967f645dcc2bd67 Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Tue, 2 Aug 2022 13:18:03 +0200 Subject: [PATCH 154/377] Added project pattern for GitLab provider to be able to filter projects on more granular level. Signed-off-by: bnechyporenko --- .../catalog-backend-module-gitlab/src/providers/config.test.ts | 2 ++ plugins/catalog-backend-module-gitlab/src/providers/config.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-gitlab/src/providers/config.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/config.test.ts index 892ce5f25c..cb36e5166c 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/config.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/config.test.ts @@ -52,6 +52,7 @@ describe('config', () => { branch: 'master', host: 'host', catalogFile: 'catalog-info.yaml', + projectPattern: /[\s\S]*/, }), ); }); @@ -81,6 +82,7 @@ describe('config', () => { branch: 'not-master', host: 'host', catalogFile: 'custom-file.yaml', + projectPattern: /[\s\S]*/, }), ); }); diff --git a/plugins/catalog-backend-module-gitlab/src/providers/config.ts b/plugins/catalog-backend-module-gitlab/src/providers/config.ts index da2a7e0b8d..392922860f 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/config.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/config.ts @@ -32,7 +32,7 @@ function readGitlabConfig(id: string, config: Config): GitlabProviderConfig { const catalogFile = config.getOptionalString('entityFilename') ?? 'catalog-info.yaml'; const projectPattern = new RegExp( - config.getString('projectPattern') ?? /[\s\S]*/, + config.getOptionalString('projectPattern') ?? /[\s\S]*/, ); return { From b169ddac671abcb583dafc010792b47a4462e979 Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Tue, 2 Aug 2022 13:23:12 +0200 Subject: [PATCH 155/377] Added project pattern for GitLab provider to be able to filter projects on more granular level. Signed-off-by: bnechyporenko --- docs/integrations/gitlab/discovery.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/integrations/gitlab/discovery.md b/docs/integrations/gitlab/discovery.md index aad73c8209..df5aadcab4 100644 --- a/docs/integrations/gitlab/discovery.md +++ b/docs/integrations/gitlab/discovery.md @@ -24,6 +24,7 @@ catalog: branch: main # Optional. Uses `master` as default group: example-group # Optional. Group and subgroup (if needed) to look for repositories. If not present the whole project will be scanned entityFilename: catalog-info.yaml # Optional. Defaults to `catalog-info.yaml` + projectPattern: /[\s\S]*/ # Optional. Filters found projects based on provided patter. Defaults to `/[\s\S]*/`, what means to not filter anything ``` As this provider is not one of the default providers, you will first need to install From c2dca67d24cd5b485e3be44ccf0dd7aac9bdec4c Mon Sep 17 00:00:00 2001 From: kielosz Date: Tue, 2 Aug 2022 13:40:39 +0200 Subject: [PATCH 156/377] Add api-report Signed-off-by: kielosz --- plugins/cost-insights-common/api-report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/cost-insights-common/api-report.md b/plugins/cost-insights-common/api-report.md index a5f7045854..8d9e2d030d 100644 --- a/plugins/cost-insights-common/api-report.md +++ b/plugins/cost-insights-common/api-report.md @@ -44,6 +44,7 @@ export interface Entity { // @public (undocumented) export type Group = { id: string; + name?: string; }; // @public (undocumented) From 76b4026d032060b356b44aea6582c0c003a030af Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Tue, 2 Aug 2022 13:54:54 +0200 Subject: [PATCH 157/377] Added project pattern for GitLab provider to be able to filter projects on more granular level. Signed-off-by: bnechyporenko --- .../GitlabDiscoveryEntityProvider.test.ts | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.test.ts index dc70772d3d..d4a13cf81e 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.test.ts @@ -227,4 +227,113 @@ describe('GitlabDiscoveryEntityProvider', () => { entities: expectedEntities, }); }); + + it('should filter found projects based on a provided project pattern', async () => { + const config = new ConfigReader({ + integrations: { + gitlab: [ + { + host: 'test-gitlab', + apiBaseUrl: 'https://api.gitlab.example/api/v4', + token: '1234', + }, + ], + }, + catalog: { + providers: { + gitlab: { + 'test-id': { + host: 'test-gitlab', + projectPattern: 'john/', + }, + }, + }, + }, + }); + const schedule = new PersistingTaskRunner(); + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + }; + const provider = GitlabDiscoveryEntityProvider.fromConfig(config, { + logger, + schedule, + })[0]; + + server.use( + rest.get( + `https://api.gitlab.example/api/v4/projects`, + (_req, res, ctx) => { + const response = [ + { + id: 123, + default_branch: 'master', + archived: false, + last_activity_at: new Date().toString(), + web_url: 'https://api.gitlab.example/test-group/test-repo', + path_with_namespace: 'test-group/test-repo', + }, + { + id: 124, + default_branch: 'master', + archived: false, + last_activity_at: new Date().toString(), + web_url: 'https://api.gitlab.example/john/example', + path_with_namespace: 'john/example', + }, + ]; + return res(ctx.json(response)); + }, + ), + rest.head( + 'https://api.gitlab.example/api/v4/projects/test-group%2Ftest-repo/repository/files/catalog-info.yaml', + (req, res, ctx) => { + if (req.url.searchParams.get('ref') === 'master') { + return res(ctx.status(200)); + } + return res(ctx.status(404, 'Not Found')); + }, + ), + rest.head( + 'https://api.gitlab.example/api/v4/projects/john%2Fexample/repository/files/catalog-info.yaml', + (req, res, ctx) => { + if (req.url.searchParams.get('ref') === 'master') { + return res(ctx.status(200)); + } + return res(ctx.status(404, 'Not Found')); + }, + ), + ); + + await provider.connect(entityProviderConnection); + + await provider.refresh(logger); + + expect(entityProviderConnection.applyMutation).toBeCalledWith({ + type: 'full', + entities: [ + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Location', + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://api.gitlab.example/john/example/-/blob/master/catalog-info.yaml', + 'backstage.io/managed-by-origin-location': + 'url:https://api.gitlab.example/john/example/-/blob/master/catalog-info.yaml', + }, + name: 'generated-2045212e5b3e9e6bacf51cec709e362282e3cda9', + }, + spec: { + presence: 'optional', + target: + 'https://api.gitlab.example/john/example/-/blob/master/catalog-info.yaml', + type: 'url', + }, + }, + locationKey: 'GitlabDiscoveryEntityProvider:test-id', + }, + ], + }); + }); }); From 77f143585c84c8a155e7f2c0771a5ddaa5e1a38a Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Tue, 2 Aug 2022 14:53:13 +0200 Subject: [PATCH 158/377] Incorporated a feedback Signed-off-by: bnechyporenko --- .changeset/cool-months-tickle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/cool-months-tickle.md b/.changeset/cool-months-tickle.md index 41ee67db33..3c3370216e 100644 --- a/.changeset/cool-months-tickle.md +++ b/.changeset/cool-months-tickle.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-catalog-backend-module-gitlab': minor +'@backstage/plugin-catalog-backend-module-gitlab': patch --- Enhancing GitLab provider with filtering projects by pattern RegExp From 4890dc302563cfeafdedbd36d43db26eb00cf2ba Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Tue, 2 Aug 2022 15:05:17 +0200 Subject: [PATCH 159/377] Comment the new option Just update the changeset description a little bit Signed-off-by: Ben Lambert --- .changeset/cool-months-tickle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/cool-months-tickle.md b/.changeset/cool-months-tickle.md index 3c3370216e..281c74bab0 100644 --- a/.changeset/cool-months-tickle.md +++ b/.changeset/cool-months-tickle.md @@ -10,7 +10,7 @@ providers: stg: host: gitlab.stg.company.io branch: main - projectPattern: john/ <== new option + projectPattern: 'john/' # new option entityFilename: template.yaml ``` From 039999d2e898c3bf882d3e51202753c356bcc902 Mon Sep 17 00:00:00 2001 From: Brad Reed Date: Tue, 2 Aug 2022 15:30:46 +0200 Subject: [PATCH 160/377] Update .changeset/flat-zebras-draw.md Signed-off-by: Brad Reed --- .changeset/flat-zebras-draw.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/flat-zebras-draw.md b/.changeset/flat-zebras-draw.md index 338ee9ca27..ba82f156ef 100644 --- a/.changeset/flat-zebras-draw.md +++ b/.changeset/flat-zebras-draw.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-kubernetes': minor +'@backstage/plugin-kubernetes': patch --- Adds namespace column to Kubernetes error reporting table From f7607f9d85b3922ef709e401deb59a394550bfdc Mon Sep 17 00:00:00 2001 From: Otto Nordander Date: Thu, 21 Jul 2022 14:23:29 +0200 Subject: [PATCH 161/377] feat: add BitbucketServerEntityProvider (new plugin) Adds a new entity provider `BitbucketServerEntityProvider` as a new plugin. Signed-off-by: Otto Nordander --- .changeset/stupid-carpets-remain.md | 51 +++ .../.eslintrc.js | 1 + .../CHANGELOG.md | 1 + .../README.md | 9 + .../api-report.md | 104 +++++ .../config.d.ts | 80 ++++ .../package.json | 56 +++ .../src/index.ts | 31 ++ .../src/lib/BitbucketServerClient.test.ts | 182 +++++++++ .../src/lib/BitbucketServerClient.ts | 158 ++++++++ .../src/lib/index.ts | 25 ++ .../src/lib/types.ts | 35 ++ .../BitbucketServerEntityProvider.test.ts | 368 ++++++++++++++++++ .../BitbucketServerEntityProvider.ts | 200 ++++++++++ ...itbucketServerEntityProviderConfig.test.ts | 122 ++++++ .../BitbucketServerEntityProviderConfig.ts | 72 ++++ .../BitbucketServerLocationParser.ts | 42 ++ .../src/providers/index.ts | 18 + .../src/setupTests.ts | 17 + 19 files changed, 1572 insertions(+) create mode 100644 .changeset/stupid-carpets-remain.md create mode 100644 plugins/catalog-backend-module-bitbucket-server/.eslintrc.js create mode 100644 plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md create mode 100644 plugins/catalog-backend-module-bitbucket-server/README.md create mode 100644 plugins/catalog-backend-module-bitbucket-server/api-report.md create mode 100644 plugins/catalog-backend-module-bitbucket-server/config.d.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/package.json create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/index.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.test.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/lib/index.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/lib/types.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.test.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProviderConfig.test.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProviderConfig.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerLocationParser.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/providers/index.ts create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/setupTests.ts diff --git a/.changeset/stupid-carpets-remain.md b/.changeset/stupid-carpets-remain.md new file mode 100644 index 0000000000..c0b4a54bfd --- /dev/null +++ b/.changeset/stupid-carpets-remain.md @@ -0,0 +1,51 @@ +--- +'@backstage/plugin-catalog-backend-module-bitbucket-server': minor +--- + +Add new plugin catalog-backend-module-bitbucket-server which adds the `BitbucketServerEntityProvider`. + +The entity provider is meant as a replacement for the `BitbucketDiscoveryProcessor` to be used with Bitbucket Server (Bitbucket Cloud already has a replacement). + +**Before:** + +```typescript +// packages/backend/src/plugins/catalog.ts +builder.addProcessor( + BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }), +); +``` + +```yaml +# app-config.yaml +catalog: + locations: + - type: bitbucket-discovery + target: 'https://bitbucket.mycompany.com/projects/*/repos/*/catalog-info.yaml +``` + +**After:** + +```typescript +// packages/backend/src/plugins/catalog.ts +builder.addEntityProvider( + BitbucketServerEntityProvider.fromConfig(env.config, { + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + }), +); +``` + +```yaml +# app-config.yaml +catalog: + providers: + bitbucketServer: + yourProviderId: # identifies your ingested dataset + catalogPath: /catalog-info.yaml # default value + filters: # optional + projectKey: '.*' # optional; RegExp + repoSlug: '.*' # optional; RegExp +``` diff --git a/plugins/catalog-backend-module-bitbucket-server/.eslintrc.js b/plugins/catalog-backend-module-bitbucket-server/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md new file mode 100644 index 0000000000..721ebf9ec1 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -0,0 +1 @@ +# @backstage/plugin-catalog-backend-module-bitbucket-server diff --git a/plugins/catalog-backend-module-bitbucket-server/README.md b/plugins/catalog-backend-module-bitbucket-server/README.md new file mode 100644 index 0000000000..aed8be25ec --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/README.md @@ -0,0 +1,9 @@ +# Catalog Backend Module for Bitbucket Server + +This is an extension module to the catalog-backend plugin, +providing extensions targeted at Bitbucket Server offerings. + +## Getting started + +See [Backstage documentation](https://backstage.io/docs/integrations/bitbucketServer/discovery) +for details on how to install and configure the plugin. diff --git a/plugins/catalog-backend-module-bitbucket-server/api-report.md b/plugins/catalog-backend-module-bitbucket-server/api-report.md new file mode 100644 index 0000000000..b087da6746 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/api-report.md @@ -0,0 +1,104 @@ +## API Report File for "@backstage/plugin-catalog-backend-module-bitbucket-server" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { BitbucketServerIntegrationConfig } from '@backstage/integration'; +import { Config } from '@backstage/config'; +import { Entity } from '@backstage/catalog-model'; +import { EntityProvider } from '@backstage/plugin-catalog-backend'; +import { EntityProviderConnection } from '@backstage/plugin-catalog-backend'; +import { LocationSpec } from '@backstage/plugin-catalog-backend'; +import { Logger } from 'winston'; +import { TaskRunner } from '@backstage/backend-tasks'; + +// @public +export class BitbucketServerClient { + constructor(options: { config: BitbucketServerIntegrationConfig }); + // (undocumented) + static fromConfig(options: { + config: BitbucketServerIntegrationConfig; + }): BitbucketServerClient; + // (undocumented) + getRepository(options: { + projectKey: string; + repo: string; + }): Promise; + // (undocumented) + listProjects(options: { + listOptions?: BitbucketServerListOptions; + }): Promise>; + // (undocumented) + listRepositories(options: { + projectKey: string; + listOptions?: BitbucketServerListOptions; + }): Promise>; + // (undocumented) + resolvePath(options: { projectKey: string; repo: string; path: string }): { + path: string; + }; +} + +// @public +export class BitbucketServerEntityProvider implements EntityProvider { + // (undocumented) + connect(connection: EntityProviderConnection): Promise; + // (undocumented) + static fromConfig( + config: Config, + options: { + logger: Logger; + schedule: TaskRunner; + parser?: BitbucketServerLocationParser; + }, + ): BitbucketServerEntityProvider[]; + // (undocumented) + getProviderName(): string; + // (undocumented) + refresh(logger: Logger): Promise; +} + +// @public (undocumented) +export type BitbucketServerListOptions = { + [key: string]: number | undefined; + limit?: number | undefined; + start?: number | undefined; +}; + +// @public +export type BitbucketServerLocationParser = (options: { + client: BitbucketServerClient; + location: LocationSpec; + logger: Logger; +}) => AsyncIterable; + +// @public (undocumented) +export type BitbucketServerPagedResponse = { + size: number; + limit: number; + start: number; + isLastPage: boolean; + values: T[]; + nextPageStart: number; +}; + +// @public (undocumented) +export type BitbucketServerProject = { + key: string; +}; + +// @public (undocumented) +export type BitbucketServerRepository = { + project: { + key: string; + }; + slug: string; + description: string; + links: Record< + string, + { + href: string; + }[] + >; +}; +``` diff --git a/plugins/catalog-backend-module-bitbucket-server/config.d.ts b/plugins/catalog-backend-module-bitbucket-server/config.d.ts new file mode 100644 index 0000000000..d8a09c92a4 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/config.d.ts @@ -0,0 +1,80 @@ +/* + * 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 { + catalog?: { + /** + * List of provider-specific options and attributes + */ + providers?: { + /** + * BitbucketServerEntityProvider configuration + * + * Uses "default" as default id for the single config variant. + */ + bitbucketServer?: + | { + /** + * (Optional) Path to the catalog file. Default to "/catalog-info.yaml". + * @visibility frontend + */ + catalogPath?: string; + /** + * (Optional) Filters applied to discovered catalog files in repositories. + * @visibility frontend + */ + filters?: { + /** + * (Optional) Filter for the repository slug. + * @visibility frontend + */ + repoSlug?: RegExp; + /** + * (Optional) Filter for the project key. + * @visibility frontend + */ + projectKey?: RegExp; + }; + } + | Record< + string, + { + /** + * (Optional) Path to the catalog file. Default to "/catalog-info.yaml". + * @visibility frontend + */ + catalogPath?: string; + /** + * (Optional) Filters applied to discovered catalog files in repositories. + * @visibility frontend + */ + filters?: { + /** + * (Optional) Filter for the repository slug. + * @visibility frontend + */ + repoSlug?: RegExp; + /** + * (Optional) Filter for the project key. + * @visibility frontend + */ + projectKey?: RegExp; + }; + } + >; + }; + }; +} diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json new file mode 100644 index 0000000000..621f7cd87b --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -0,0 +1,56 @@ +{ + "name": "@backstage/plugin-catalog-backend-module-bitbucket-server", + "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-module" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/catalog-backend-module-bitbucket-server" + }, + "keywords": [ + "backstage" + ], + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/catalog-model": "^1.0.1", + "@backstage/config": "^1.0.0", + "@backstage/errors": "^1.0.0", + "@backstage/integration": "^1.3.0-next.0", + "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "cross-fetch": "^3.1.5", + "uuid": "^8.0.0", + "winston": "^3.2.1" + }, + "devDependencies": { + "@backstage/backend-test-utils": "^0.1.27-next.0", + "@backstage/cli": "^0.18.1-next.0", + "msw": "^0.35.0" + }, + "files": [ + "dist", + "config.d.ts" + ], + "configSchema": "config.d.ts" +} diff --git a/plugins/catalog-backend-module-bitbucket-server/src/index.ts b/plugins/catalog-backend-module-bitbucket-server/src/index.ts new file mode 100644 index 0000000000..34ac3a9966 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/index.ts @@ -0,0 +1,31 @@ +/* + * 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. + */ + +/** + * A Backstage catalog backend module that helps integrate towards Bitbucket Server + * + * @packageDocumentation + */ + +export { BitbucketServerClient } from './lib'; +export type { + BitbucketServerProject, + BitbucketServerRepository, + BitbucketServerPagedResponse, + BitbucketServerListOptions, +} from './lib'; +export { BitbucketServerEntityProvider } from './providers'; +export type { BitbucketServerLocationParser } from './providers'; diff --git a/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.test.ts b/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.test.ts new file mode 100644 index 0000000000..6b8043409f --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.test.ts @@ -0,0 +1,182 @@ +/* + * 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 { BitbucketServerIntegrationConfig } from '@backstage/integration'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { + BitbucketServerClient, + BitbucketServerPagedResponse, + paginated, +} from './BitbucketServerClient'; +import { BitbucketServerProject, BitbucketServerRepository } from './types'; + +const server = setupServer(); + +describe('BitbucketServerClient', () => { + const config: BitbucketServerIntegrationConfig = { + host: 'bitbucket.mycompany.com', + apiBaseUrl: 'https://bitbucket.mycompany.com/api/rest/1.0', + username: 'test-user', + password: 'test-pw', + }; + const client = BitbucketServerClient.fromConfig({ + config: config, + }); + + beforeAll(() => server.listen({ onUnhandledRequest: 'error' })); + afterAll(() => server.close()); + afterEach(() => server.resetHandlers()); + + it('listProjects', async () => { + server.use( + rest.get(`${config.apiBaseUrl}/projects`, (req, res, ctx) => { + if ( + req.headers.get('authorization') !== 'Basic dGVzdC11c2VyOnRlc3QtcHc=' + ) { + return res(ctx.status(400)); + } + const response: BitbucketServerPagedResponse = { + size: 1, + limit: 25, + isLastPage: true, + start: 0, + nextPageStart: 0, + values: [ + { + key: 'test-project', + }, + ], + }; + return res(ctx.json(response)); + }), + ); + + const projects = paginated(options => + client.listProjects({ listOptions: options }), + ); + + const results = []; + for await (const project of projects) { + results.push(project); + } + + expect(results).toHaveLength(1); + expect(results[0].key).toEqual('test-project'); + }); + + it('listRepositories', async () => { + server.use( + rest.get( + `${config.apiBaseUrl}/projects/test-project/repos`, + (req, res, ctx) => { + if ( + req.headers.get('authorization') !== + 'Basic dGVzdC11c2VyOnRlc3QtcHc=' + ) { + return res(ctx.status(400)); + } + const response: BitbucketServerPagedResponse = + { + size: 1, + limit: 25, + isLastPage: true, + start: 0, + nextPageStart: 0, + values: [ + { + project: { + key: 'test-project', + }, + slug: 'test-repository', + description: 'A test repository.', + links: { + self: [ + { + href: 'https://bitbucket.mycompany.com/projects/test-project', + }, + ], + }, + }, + ], + }; + return res(ctx.json(response)); + }, + ), + ); + + const repos = paginated(options => + client.listRepositories({ + projectKey: 'test-project', + listOptions: options, + }), + ); + + const results = []; + for await (const repo of repos) { + results.push(repo); + } + + expect(results).toHaveLength(1); + expect(results[0].project.key).toEqual('test-project'); + expect(results[0].slug).toEqual('test-repository'); + expect(results[0].links.self[0].href).toEqual( + 'https://bitbucket.mycompany.com/projects/test-project', + ); + }); + + it('getRepository', async () => { + server.use( + rest.get( + `${config.apiBaseUrl}/projects/test-project/repos/test-repo`, + (req, res, ctx) => { + if ( + req.headers.get('authorization') !== + 'Basic dGVzdC11c2VyOnRlc3QtcHc=' + ) { + return res(ctx.status(400)); + } + const response: BitbucketServerRepository = { + project: { + key: 'test-project', + }, + slug: 'test-repo', + description: 'A test repository.', + links: { + self: [ + { + href: 'https://bitbucket.mycompany.com/projects/test-project', + }, + ], + }, + }; + + return res(ctx.json(response)); + }, + ), + ); + + const repo = await client.getRepository({ + projectKey: 'test-project', + repo: 'test-repo', + }); + expect(repo.project.key).toEqual('test-project'); + expect(repo.slug).toEqual('test-repo'); + expect(repo.links.self[0].href).toEqual( + 'https://bitbucket.mycompany.com/projects/test-project', + ); + }); +}); diff --git a/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.ts b/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.ts new file mode 100644 index 0000000000..fa233c6863 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.ts @@ -0,0 +1,158 @@ +/* + * 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 { fetch, Request } from 'cross-fetch'; +import { + BitbucketServerIntegrationConfig, + getBitbucketServerRequestOptions, +} from '@backstage/integration'; +import { BitbucketServerProject, BitbucketServerRepository } from './types'; + +/** + * A client for interacting with a Bitbucket Server instance + * + * @public + */ +export class BitbucketServerClient { + private readonly config: BitbucketServerIntegrationConfig; + + static fromConfig(options: { + config: BitbucketServerIntegrationConfig; + }): BitbucketServerClient { + return new BitbucketServerClient(options); + } + + constructor(options: { config: BitbucketServerIntegrationConfig }) { + this.config = options.config; + } + + async listProjects(options: { + listOptions?: BitbucketServerListOptions; + }): Promise> { + return this.pagedRequest( + `${this.config.apiBaseUrl}/projects`, + options.listOptions, + ); + } + + async listRepositories(options: { + projectKey: string; + listOptions?: BitbucketServerListOptions; + }): Promise> { + return this.pagedRequest( + `${this.config.apiBaseUrl}/projects/${encodeURIComponent( + options.projectKey, + )}/repos`, + options.listOptions, + ); + } + + async getRepository(options: { + projectKey: string; + repo: string; + }): Promise { + const request = `${this.config.apiBaseUrl}/projects/${options.projectKey}/repos/${options.repo}`; + const response = await fetch( + request, + getBitbucketServerRequestOptions(this.config), + ); + return response.json(); + } + + resolvePath(options: { projectKey: string; repo: string; path: string }): { + path: string; + } { + const base = new URL(this.config.apiBaseUrl || ''); + + return { + path: `${base.protocol}//${base.host}/projects/${options.projectKey}/repos/${options.repo}${options.path}`, + }; + } + + private async pagedRequest( + endpoint: string, + options?: BitbucketServerListOptions, + ): Promise> { + const request = new URL(endpoint); + for (const key in options) { + if (options[key]) { + request.searchParams.append(key, options[key]!.toString()); + } + } + return this.getTypeMapped(request); + } + + private async getTypeMapped(url: URL): Promise { + return this.get(url).then((response: Response) => { + return response.json() as Promise; + }); + } + + private async get(url: URL): Promise { + return this.request(new Request(url.toString(), { method: 'GET' })); + } + + private async request(req: Request): Promise { + return fetch(req, getBitbucketServerRequestOptions(this.config)).then( + (response: Response) => { + if (!response.ok) { + throw new Error( + `Unexpected response for ${req.method} ${req.url}. Expected 200 but got ${response.status} - ${response.statusText}`, + ); + } + return response; + }, + ); + } +} + +/** + * @public + */ +export type BitbucketServerListOptions = { + [key: string]: number | undefined; + limit?: number | undefined; + start?: number | undefined; +}; + +/** + * @public + */ +export type BitbucketServerPagedResponse = { + size: number; + limit: number; + start: number; + isLastPage: boolean; + values: T[]; + nextPageStart: number; +}; + +export async function* paginated( + request: ( + options: BitbucketServerListOptions, + ) => Promise>, + options?: BitbucketServerListOptions, +) { + const opts = options || { start: 0 }; + let res; + do { + res = await request(opts); + opts.start = res.nextPageStart; + for (const item of res.values) { + yield item; + } + } while (!res.isLastPage); +} diff --git a/plugins/catalog-backend-module-bitbucket-server/src/lib/index.ts b/plugins/catalog-backend-module-bitbucket-server/src/lib/index.ts new file mode 100644 index 0000000000..8b72c9335b --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/lib/index.ts @@ -0,0 +1,25 @@ +/* + * 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 { BitbucketServerClient, paginated } from './BitbucketServerClient'; +export type { + BitbucketServerPagedResponse, + BitbucketServerListOptions, +} from './BitbucketServerClient'; +export type { + BitbucketServerRepository, + BitbucketServerProject, +} from './types'; diff --git a/plugins/catalog-backend-module-bitbucket-server/src/lib/types.ts b/plugins/catalog-backend-module-bitbucket-server/src/lib/types.ts new file mode 100644 index 0000000000..67a10abea7 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/lib/types.ts @@ -0,0 +1,35 @@ +/* + * 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. + */ + +/** @public */ +export type BitbucketServerRepository = { + project: { + key: string; + }; + slug: string; + description: string; + links: Record< + string, + { + href: string; + }[] + >; +}; + +/** @public */ +export type BitbucketServerProject = { + key: string; +}; diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.test.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.test.ts new file mode 100644 index 0000000000..1ebf7c95a7 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.test.ts @@ -0,0 +1,368 @@ +/* + * 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 { getVoidLogger } from '@backstage/backend-common'; +import { TaskInvocationDefinition, TaskRunner } from '@backstage/backend-tasks'; +import { ConfigReader } from '@backstage/config'; +import { EntityProviderConnection } from '@backstage/plugin-catalog-backend'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import { BitbucketServerEntityProvider } from './BitbucketServerEntityProvider'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { BitbucketServerPagedResponse } from '../lib/BitbucketServerClient'; + +class PersistingTaskRunner implements TaskRunner { + private tasks: TaskInvocationDefinition[] = []; + + getTasks() { + return this.tasks; + } + + run(task: TaskInvocationDefinition): Promise { + this.tasks.push(task); + return Promise.resolve(undefined); + } +} + +type Project = { + key: string; + repos: [string]; +}; + +function pagedResponse(values: any): BitbucketServerPagedResponse { + return { + values: values, + isLastPage: true, + } as BitbucketServerPagedResponse; +} + +const logger = getVoidLogger(); + +const server = setupServer(); + +function setupStubs(projects: Project[], baseUrl: string) { + // Stub projects + server.use( + rest.get(`${baseUrl}/rest/api/1.0/projects`, (_, res, ctx) => { + return res( + ctx.json( + pagedResponse( + projects.map(p => { + return { key: p.key }; + }), + ), + ), + ); + }), + ); + + for (const project of projects) { + // Stub list repositories + server.use( + rest.get( + `${baseUrl}/rest/api/1.0/projects/${project.key}/repos`, + (_, res, ctx) => { + const response = []; + for (const repo of project.repos) { + response.push({ + slug: repo, + links: { + self: [ + { + href: `${baseUrl}/projects/${project.key}/repos/${repo}/browse`, + }, + ], + }, + }); + } + return res(ctx.json(pagedResponse(response))); + }, + ), + ); + } +} + +describe('BitbucketServerEntityProvider', () => { + setupRequestMockHandlers(server); + afterEach(() => jest.resetAllMocks()); + + it('no provider config', () => { + const schedule = new PersistingTaskRunner(); + const config = new ConfigReader({}); + const providers = BitbucketServerEntityProvider.fromConfig(config, { + logger, + schedule, + }); + + expect(providers).toHaveLength(0); + }); + + it('rejects no matching integration', () => { + const schedule = new PersistingTaskRunner(); + const config = new ConfigReader({ + catalog: { + providers: { + bitbucketServer: { + mainProvider: { + host: 'bitbucket.mycompany.com', + }, + }, + }, + }, + }); + expect(() => + BitbucketServerEntityProvider.fromConfig(config, { logger, schedule }), + ).toThrow(/bitbucket\.mycompany\.com/); + }); + + it('single simple provider config', () => { + const schedule = new PersistingTaskRunner(); + const config = new ConfigReader({ + catalog: { + providers: { + bitbucketServer: { + host: 'bitbucket.mycompany.com', + }, + }, + }, + integrations: { + bitbucketServer: [ + { + host: 'bitbucket.mycompany.com', + }, + ], + }, + }); + const providers = BitbucketServerEntityProvider.fromConfig(config, { + logger, + schedule, + }); + + expect(providers).toHaveLength(1); + expect(providers[0].getProviderName()).toEqual( + 'bitbucketServer-provider:default', + ); + }); + + it('multiple provider configs', () => { + const schedule = new PersistingTaskRunner(); + const config = new ConfigReader({ + integrations: { + bitbucketServer: [ + { + host: 'bitbucket.mycompany.com', + }, + ], + }, + catalog: { + providers: { + bitbucketServer: { + mainProvider: { + host: 'bitbucket.mycompany.com', + }, + secondary: { + host: 'bitbucket.mycompany.com', + }, + }, + }, + }, + }); + const providers = BitbucketServerEntityProvider.fromConfig(config, { + logger, + schedule, + }); + + expect(providers).toHaveLength(2); + expect(providers[0].getProviderName()).toEqual( + 'bitbucketServer-provider:mainProvider', + ); + expect(providers[1].getProviderName()).toEqual( + 'bitbucketServer-provider:secondary', + ); + }); + + it('apply full update on scheduled execution with filters', async () => { + const host = 'bitbucket.mycompany.com'; + const config = new ConfigReader({ + integrations: { + bitbucketServer: [ + { + host: host, + }, + ], + }, + catalog: { + providers: { + bitbucketServer: { + mainProvider: { + host: host, + filters: { + projectKey: 'project-.*', + repoSlug: 'repo-.*', + }, + }, + }, + }, + }, + }); + const schedule = new PersistingTaskRunner(); + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + }; + const provider = BitbucketServerEntityProvider.fromConfig(config, { + logger, + schedule, + })[0]; + expect(provider.getProviderName()).toEqual( + 'bitbucketServer-provider:mainProvider', + ); + + setupStubs( + [ + { key: 'project-test', repos: ['repo-test'] }, + { key: 'other-project', repos: ['other-repo'] }, + ], + `https://${host}`, + ); + await provider.connect(entityProviderConnection); + + const taskDef = schedule.getTasks()[0]; + expect(taskDef.id).toEqual('bitbucketServer-provider:mainProvider:refresh'); + await (taskDef.fn as () => Promise)(); + + const url = `https://${host}/projects/project-test/repos/repo-test/browse/catalog-info.yaml`; + const expectedEntities = [ + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Location', + metadata: { + annotations: { + 'backstage.io/managed-by-location': `url:${url}`, + 'backstage.io/managed-by-origin-location': `url:${url}`, + }, + name: 'generated-77f4323822420990f8c3e3c981d38c2dec4ae3a6', + }, + spec: { + presence: 'optional', + target: `${url}`, + type: 'url', + }, + }, + locationKey: 'bitbucketServer-provider:mainProvider', + }, + ]; + + expect(entityProviderConnection.applyMutation).toBeCalledTimes(1); + expect(entityProviderConnection.applyMutation).toBeCalledWith({ + type: 'full', + entities: expectedEntities, + }); + }); + + it('apply full update on scheduled execution without filters', async () => { + const host = 'bitbucket.mycompany.com'; + const config = new ConfigReader({ + integrations: { + bitbucketServer: [ + { + host: host, + }, + ], + }, + catalog: { + providers: { + bitbucketServer: { + mainProvider: { + host: host, + }, + }, + }, + }, + }); + const schedule = new PersistingTaskRunner(); + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + }; + const provider = BitbucketServerEntityProvider.fromConfig(config, { + logger, + schedule, + })[0]; + expect(provider.getProviderName()).toEqual( + 'bitbucketServer-provider:mainProvider', + ); + + setupStubs( + [ + { key: 'project-test', repos: ['repo-test'] }, + { key: 'other-project', repos: ['other-repo'] }, + ], + `https://${host}`, + ); + await provider.connect(entityProviderConnection); + + const taskDef = schedule.getTasks()[0]; + expect(taskDef.id).toEqual('bitbucketServer-provider:mainProvider:refresh'); + await (taskDef.fn as () => Promise)(); + + const expectedEntities = [ + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Location', + metadata: { + annotations: { + 'backstage.io/managed-by-location': `url:https://${host}/projects/project-test/repos/repo-test/browse/catalog-info.yaml`, + 'backstage.io/managed-by-origin-location': `url:https://${host}/projects/project-test/repos/repo-test/browse/catalog-info.yaml`, + }, + name: 'generated-77f4323822420990f8c3e3c981d38c2dec4ae3a6', + }, + spec: { + presence: 'optional', + target: `https://${host}/projects/project-test/repos/repo-test/browse/catalog-info.yaml`, + type: 'url', + }, + }, + locationKey: 'bitbucketServer-provider:mainProvider', + }, + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Location', + metadata: { + annotations: { + 'backstage.io/managed-by-location': `url:https://${host}/projects/other-project/repos/other-repo/browse/catalog-info.yaml`, + 'backstage.io/managed-by-origin-location': `url:https://${host}/projects/other-project/repos/other-repo/browse/catalog-info.yaml`, + }, + name: 'generated-d8d4944c30c2906dfee172ddda9537f9893b2c0f', + }, + spec: { + presence: 'optional', + target: `https://${host}/projects/other-project/repos/other-repo/browse/catalog-info.yaml`, + type: 'url', + }, + }, + locationKey: 'bitbucketServer-provider:mainProvider', + }, + ]; + + expect(entityProviderConnection.applyMutation).toBeCalledTimes(1); + expect(entityProviderConnection.applyMutation).toBeCalledWith({ + type: 'full', + entities: expectedEntities, + }); + }); +}); diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.ts new file mode 100644 index 0000000000..92cecf642a --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.ts @@ -0,0 +1,200 @@ +/* + * 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 { + EntityProvider, + EntityProviderConnection, +} from '@backstage/plugin-catalog-backend'; +import { Logger } from 'winston'; +import { Config } from '@backstage/config'; +import { TaskRunner } from '@backstage/backend-tasks'; +import * as uuid from 'uuid'; +import { + BitbucketServerLocationParser, + defaultBitbucketServerLocationParser, +} from './BitbucketServerLocationParser'; +import { + BitbucketServerIntegration, + ScmIntegrations, +} from '@backstage/integration'; +import { BitbucketServerClient, paginated } from '../lib'; +import { InputError } from '@backstage/errors'; +import { + BitbucketServerEntityProviderConfig, + readProviderConfigs, +} from './BitbucketServerEntityProviderConfig'; +import { Entity } from '@backstage/catalog-model'; + +/** + * Discovers catalog files located in Bitbucket Server. + * The provider will search your Bitbucket Server instance and register catalog files matching the configured path + * as Location entity and via following processing steps add all contained catalog entities. + * This can be useful as an alternative to static locations or manually adding things to the catalog. + * + * @public + */ +export class BitbucketServerEntityProvider implements EntityProvider { + private readonly integration: BitbucketServerIntegration; + private readonly config: BitbucketServerEntityProviderConfig; + private readonly parser: BitbucketServerLocationParser; + private readonly logger: Logger; + private readonly scheduleFn: () => Promise; + private connection?: EntityProviderConnection; + + static fromConfig( + config: Config, + options: { + logger: Logger; + schedule: TaskRunner; + parser?: BitbucketServerLocationParser; + }, + ): BitbucketServerEntityProvider[] { + const integrations = ScmIntegrations.fromConfig(config); + + return readProviderConfigs(config).map(providerConfig => { + const integration = integrations.bitbucketServer.byHost( + providerConfig.host, + ); + if (!integration) { + throw new InputError( + `No BitbucketServer integration found that matches host ${providerConfig.host}`, + ); + } + return new BitbucketServerEntityProvider( + providerConfig, + integration, + options.logger, + options.schedule, + options.parser, + ); + }); + } + + private constructor( + config: BitbucketServerEntityProviderConfig, + integration: BitbucketServerIntegration, + logger: Logger, + schedule: TaskRunner, + parser?: BitbucketServerLocationParser, + ) { + this.integration = integration; + this.config = config; + this.parser = parser || defaultBitbucketServerLocationParser; + this.logger = logger.child({ + target: this.getProviderName(), + }); + this.scheduleFn = this.createScheduleFn(schedule); + } + + private createScheduleFn(schedule: TaskRunner): () => Promise { + return async () => { + const taskId = `${this.getProviderName()}:refresh`; + return schedule.run({ + id: taskId, + fn: async () => { + const logger = this.logger.child({ + class: BitbucketServerEntityProvider.prototype.constructor.name, + taskId, + taskInstanceId: uuid.v4(), + }); + + try { + await this.refresh(logger); + } catch (error) { + logger.error(error); + } + }, + }); + }; + } + + /** {@inheritdoc @backstage/plugin-catalog-backend#EntityProvider.getProviderName} */ + getProviderName(): string { + return `bitbucketServer-provider:${this.config.id}`; + } + + /** {@inheritdoc @backstage/plugin-catalog-backend#EntityProvider.connect} */ + async connect(connection: EntityProviderConnection): Promise { + this.connection = connection; + await this.scheduleFn(); + } + + async refresh(logger: Logger) { + if (!this.connection) { + throw new Error('Not initialized'); + } + + logger.info('Discovering catalog files in Bitbucket Server repositories'); + + const entities = await this.findEntities(); + + await this.connection.applyMutation({ + type: 'full', + entities: entities.map(entity => ({ + locationKey: this.getProviderName(), + entity: entity, + })), + }); + + logger.info( + `Committed ${entities.length} entities for Bitbucket Server repositories`, + ); + } + + private async findEntities(): Promise { + const client = BitbucketServerClient.fromConfig({ + config: this.integration.config, + }); + const projects = paginated(options => + client.listProjects({ listOptions: options }), + ); + const result: Entity[] = []; + for await (const project of projects) { + if ( + this.config?.filters?.projectKey && + !this.config.filters.projectKey.test(project.key) + ) { + continue; + } + const repositories = paginated(options => + client.listRepositories({ + projectKey: project.key, + listOptions: options, + }), + ); + for await (const repository of repositories) { + if ( + this.config?.filters?.repoSlug && + !this.config.filters.repoSlug.test(repository.slug) + ) { + continue; + } + for await (const entity of this.parser({ + client, + logger: this.logger, + location: { + type: 'url', + target: `${repository.links.self[0].href}${this.config.catalogPath}`, + presence: 'optional', + }, + })) { + result.push(entity); + } + } + } + return result; + } +} diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProviderConfig.test.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProviderConfig.test.ts new file mode 100644 index 0000000000..712b26cbb0 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProviderConfig.test.ts @@ -0,0 +1,122 @@ +/* + * 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 { ConfigReader } from '@backstage/config'; +import { readProviderConfigs } from './BitbucketServerEntityProviderConfig'; + +describe('readProviderConfigs', () => { + afterEach(() => jest.resetAllMocks()); + + it('no provider config', () => { + const config = new ConfigReader({}); + const providerConfigs = readProviderConfigs(config); + + expect(providerConfigs).toHaveLength(0); + }); + + it('single simple provider config', () => { + const config = new ConfigReader({ + catalog: { + providers: { + bitbucketServer: { + host: 'bitbucket.mycompany.com', + }, + }, + }, + }); + const providerConfigs = readProviderConfigs(config); + + expect(providerConfigs).toHaveLength(1); + expect(providerConfigs[0]).toEqual({ + id: 'default', + catalogPath: '/catalog-info.yaml', + host: 'bitbucket.mycompany.com', + filters: { + projectKey: undefined, + repoSlug: undefined, + }, + }); + }); + + it('multiple provider configs', () => { + const config = new ConfigReader({ + catalog: { + providers: { + bitbucketServer: { + mainProvider: { + host: 'bitbucket.mycompany.com', + }, + secondaryProvider: { + host: 'bitbucket2.mycompany.com', + catalogPath: 'custom/path/catalog-info.yaml', + }, + }, + }, + }, + }); + const providerConfigs = readProviderConfigs(config); + + expect(providerConfigs).toHaveLength(2); + expect(providerConfigs[0]).toEqual({ + id: 'mainProvider', + catalogPath: '/catalog-info.yaml', + host: 'bitbucket.mycompany.com', + filters: { + projectKey: undefined, + repoSlug: undefined, + }, + }); + expect(providerConfigs[1]).toEqual({ + id: 'secondaryProvider', + catalogPath: 'custom/path/catalog-info.yaml', + host: 'bitbucket2.mycompany.com', + filters: { + projectKey: undefined, + repoSlug: undefined, + }, + }); + }); + + it('single provider config with filters', () => { + const config = new ConfigReader({ + catalog: { + providers: { + bitbucketServer: { + mainProvider: { + host: 'bitbucket.mycompany.com', + filters: { + projectKey: 'project1', + repoSlug: '.*', + }, + }, + }, + }, + }, + }); + const providerConfigs = readProviderConfigs(config); + + expect(providerConfigs).toHaveLength(1); + expect(providerConfigs[0]).toEqual({ + id: 'mainProvider', + catalogPath: '/catalog-info.yaml', + host: 'bitbucket.mycompany.com', + filters: { + projectKey: /project1/, + repoSlug: /.*/, + }, + }); + }); +}); diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProviderConfig.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProviderConfig.ts new file mode 100644 index 0000000000..8a3decab43 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProviderConfig.ts @@ -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 { Config } from '@backstage/config'; + +const DEFAULT_CATALOG_PATH = '/catalog-info.yaml'; +const DEFAULT_PROVIDER_ID = 'default'; + +export type BitbucketServerEntityProviderConfig = { + id: string; + host: string; + catalogPath: string; + filters?: { + projectKey?: RegExp; + repoSlug?: RegExp; + }; +}; + +export function readProviderConfigs( + config: Config, +): BitbucketServerEntityProviderConfig[] { + const providersConfig = config.getOptionalConfig( + 'catalog.providers.bitbucketServer', + ); + if (!providersConfig) { + return []; + } + if (providersConfig.has('host')) { + // simple/single config variant + return [readProviderConfig(DEFAULT_PROVIDER_ID, providersConfig)]; + } + + return providersConfig.keys().map(id => { + const providerConfig = providersConfig.getConfig(id); + + return readProviderConfig(id, providerConfig); + }); +} + +function readProviderConfig( + id: string, + config: Config, +): BitbucketServerEntityProviderConfig { + const host = config.getString('host'); + const catalogPath = + config.getOptionalString('catalogPath') ?? DEFAULT_CATALOG_PATH; + const projectKeyPattern = config.getOptionalString('filters.projectKey'); + const repoSlugPattern = config.getOptionalString('filters.repoSlug'); + + return { + id, + host, + catalogPath, + filters: { + projectKey: projectKeyPattern ? new RegExp(projectKeyPattern) : undefined, + repoSlug: repoSlugPattern ? new RegExp(repoSlugPattern) : undefined, + }, + }; +} diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerLocationParser.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerLocationParser.ts new file mode 100644 index 0000000000..7f6dae8872 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerLocationParser.ts @@ -0,0 +1,42 @@ +/* + * 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 { + LocationSpec, + locationSpecToLocationEntity, +} from '@backstage/plugin-catalog-backend'; +import { Entity } from '@backstage/catalog-model'; +import { Logger } from 'winston'; +import { BitbucketServerClient } from '../lib'; + +/** + * A custom callback that reacts to finding a location by yielding entities. + * Can be used for custom location/repository parsing logic. + * + * @public + */ +export type BitbucketServerLocationParser = (options: { + client: BitbucketServerClient; + location: LocationSpec; + logger: Logger; +}) => AsyncIterable; + +export const defaultBitbucketServerLocationParser = + async function* defaultBitbucketServerLocationParser(options: { + location: LocationSpec; + }) { + yield locationSpecToLocationEntity({ location: options.location }); + }; diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/index.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/index.ts new file mode 100644 index 0000000000..8c6430a558 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/index.ts @@ -0,0 +1,18 @@ +/* + * 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 { BitbucketServerEntityProvider } from './BitbucketServerEntityProvider'; +export type { BitbucketServerLocationParser } from './BitbucketServerLocationParser'; diff --git a/plugins/catalog-backend-module-bitbucket-server/src/setupTests.ts b/plugins/catalog-backend-module-bitbucket-server/src/setupTests.ts new file mode 100644 index 0000000000..d3232290a7 --- /dev/null +++ b/plugins/catalog-backend-module-bitbucket-server/src/setupTests.ts @@ -0,0 +1,17 @@ +/* + * 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. + */ + +export {}; From eadfa84a99a7ce8d7f501b467423ea4716fd7b71 Mon Sep 17 00:00:00 2001 From: Otto Nordander Date: Thu, 21 Jul 2022 14:46:19 +0200 Subject: [PATCH 162/377] Add docs for plugin-catalog-backend-module-bitbucket-server Signed-off-by: Otto Nordander --- docs/integrations/bitbucket/discovery.md | 4 +- .../integrations/bitbucketServer/discovery.md | 114 ++++++++++++++++++ .../locations.md | 23 ++-- microsite/sidebars.json | 13 +- mkdocs.yml | 4 +- 5 files changed, 139 insertions(+), 19 deletions(-) create mode 100644 docs/integrations/bitbucketServer/discovery.md rename docs/integrations/{bitbucket => bitbucketServer}/locations.md (64%) diff --git a/docs/integrations/bitbucket/discovery.md b/docs/integrations/bitbucket/discovery.md index 285b7cc78b..15ede69a4a 100644 --- a/docs/integrations/bitbucket/discovery.md +++ b/docs/integrations/bitbucket/discovery.md @@ -41,7 +41,7 @@ And then add the processor to your catalog builder: ## Self-hosted Bitbucket Server To use the discovery processor with a self-hosted Bitbucket Server, you'll need -a Bitbucket integration [set up](locations.md) with a `BITBUCKET_TOKEN` and a +a Bitbucket integration [set up](../bitbucketServer/locations.md) with a `BITBUCKET_TOKEN` and a `BITBUCKET_API_BASE_URL`. Then you can add a location target to the catalog configuration: @@ -74,7 +74,7 @@ The target is composed of four parts: ## Bitbucket Cloud To use the discovery processor with Bitbucket Cloud, you'll need a Bitbucket -integration [set up](locations.md) with a `username` and an `appPassword`. Then +integration [set up](../bitbucketCloud/locations.md) with a `username` and an `appPassword`. Then you can add a location target to the catalog configuration: ```yaml diff --git a/docs/integrations/bitbucketServer/discovery.md b/docs/integrations/bitbucketServer/discovery.md new file mode 100644 index 0000000000..57e52d1dae --- /dev/null +++ b/docs/integrations/bitbucketServer/discovery.md @@ -0,0 +1,114 @@ +--- +id: discovery +title: Bitbucket Server Discovery +sidebar_label: Discovery +# prettier-ignore +description: Automatically discovering catalog entities from repositories in Bitbucket Server +--- + +The Bitbucket Server integration has a special entity provider for discovering +catalog files located in Bitbucket Server. +The provider will search your Bitbucket Server account and register catalog files matching the configured path +as Location entity and via following processing steps add all contained catalog entities. +This can be useful as an alternative to static locations or manually adding things to the catalog. + +## Installation + +You will have to add the entity provider in the catalog initialization code of your +backend. The provider is not installed by default, therefore you have to add a +dependency to `@backstage/plugin-catalog-backend-module-bitbucket-server` to your backend +package. + +```bash +# From your Backstage root directory +yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-bitbucket-server +``` + +And then add the entity provider to your catalog builder: + +```diff + // In packages/backend/src/plugins/catalog.ts ++ import { BitbucketServerEntityProvider } from '@backstage/plugin-catalog-backend-module-bitbucket-server'; + + export default async function createPlugin( + env: PluginEnvironment, + ): Promise { + const builder = await CatalogBuilder.create(env); ++ builder.addEntityProvider( ++ BitbucketServerEntityProvider.fromConfig(env.config, { ++ logger: env.logger, ++ schedule: env.scheduler.createScheduledTaskRunner({ ++ frequency: { minutes: 30 }, ++ timeout: { minutes: 3 }, ++ }), ++ }), ++ ); + + // [...] + } +``` + +## Configuration + +To use the entity provider, you'll need a [Bitbucket Server integration set up](locations.md). + +Additionally, you need to configure your entity provider instance(s): + +```yaml +# app-config.yaml + +catalog: + providers: + bitbucketServer: + yourProviderId: # identifies your ingested dataset + host: 'bitbucket.mycompany.com' + catalogPath: /catalog-info.yaml # default value + filters: # optional + projectKey: '^apis-.*$' # optional; RegExp + repoSlug: '^service-.*$' # optional; RegExp +``` + +- **host**: + The host of the Bitbucket Server instance, **note**: the host needs to registered as an integration as well, see [location](locations.md). +- **`catalogPath`** _(optional)_: + Default: `/catalog-info.yaml`. + Path where to look for `catalog-info.yaml` files. + When started with `/`, it is an absolute path from the repo root. +- **filters** _(optional)_: + - **`projectKey`** _(optional)_: + Regular expression used to filter results based on the project key. + - **repoSlug** _(optional)_: + Regular expression used to filter results based on the repo slug. + +## Custom location processing + +The Bitbucket Server Entity Provider will by default emit a location for each +matching repository. However, it is possible to override this functionality and take full control of how each +matching repository is processed. + +`BitbucketServerEntityProvider.fromConfig` takes an optional parameter +`options.parser` where you can set your own parser to be used for each matched +repository. + +```typescript +const provider = BitbucketServerEntityProvider.fromConfig(env.config, { + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + parser: async function* customLocationParser(options: { + location: LocationSpec, + client: BitbucketServerClient, + }) { + // Custom logic for interpreting the matching repository + // See defaultBitbucketServerLocationParser for an example + } +); +``` + +## Alternative + +_Deprecated!_ Please raise issues for use cases not covered by the entity provider. + +[You can use the `BitbucketDiscoveryProcessor`.](../bitbucket/discovery.md#self-hosted-bitbucket-server) diff --git a/docs/integrations/bitbucket/locations.md b/docs/integrations/bitbucketServer/locations.md similarity index 64% rename from docs/integrations/bitbucket/locations.md rename to docs/integrations/bitbucketServer/locations.md index 4fbb96bb94..7ff19b8b27 100644 --- a/docs/integrations/bitbucket/locations.md +++ b/docs/integrations/bitbucketServer/locations.md @@ -1,28 +1,25 @@ --- id: locations -title: Bitbucket Locations +title: Bitbucket Server Locations sidebar_label: Locations # prettier-ignore -description: Integrating source code stored in Bitbucket into the Backstage catalog +description: Integrating source code stored in Bitbucket Server into the Backstage catalog --- -The Bitbucket integration supports loading catalog entities from bitbucket.org (Bitbucket Cloud) -or Bitbucket Server. Entities can be added to +The Bitbucket Server integration supports loading catalog entities from Bitbucket Server. +Entities can be added to [static catalog configuration](../../features/software-catalog/configuration.md), or registered with the [catalog-import](https://github.com/backstage/backstage/tree/master/plugins/catalog-import) plugin. -## Bitbucket Cloud - -Please see [the Bitbucket Cloud documentation](../bitbucketCloud/locations.md). - -## Bitbucket Server +## Configuration ```yaml integrations: bitbucketServer: - - host: bitbucket.company.com + - host: bitbucket.mycompany.com + apiBaseUrl: https://bitbucket.mycompany.com/rest/api/1.0 token: ${BITBUCKET_SERVER_TOKEN} ``` @@ -32,6 +29,7 @@ or with Basic Auth integrations: bitbucketServer: - host: bitbucket.company.com + apiBaseUrl: https://bitbucket.mycompany.com/rest/api/1.0 username: ${BITBUCKET_SERVER_USERNAME} password: ${BITBUCKET_SERVER_PASSWORD} ``` @@ -40,13 +38,14 @@ Directly under the `bitbucketServer` key is a list of provider configurations, w you can list the Bitbucket Server providers you want to fetch data from. Each entry is a structure with the following elements: -- `host`: The host of the Bitbucket Server instance, e.g. `bitbucket.company.com`. +- `host`: The host of the Bitbucket Server instance, e.g. `bitbucket.mycompany.com`. - `token` (optional): - An [personal access token](https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html) + A [personal access token](https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html) as expected by Bitbucket Server. - `username` (optional): use for [Basic Auth](https://developer.atlassian.com/server/bitbucket/how-tos/command-line-rest/#authentication) for Bitbucket Server. - `password` (optional): use for [Basic Auth](https://developer.atlassian.com/server/bitbucket/how-tos/command-line-rest/#authentication) for Bitbucket Server. + Note: a token can also be used as a substitute for the password, see [HTTP access tokens](https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html). - `apiBaseUrl` (optional): The URL of the Bitbucket Server API. For self-hosted installations, it is commonly at `https:///rest/api/1.0`. diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 314710b800..2ae7f5e81d 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -150,10 +150,7 @@ { "type": "subcategory", "label": "Bitbucket", - "ids": [ - "integrations/bitbucket/locations", - "integrations/bitbucket/discovery" - ] + "ids": ["integrations/bitbucket/discovery"] }, { "type": "subcategory", @@ -163,6 +160,14 @@ "integrations/bitbucketCloud/discovery" ] }, + { + "type": "subcategory", + "label": "Bitbucket Server", + "ids": [ + "integrations/bitbucketServer/locations", + "integrations/bitbucketServer/discovery" + ] + }, { "type": "subcategory", "label": "Datadog", diff --git a/mkdocs.yml b/mkdocs.yml index 03c9dee8d0..bf577e53a1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -95,11 +95,13 @@ nav: - Discovery: 'integrations/azure/discovery.md' - Org Data: 'integrations/azure/org.md' - Bitbucket: - - Locations: 'integrations/bitbucket/locations.md' - Discovery: 'integrations/bitbucket/discovery.md' - Bitbucket Cloud: - Locations: 'integrations/bitbucketCloud/locations.md' - Discovery: 'integrations/bitbucketCloud/discovery.md' + - Bitbucket Server: + - Locations: 'integrations/bitbucketServer/locations.md' + - Discovery: 'integrations/bitbucketServer/discovery.md' - Datadog: - Installation: 'integrations/datadog-rum/installation.md' - Gerrit: From e597fa5e8e88d9273241d7ee93b726a0b66b4709 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 14:22:58 +0000 Subject: [PATCH 163/377] fix(deps): update dependency swagger-ui-react to v4.13.2 Signed-off-by: Renovate Bot --- yarn.lock | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index 919c41fcc7..4d624b850e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1908,7 +1908,7 @@ 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": +"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.11.2": 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== @@ -1916,6 +1916,14 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" +"@babel/runtime-corejs3@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz#7bacecd1cb2dd694eacd32a91fcf7021c20770ae" + integrity sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A== + dependencies: + 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.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@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" @@ -12289,12 +12297,7 @@ domhandler@^4.0.0, domhandler@^4.2.0: dependencies: domelementtype "^2.2.0" -dompurify@=2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.3.3.tgz#c1af3eb88be47324432964d8abc75cf4b98d634c" - integrity sha512-dqnqRkPMAjOZE0FogZ+ceJNM2dZ3V/yNOuFB7+39qpO93hHhfRpHw3heYQC7DPK9FqbQTfBKUJhiSfz4MvXYwg== - -dompurify@^2.2.7, dompurify@^2.2.9, dompurify@^2.3.6: +dompurify@=2.3.10, dompurify@^2.2.7, dompurify@^2.2.9, dompurify@^2.3.6: version "2.3.10" resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.3.10.tgz#901f7390ffe16a91a5a556b94043314cd4850385" integrity sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g== @@ -22146,13 +22149,13 @@ react-copy-to-clipboard@^5.0.4: copy-to-clipboard "^3.3.1" prop-types "^15.8.1" -react-debounce-input@=3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.4.tgz#8204373a6498776536a2fcc7e467d054c3b729d4" - integrity sha512-fX70bNj0fLEYO2Zcvuh7eh9wOUQ29GIx6r8IxIJlc0i0mpUH++9ax0BhfAYfzndADli3RAMROrZQ014J01owrg== +react-debounce-input@=3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.3.0.tgz#85e3ebcaa41f2016e50613134a1ec9fe3cdb422e" + integrity sha512-VEqkvs8JvY/IIZvh71Z0TC+mdbxERvYF33RcebnodlsUZ8RSgyKe2VWaHXv4+/8aoOgXLxWrdsYs2hDhcwbUgA== dependencies: lodash.debounce "^4" - prop-types "^15.7.2" + prop-types "^15.8.1" react-dev-utils@^12.0.0-next.60: version "12.0.1" @@ -24884,17 +24887,17 @@ swagger-client@^3.18.5: url "~0.11.0" swagger-ui-react@^4.11.1: - version "4.13.0" - resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.13.0.tgz#da4192b9b2a761a1e761c268606741ba200e971d" - integrity sha512-SNAByPvnpFKXUnrH6+V2TjVrbilftyVLWK+7K73tBX3uRNAYv0hzNs5Q6xPIekq4iq7xRtuUhVA7Qxn9vK4C+w== + version "4.13.2" + resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.13.2.tgz#dee4f42dae9ca8b9ac85e64a46fc12c694100a80" + integrity sha512-U3IarPb0Vyi5/bHb45Q8uWf/7fowPp3B+LeYF0VKB4xhgKNiaPypPHoSJW9oCse/lkFGd4ZKyqBOpYXCsWMcgA== dependencies: - "@babel/runtime-corejs3" "^7.16.8" + "@babel/runtime-corejs3" "^7.18.9" "@braintree/sanitize-url" "=6.0.0" base64-js "^1.5.1" classnames "^2.3.1" css.escape "1.5.1" deep-extend "0.6.0" - dompurify "=2.3.3" + dompurify "=2.3.10" ieee754 "^1.2.1" immutable "^3.x.x" js-file-download "^0.4.12" @@ -24904,7 +24907,7 @@ swagger-ui-react@^4.11.1: randexp "^0.5.3" randombytes "^2.1.0" react-copy-to-clipboard "5.0.4" - react-debounce-input "=3.2.4" + react-debounce-input "=3.3.0" react-immutable-proptypes "2.2.0" react-immutable-pure-component "^2.2.0" react-inspector "^5.1.1" From 0ef08ee6bf4038d49262466cd3477b9bea52981f Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 2 Aug 2022 16:16:17 +0100 Subject: [PATCH 164/377] feat: updated api-reports Signed-off-by: Kamil Wolny --- plugins/github-issues/api-report.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/plugins/github-issues/api-report.md b/plugins/github-issues/api-report.md index 8c77aaf674..eb69fc8e8e 100644 --- a/plugins/github-issues/api-report.md +++ b/plugins/github-issues/api-report.md @@ -9,16 +9,10 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; // @public (undocumented) -export const GitHubIssuesCard: ({ - itemsPerPage, - itemsPerRepo, -}: GitHubIssuesProps) => JSX.Element; +export const GitHubIssuesCard: (props: GitHubIssuesProps) => JSX.Element; // @public (undocumented) -export const GitHubIssuesPage: ({ - itemsPerPage, - itemsPerRepo, -}: GitHubIssuesProps) => JSX.Element; +export const GitHubIssuesPage: (props: GitHubIssuesProps) => JSX.Element; // @public (undocumented) export const gitHubIssuesPlugin: BackstagePlugin< From 44ed5ed6a2c61670a62ecdcaa9c5ad98fe4336d5 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 2 Aug 2022 16:48:52 +0100 Subject: [PATCH 165/377] fix: move types to dev dependencies Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 74f108cd94..5435f81324 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -32,7 +32,6 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", - "@types/react": "^16.13.1 || ^17.0.0", "luxon": "^2.4.0", "octokit": "^2.0.4", "react-use": "^17.2.4" @@ -51,6 +50,7 @@ "@testing-library/user-event": "^14.0.0", "@types/jest": "*", "@types/node": "*", + "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", "msw": "^0.44.0", "prettier": "^2.7.1" From 4a1d02f82d4e55c86666b12ad2ade2e532ac50ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 18:38:28 +0000 Subject: [PATCH 166/377] chore(deps): update dependency cypress to v10.4.0 Signed-off-by: Renovate Bot --- cypress/yarn.lock | 24 ++++++++++++------------ yarn.lock | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cypress/yarn.lock b/cypress/yarn.lock index 4270a91f18..96e350871b 100644 --- a/cypress/yarn.lock +++ b/cypress/yarn.lock @@ -40,14 +40,14 @@ lodash.once "^4.1.1" "@types/node@*": - version "18.0.6" - resolved "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz#0ba49ac517ad69abe7a1508bc9b3a5483df9d5d7" - integrity sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw== + version "18.6.3" + resolved "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz#4e4a95b6fe44014563ceb514b2598b3e623d1c98" + integrity sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg== "@types/node@^14.14.31": - version "14.18.22" - resolved "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz#fd2a15dca290fc9ad565b672fde746191cd0c6e6" - integrity sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw== + version "14.18.23" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.23.tgz#70f5f20b0b1b38f696848c1d3647bb95694e615e" + integrity sha512-MhbCWN18R4GhO8ewQWAFK4TGQdBpXWByukz7cWyJmXhvRuCIaM/oWytGPqVmDzgEnnaIc9ss6HbU5mUi+vyZPA== "@types/sinonjs__fake-timers@8.1.1": version "8.1.1" @@ -304,9 +304,9 @@ cross-spawn@^7.0.0: which "^2.0.1" cypress@^10.0.0: - version "10.3.1" - resolved "https://registry.npmjs.org/cypress/-/cypress-10.3.1.tgz#7fab4ef43481c05a9a17ebe9a0ec860e15b95a19" - integrity sha512-As9HrExjAgpgjCnbiQCuPdw5sWKx5HUJcK2EOKziu642akwufr/GUeqL5UnCPYXTyyibvEdWT/pSC2qnGW/e5w== + version "10.4.0" + resolved "https://registry.npmjs.org/cypress/-/cypress-10.4.0.tgz#bb5b3b6588ad49eff172fecf5778cc0da2980e4e" + integrity sha512-OM7F8MRE01SHQRVVzunid1ZK1m90XTxYnl+7uZfIrB4CYqUDCrZEeSyCXzIbsS6qcaijVCAhqDL60SxG8N6hew== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -415,9 +415,9 @@ escape-string-regexp@^1.0.5: integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== eventemitter2@^6.4.3: - version "6.4.6" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.6.tgz#92d56569cc147a4d9b9da9e942e89b20ce236b0a" - integrity sha512-OHqo4wbHX5VbvlbB6o6eDwhYmiTjrpWACjF8Pmof/GTD6rdBNdZFNck3xlhqOiQFGCOoq3uzHvA0cQpFHIGVAQ== + version "6.4.7" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" + integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== execa@4.1.0: version "4.1.0" diff --git a/yarn.lock b/yarn.lock index 919c41fcc7..8a62f9a14e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11479,9 +11479,9 @@ cypress-plugin-snapshots@^1.4.4: unidiff "1.0.2" cypress@^10.0.0: - version "10.3.1" - resolved "https://registry.npmjs.org/cypress/-/cypress-10.3.1.tgz#7fab4ef43481c05a9a17ebe9a0ec860e15b95a19" - integrity sha512-As9HrExjAgpgjCnbiQCuPdw5sWKx5HUJcK2EOKziu642akwufr/GUeqL5UnCPYXTyyibvEdWT/pSC2qnGW/e5w== + version "10.4.0" + resolved "https://registry.npmjs.org/cypress/-/cypress-10.4.0.tgz#bb5b3b6588ad49eff172fecf5778cc0da2980e4e" + integrity sha512-OM7F8MRE01SHQRVVzunid1ZK1m90XTxYnl+7uZfIrB4CYqUDCrZEeSyCXzIbsS6qcaijVCAhqDL60SxG8N6hew== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" From 2d7d6028e1985d662acec0558c7a5c772d24f130 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 18:39:27 +0000 Subject: [PATCH 167/377] fix(deps): update dependency @google-cloud/firestore to v6 Signed-off-by: Renovate Bot --- .changeset/renovate-5b3cf8c.md | 5 ++ plugins/auth-backend/package.json | 2 +- yarn.lock | 116 +++++++++--------------------- 3 files changed, 39 insertions(+), 84 deletions(-) create mode 100644 .changeset/renovate-5b3cf8c.md diff --git a/.changeset/renovate-5b3cf8c.md b/.changeset/renovate-5b3cf8c.md new file mode 100644 index 0000000000..d0e32e8837 --- /dev/null +++ b/.changeset/renovate-5b3cf8c.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': patch +--- + +Updated dependency `@google-cloud/firestore` to `^6.0.0`. diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 330d617bcf..09e5549810 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -41,7 +41,7 @@ "@backstage/errors": "^1.1.0", "@backstage/types": "^1.0.0", "@davidzemon/passport-okta-oauth": "^0.0.5", - "@google-cloud/firestore": "^5.0.2", + "@google-cloud/firestore": "^6.0.0", "@types/express": "^4.17.6", "@types/passport": "^1.0.3", "compression": "^1.7.4", diff --git a/yarn.lock b/yarn.lock index 919c41fcc7..e57959298e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2721,15 +2721,15 @@ dependencies: google-gax "^3.0.1" -"@google-cloud/firestore@^5.0.2": - version "5.0.2" - resolved "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-5.0.2.tgz#36923fde45987f928a220d347f341c5602f9e340" - integrity sha512-xlGcNYaW0nvUMzNn2+pLfbEBVt6oysVqtM89faMgZWkWfEtvIQGS0h5PRdLlcqufNzRCX3yIGv29Pb+03ys+VA== +"@google-cloud/firestore@^6.0.0": + version "6.0.0" + resolved "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-6.0.0.tgz#dade2c401237932de968fe9065d16ee2c657562b" + integrity sha512-5yBLdYIhIRANBRqAGUwN7vd6yDFqntdSGwc7ghT6ikZIRYVHW3QP6LPHYaPLQPRU0dRLLAzJIpiCY/pFGKiSNw== dependencies: fast-deep-equal "^3.1.1" functional-red-black-tree "^1.0.1" - google-gax "^2.24.1" - protobufjs "^6.8.6" + google-gax "^3.0.1" + protobufjs "^7.0.0" "@google-cloud/paginator@^3.0.7": version "3.0.7" @@ -14253,14 +14253,6 @@ gaxios@^5.0.0: is-stream "^2.0.0" node-fetch "^2.6.7" -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== - dependencies: - gaxios "^4.0.0" - json-bigint "^1.0.0" - gcp-metadata@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.0.0.tgz#a00f999f60a4461401e7c515f8a3267cfb401ee7" @@ -14609,21 +14601,6 @@ globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" -google-auth-library@^7.14.0: - version "7.14.1" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz#e3483034162f24cc71b95c8a55a210008826213c" - integrity sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA== - dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" - jws "^4.0.0" - lru-cache "^6.0.0" - google-auth-library@^8.0.0, google-auth-library@^8.0.1, google-auth-library@^8.0.2: version "8.1.1" resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.1.1.tgz#4068d2b1512b812d3d3dfbdc848452a0d5a550de" @@ -14639,25 +14616,6 @@ google-auth-library@^8.0.0, google-auth-library@^8.0.1, google-auth-library@^8.0 jws "^4.0.0" lru-cache "^6.0.0" -google-gax@^2.24.1: - version "2.30.5" - resolved "https://registry.npmjs.org/google-gax/-/google-gax-2.30.5.tgz#e836f984f3228900a8336f608c83d75f9cb73eff" - integrity sha512-Jey13YrAN2hfpozHzbtrwEfEHdStJh1GwaQ2+Akh1k0Tv/EuNVSuBtHZoKSBm5wBMvNsxTsEIZ/152NrYyZgxQ== - dependencies: - "@grpc/grpc-js" "~1.6.0" - "@grpc/proto-loader" "^0.6.12" - "@types/long" "^4.0.0" - abort-controller "^3.0.0" - duplexify "^4.0.0" - fast-text-encoding "^1.0.3" - google-auth-library "^7.14.0" - is-stream-ended "^0.1.4" - node-fetch "^2.6.1" - object-hash "^3.0.0" - proto3-json-serializer "^0.1.8" - protobufjs "6.11.3" - retry-request "^4.0.0" - google-gax@^3.0.1: version "3.0.3" resolved "https://registry.npmjs.org/google-gax/-/google-gax-3.0.3.tgz#c8f75dc0ec044fc8ecf97675d85b77911539cca5" @@ -14677,13 +14635,6 @@ google-gax@^3.0.1: protobufjs "6.11.3" retry-request "^5.0.0" -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== - dependencies: - node-forge "^1.0.0" - google-p12-pem@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.0.tgz#f46581add1dc6ea0b96160cda6ce37ee35ab8ca3" @@ -14842,16 +14793,6 @@ grpc-docs@^1.0.6, grpc-docs@^1.1.2: rollup-plugin-smart-asset "^2.1.2" styled-components "^5.3.3" -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== - dependencies: - gaxios "^4.0.0" - google-p12-pem "^3.0.3" - jws "^4.0.0" - mime "^2.2.0" - gtoken@^6.0.0: version "6.0.1" resolved "https://registry.npmjs.org/gtoken/-/gtoken-6.0.1.tgz#1276371d51e93c4eface76e3f30f9e8f1cad3f1a" @@ -18182,6 +18123,11 @@ long@^4.0.0: resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +long@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/long/-/long-5.2.0.tgz#2696dadf4b4da2ce3f6f6b89186085d94d52fd61" + integrity sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w== + longest-streak@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz#f127e2bded83caa6a35ac5f7a2f2b2f94b36f3dc" @@ -19091,7 +19037,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.6.0, mime@^2.2.0, mime@^2.5.2: +mime@2.6.0, mime@^2.5.2: version "2.6.0" resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -19666,7 +19612,7 @@ node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node- dependencies: whatwg-url "^5.0.0" -node-forge@^1, node-forge@^1.0.0, node-forge@^1.3.1: +node-forge@^1, node-forge@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== @@ -21790,13 +21736,6 @@ proto-list@~1.2.1: 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.9" - resolved "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.9.tgz#705ddb41b009dd3e6fcd8123edd72926abf65a34" - integrity sha512-A60IisqvnuI45qNRygJjrnNjX2TMdQGMY+57tR3nul3ZgO2zXkR9OGR8AXxJhkqx84g0FTnrfi3D5fWMSdANdQ== - dependencies: - protobufjs "^6.11.2" - proto3-json-serializer@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-1.0.0.tgz#4c87b06f5788cb3c9d94be7e0c6ef2420c020146" @@ -21804,7 +21743,7 @@ proto3-json-serializer@^1.0.0: dependencies: protobufjs "^6.11.2" -protobufjs@6.11.3, protobufjs@^6.10.0, protobufjs@^6.11.2, protobufjs@^6.8.6: +protobufjs@6.11.3, protobufjs@^6.10.0, protobufjs@^6.11.2: version "6.11.3" resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== @@ -21823,6 +21762,25 @@ protobufjs@6.11.3, protobufjs@^6.10.0, protobufjs@^6.11.2, protobufjs@^6.8.6: "@types/node" ">=13.7.0" long "^4.0.0" +protobufjs@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.0.0.tgz#8c678e1351fd926178fce5a4213913e8d990974f" + integrity sha512-ffNIEm+quOcYtQvHdW406v1NQmZSuqVklxsXk076BtuFnlYZfigLU+JOMrTD8TUOyqHYbRI/fSVNvgd25YeN3w== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^5.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" @@ -23216,14 +23174,6 @@ ret@~0.1.10: resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry-request@^4.0.0: - version "4.2.2" - resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" - integrity sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg== - dependencies: - debug "^4.1.1" - extend "^3.0.2" - retry-request@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/retry-request/-/retry-request-5.0.0.tgz#886ff8ec0e77fffbe66a4d5e90fd8f6646b6eae4" From d8d366785246cbeb52c357737d26f90d90fa9768 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 19:07:45 +0000 Subject: [PATCH 168/377] fix(deps): update dependency aws-sdk to v2.1187.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b934d159e0..06f0ca153c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9093,9 +9093,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1186.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1186.0.tgz#f08fc5f1f53defa1fff83177621947dc0ca8d29b" - integrity sha512-3yDWwNWgbSH9tRVyan0PlRU938Po9QH+06XHwRNwAa/6bixYl4L48c6YgpfxBpwl0IvcCCTivD7ZqshndwishQ== + version "2.1187.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1187.0.tgz#eb928d64305630f53b8f6dad5c7b91fec8f04622" + integrity sha512-QcxQ3asIhH9QQnN/5JO3MaHRjwcy3/AsBzcAjPU+lHZGV0drnuDmg3ZkZuAa/mOgQ3MEi68G3gYD+481QJgnMg== dependencies: buffer "4.9.2" events "1.1.1" From b522f49403b3cb2f05d79f7415a67b11831f2882 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 19:08:14 +0000 Subject: [PATCH 169/377] chore(deps): update dependency @spotify/prettier-config to v14 Signed-off-by: Renovate Bot --- .changeset/renovate-5f2abaa.md | 5 +++++ plugins/github-issues/package.json | 2 +- yarn.lock | 5 ----- 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 .changeset/renovate-5f2abaa.md diff --git a/.changeset/renovate-5f2abaa.md b/.changeset/renovate-5f2abaa.md new file mode 100644 index 0000000000..8114448cb4 --- /dev/null +++ b/.changeset/renovate-5f2abaa.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-github-issues': patch +--- + +Updated dependency `@spotify/prettier-config` to `^14.0.0`. diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 5435f81324..35f6a1aa55 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -44,7 +44,7 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.0", "@backstage/test-utils": "^1.1.3-next.0", - "@spotify/prettier-config": "^13.0.1", + "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/yarn.lock b/yarn.lock index b934d159e0..41460ea988 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6270,11 +6270,6 @@ resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-14.0.1.tgz#850a435b0defebbb3de591d83e3fc369bbc51753" integrity sha512-y/8on49Wtg3HvKd9A32Q7iJaOgngcSJR8hjGx/POFhJFcPRcZuTJSlhd31CF8fg78bMuzdvYH8au7FhNKjnEVw== -"@spotify/prettier-config@^13.0.1": - version "13.0.1" - resolved "https://registry.npmjs.org/@spotify/prettier-config/-/prettier-config-13.0.1.tgz#0fdceb3d4ab543259ce6adc0ec1d10e34898b812" - integrity sha512-oVd4hjx2+y0MeUdk1l+ItwVLwlrDlvTlGwXBWMMzPYc7DLyxuxFvDfoHGkAQkrikfAgtdnzxrW6u9a8ywUqdfw== - "@spotify/prettier-config@^14.0.0": version "14.0.1" resolved "https://registry.npmjs.org/@spotify/prettier-config/-/prettier-config-14.0.1.tgz#a3a2342ec07693647ab76a64a623fbb79d464fa7" From 8f4c23673313ac3712acc66c51eba24b1fd977c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 22:59:06 +0000 Subject: [PATCH 170/377] chore(deps): update dependency esbuild to v0.14.53 Signed-off-by: Renovate Bot --- yarn.lock | 212 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 109 insertions(+), 103 deletions(-) diff --git a/yarn.lock b/yarn.lock index b934d159e0..f70bd31a82 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2648,6 +2648,11 @@ ts-node "^9" tslib "^2" +"@esbuild/linux-loong64@0.14.53": + version "0.14.53" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz#251b4cd6760fadb4d68a05815e6dc5e432d69cd6" + integrity sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg== + "@eslint/eslintrc@^1.3.0": version "1.3.0" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" @@ -12684,75 +12689,75 @@ es6-error@^4.1.1: resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -esbuild-android-64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.51.tgz#414a087cb0de8db1e347ecca6c8320513de433db" - integrity sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ== +esbuild-android-64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz#259bc3ef1399a3cad8f4f67c40ee20779c4de675" + integrity sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA== -esbuild-android-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.51.tgz#55de3bce2aab72bcd2b606da4318ad00fb9c8151" - integrity sha512-vBtp//5VVkZWmYYvHsqBRCMMi1MzKuMIn5XDScmnykMTu9+TD9v0NMEDqQxvtFToeYmojdo5UCV2vzMQWJcJ4A== +esbuild-android-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz#2158253d4e8f9fdd2a081bbb4f73b8806178841e" + integrity sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A== -esbuild-darwin-64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.51.tgz#4259f23ed6b4cea2ec8a28d87b7fb9801f093754" - integrity sha512-YFmXPIOvuagDcwCejMRtCDjgPfnDu+bNeh5FU2Ryi68ADDVlWEpbtpAbrtf/lvFTWPexbgyKgzppNgsmLPr8PA== +esbuild-darwin-64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz#b4681831fd8f8d06feb5048acbe90d742074cc2a" + integrity sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg== -esbuild-darwin-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.51.tgz#d77b4366a71d84e530ba019d540b538b295d494a" - integrity sha512-juYD0QnSKwAMfzwKdIF6YbueXzS6N7y4GXPDeDkApz/1RzlT42mvX9jgNmyOlWKN7YzQAYbcUEJmZJYQGdf2ow== +esbuild-darwin-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz#d267d957852d121b261b3f76ead86e5b5463acc9" + integrity sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA== -esbuild-freebsd-64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.51.tgz#27b6587b3639f10519c65e07219d249b01f2ad38" - integrity sha512-cLEI/aXjb6vo5O2Y8rvVSQ7smgLldwYY5xMxqh/dQGfWO+R1NJOFsiax3IS4Ng300SVp7Gz3czxT6d6qf2cw0g== +esbuild-freebsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz#aca2af6d72b537fe66a38eb8f374fb66d4c98ca0" + integrity sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w== -esbuild-freebsd-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.51.tgz#63c435917e566808c71fafddc600aca4d78be1ec" - integrity sha512-TcWVw/rCL2F+jUgRkgLa3qltd5gzKjIMGhkVybkjk6PJadYInPtgtUBp1/hG+mxyigaT7ib+od1Xb84b+L+1Mg== +esbuild-freebsd-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz#76282e19312d914c34343c8a7da6cc5f051580b9" + integrity sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ== -esbuild-linux-32@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.51.tgz#c3da774143a37e7f11559b9369d98f11f997a5d9" - integrity sha512-RFqpyC5ChyWrjx8Xj2K0EC1aN0A37H6OJfmUXIASEqJoHcntuV3j2Efr9RNmUhMfNE6yEj2VpYuDteZLGDMr0w== +esbuild-linux-32@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz#1045d34cf7c5faaf2af3b29cc1573b06580c37e5" + integrity sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg== -esbuild-linux-64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.51.tgz#5d92b67f674e02ae0b4a9de9a757ba482115c4ae" - integrity sha512-dxjhrqo5i7Rq6DXwz5v+MEHVs9VNFItJmHBe1CxROWNf4miOGoQhqSG8StStbDkQ1Mtobg6ng+4fwByOhoQoeA== +esbuild-linux-64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz#ab3f2ee2ebb5a6930c72d9539cb34b428808cbe4" + integrity sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ== -esbuild-linux-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.51.tgz#dac84740516e859d8b14e1ecc478dd5241b10c93" - integrity sha512-D9rFxGutoqQX3xJPxqd6o+kvYKeIbM0ifW2y0bgKk5HPgQQOo2k9/2Vpto3ybGYaFPCE5qTGtqQta9PoP6ZEzw== +esbuild-linux-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz#1f5530412f6690949e78297122350488d3266cfe" + integrity sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw== -esbuild-linux-arm@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.51.tgz#b3ae7000696cd53ed95b2b458554ff543a60e106" - integrity sha512-LsJynDxYF6Neg7ZC7748yweCDD+N8ByCv22/7IAZglIEniEkqdF4HCaa49JNDLw1UQGlYuhOB8ZT/MmcSWzcWg== +esbuild-linux-arm@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz#a44ec9b5b42007ab6c0d65a224ccc6bbd97c54cf" + integrity sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA== -esbuild-linux-mips64le@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.51.tgz#dad10770fac94efa092b5a0643821c955a9dd385" - integrity sha512-vS54wQjy4IinLSlb5EIlLoln8buh1yDgliP4CuEHumrPk4PvvP4kTRIG4SzMXm6t19N0rIfT4bNdAxzJLg2k6A== +esbuild-linux-mips64le@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz#a4d0b6b17cfdeea4e41b0b085a5f73d99311be9f" + integrity sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ== -esbuild-linux-ppc64le@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.51.tgz#b68c2f8294d012a16a88073d67e976edd4850ae0" - integrity sha512-xcdd62Y3VfGoyphNP/aIV9LP+RzFw5M5Z7ja+zdpQHHvokJM7d0rlDRMN+iSSwvUymQkqZO+G/xjb4/75du8BQ== +esbuild-linux-ppc64le@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz#8c331822c85465434e086e3e6065863770c38139" + integrity sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA== -esbuild-linux-riscv64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.51.tgz#608a318b8697123e44c1e185cdf6708e3df50b93" - integrity sha512-syXHGak9wkAnFz0gMmRBoy44JV0rp4kVCEA36P5MCeZcxFq8+fllBC2t6sKI23w3qd8Vwo9pTADCgjTSf3L3rA== +esbuild-linux-riscv64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz#36fd75543401304bea8a2d63bf8ea18aaa508e00" + integrity sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ== -esbuild-linux-s390x@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.51.tgz#c9e7791170a3295dba79b93aa452beb9838a8625" - integrity sha512-kFAJY3dv+Wq8o28K/C7xkZk/X34rgTwhknSsElIqoEo8armCOjMJ6NsMxm48KaWY2h2RUYGtQmr+RGuUPKBhyw== +esbuild-linux-s390x@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz#1622677ab6824123f48f75d3afc031cd41936129" + integrity sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg== esbuild-loader@^2.18.0: version "2.19.0" @@ -12766,61 +12771,62 @@ esbuild-loader@^2.18.0: tapable "^2.2.0" webpack-sources "^2.2.0" -esbuild-netbsd-64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.51.tgz#0abd40b8c2e37fda6f5cc41a04cb2b690823d891" - integrity sha512-ZZBI7qrR1FevdPBVHz/1GSk1x5GDL/iy42Zy8+neEm/HA7ma+hH/bwPEjeHXKWUDvM36CZpSL/fn1/y9/Hb+1A== +esbuild-netbsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz#e86d0efd0116658be335492ed12e66b26b4baf52" + integrity sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ== -esbuild-openbsd-64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.51.tgz#4adba0b7ea7eb1428bb00d8e94c199a949b130e8" - integrity sha512-7R1/p39M+LSVQVgDVlcY1KKm6kFKjERSX1lipMG51NPcspJD1tmiZSmmBXoY5jhHIu6JL1QkFDTx94gMYK6vfA== +esbuild-openbsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz#9bcbbe6f86304872c6e91f64c8eb73fc29c3588b" + integrity sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ== -esbuild-sunos-64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.51.tgz#4b8a6d97dfedda30a6e39607393c5c90ebf63891" - integrity sha512-HoHaCswHxLEYN8eBTtyO0bFEWvA3Kdb++hSQ/lLG7TyKF69TeSG0RNoBRAs45x/oCeWaTDntEZlYwAfQlhEtJA== +esbuild-sunos-64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz#f7a872f7460bfb7b131f7188a95fbce3d1c577e8" + integrity sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g== -esbuild-windows-32@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.51.tgz#d31d8ca0c1d314fb1edea163685a423b62e9ac17" - integrity sha512-4rtwSAM35A07CBt1/X8RWieDj3ZUHQqUOaEo5ZBs69rt5WAFjP4aqCIobdqOy4FdhYw1yF8Z0xFBTyc9lgPtEg== +esbuild-windows-32@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz#c5e3ca50e2d1439cc2c9fe4defa63bcd474ce709" + integrity sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg== -esbuild-windows-64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.51.tgz#7d3c09c8652d222925625637bdc7e6c223e0085d" - integrity sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA== +esbuild-windows-64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz#ec2ab4a60c5215f092ffe1eab6d01319e88238af" + integrity sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ== -esbuild-windows-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.51.tgz#0220d2304bfdc11bc27e19b2aaf56edf183e4ae9" - integrity sha512-JQDqPjuOH7o+BsKMSddMfmVJXrnYZxXDHsoLHc0xgmAZkOOCflRmC43q31pk79F9xuyWY45jDBPolb5ZgGOf9g== +esbuild-windows-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz#f71d403806bdf9f4a1f9d097db9aec949bd675c8" + integrity sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ== esbuild@^0.14.1, esbuild@^0.14.10, esbuild@^0.14.39: - version "0.14.51" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.51.tgz#1c8ecbc8db3710da03776211dc3ee3448f7aa51e" - integrity sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw== + version "0.14.53" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.53.tgz#20b1007f686e8584f2a01a1bec5a37aac9498ce4" + integrity sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw== optionalDependencies: - esbuild-android-64 "0.14.51" - esbuild-android-arm64 "0.14.51" - esbuild-darwin-64 "0.14.51" - esbuild-darwin-arm64 "0.14.51" - esbuild-freebsd-64 "0.14.51" - esbuild-freebsd-arm64 "0.14.51" - esbuild-linux-32 "0.14.51" - esbuild-linux-64 "0.14.51" - esbuild-linux-arm "0.14.51" - esbuild-linux-arm64 "0.14.51" - esbuild-linux-mips64le "0.14.51" - esbuild-linux-ppc64le "0.14.51" - esbuild-linux-riscv64 "0.14.51" - esbuild-linux-s390x "0.14.51" - esbuild-netbsd-64 "0.14.51" - esbuild-openbsd-64 "0.14.51" - esbuild-sunos-64 "0.14.51" - esbuild-windows-32 "0.14.51" - esbuild-windows-64 "0.14.51" - esbuild-windows-arm64 "0.14.51" + "@esbuild/linux-loong64" "0.14.53" + esbuild-android-64 "0.14.53" + esbuild-android-arm64 "0.14.53" + esbuild-darwin-64 "0.14.53" + esbuild-darwin-arm64 "0.14.53" + esbuild-freebsd-64 "0.14.53" + esbuild-freebsd-arm64 "0.14.53" + esbuild-linux-32 "0.14.53" + esbuild-linux-64 "0.14.53" + esbuild-linux-arm "0.14.53" + esbuild-linux-arm64 "0.14.53" + esbuild-linux-mips64le "0.14.53" + esbuild-linux-ppc64le "0.14.53" + esbuild-linux-riscv64 "0.14.53" + esbuild-linux-s390x "0.14.53" + esbuild-netbsd-64 "0.14.53" + esbuild-openbsd-64 "0.14.53" + esbuild-sunos-64 "0.14.53" + esbuild-windows-32 "0.14.53" + esbuild-windows-64 "0.14.53" + esbuild-windows-arm64 "0.14.53" escalade@^3.1.1: version "3.1.1" From b9f8b17dde0be361090681ef572a1b5dc2bdf9e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 08:23:50 +0000 Subject: [PATCH 171/377] chore(deps): update dependency puppeteer to v16 Signed-off-by: Renovate Bot --- packages/e2e-test/package.json | 2 +- yarn.lock | 23 +++++++++-------------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 333ac09b23..02f013e8a3 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -40,7 +40,7 @@ "fs-extra": "10.1.0", "handlebars": "^4.7.3", "pgtools": "^0.3.0", - "puppeteer": "^15.0.0", + "puppeteer": "^16.0.0", "tree-kill": "^1.2.2", "ts-node": "^10.0.0" }, diff --git a/yarn.lock b/yarn.lock index b327683b45..39d591a410 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21936,10 +21936,10 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@^15.0.0: - version "15.5.0" - resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-15.5.0.tgz#446e01547ba0f47c37ac2148e5333433b4ecb371" - integrity sha512-+vZPU8iBSdCx1Kn5hHas80fyo0TiVyMeqLGv/1dygX2HKhAZjO9YThadbRTCoTYq0yWw+w/CysldPsEekDtjDQ== +puppeteer@^16.0.0: + version "16.0.0" + resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-16.0.0.tgz#9efb6cdb57e3e51cf060a33f6289e88200dd4672" + integrity sha512-FgSe21IHNHkqv1SiJiob4ANsxVujcINa4p3MaDEMyoZsocbgSgwYE0c9lnF8eoinw4id3vx4DOXwhFdOOwVlDg== dependencies: cross-fetch "3.1.5" debug "4.3.4" @@ -21952,7 +21952,7 @@ puppeteer@^15.0.0: rimraf "3.0.2" tar-fs "2.1.1" unbzip2-stream "1.4.3" - ws "8.8.0" + ws "8.8.1" pvtsutils@^1.3.2: version "1.3.2" @@ -26795,10 +26795,10 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@8.8.0: - version "8.8.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" - integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== +ws@8.8.1, ws@^8.0.0, ws@^8.3.0: + version "8.8.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== "ws@^5.2.0 || ^6.0.0 || ^7.0.0": version "7.5.9" @@ -26810,11 +26810,6 @@ ws@^7.3.1, ws@^7.4.6: resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== -ws@^8.0.0, ws@^8.3.0: - version "8.8.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== - ws@^8.4.2: version "8.5.0" resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" From ed1f83ba078e6051238ed5d8010203122a61e359 Mon Sep 17 00:00:00 2001 From: Jussi Hallila Date: Wed, 3 Aug 2022 14:25:54 +0200 Subject: [PATCH 172/377] Modify description column in entity tables to not have 'auto' width Signed-off-by: Jussi Hallila --- plugins/catalog-react/src/components/EntityTable/columns.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/catalog-react/src/components/EntityTable/columns.tsx b/plugins/catalog-react/src/components/EntityTable/columns.tsx index 08eb31bea3..72b6931e94 100644 --- a/plugins/catalog-react/src/components/EntityTable/columns.tsx +++ b/plugins/catalog-react/src/components/EntityTable/columns.tsx @@ -147,7 +147,6 @@ export const columnFactories = Object.freeze({ line={2} /> ), - width: 'auto', }; }, createSpecLifecycleColumn(): TableColumn { From 44e691a7f956153cc7860ca593d976067affa50c Mon Sep 17 00:00:00 2001 From: Jussi Hallila Date: Wed, 3 Aug 2022 14:36:36 +0200 Subject: [PATCH 173/377] Add changeset Signed-off-by: Jussi Hallila --- .changeset/green-laws-greet.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/green-laws-greet.md diff --git a/.changeset/green-laws-greet.md b/.changeset/green-laws-greet.md new file mode 100644 index 0000000000..120a1d3f2c --- /dev/null +++ b/.changeset/green-laws-greet.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Modify description column to not use auto width. From f27457b21fce41aef6cda67eebfab687622b64f8 Mon Sep 17 00:00:00 2001 From: Tihomir Yordanov Date: Wed, 3 Aug 2022 14:27:22 +0200 Subject: [PATCH 174/377] add the tekton pipelines plugin to the backstage marketplace Signed-off-by: Tihomir Yordanov --- microsite/data/plugins/tekton-pipelines.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 microsite/data/plugins/tekton-pipelines.yaml diff --git a/microsite/data/plugins/tekton-pipelines.yaml b/microsite/data/plugins/tekton-pipelines.yaml new file mode 100644 index 0000000000..16ae5c893c --- /dev/null +++ b/microsite/data/plugins/tekton-pipelines.yaml @@ -0,0 +1,9 @@ +--- +title: Tekton Pipelines +author: JQuad Group +authorUrl: https://github.com/jquad-group +category: CI +description: View the status of the Tekton PipelineRun resources. +documentation: https://github.com/jquad-group/backstage-jquad#readme +iconUrl: https://github.com/jquad-group/backstage-jquad/blob/main/img/tekton-horizontal-color.png +npmPackageName: '@jquad-group/plugin-tekton-pipelines' \ No newline at end of file From 0304dfe1b1db8b6c60de7840b14efcbf9ec26880 Mon Sep 17 00:00:00 2001 From: Tihomir Yordanov Date: Wed, 3 Aug 2022 15:32:56 +0200 Subject: [PATCH 175/377] fixed formatting using yarn prettier Signed-off-by: Tihomir Yordanov --- microsite/data/plugins/tekton-pipelines.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/microsite/data/plugins/tekton-pipelines.yaml b/microsite/data/plugins/tekton-pipelines.yaml index 16ae5c893c..241f5aa61d 100644 --- a/microsite/data/plugins/tekton-pipelines.yaml +++ b/microsite/data/plugins/tekton-pipelines.yaml @@ -1,9 +1,9 @@ --- title: Tekton Pipelines author: JQuad Group -authorUrl: https://github.com/jquad-group -category: CI -description: View the status of the Tekton PipelineRun resources. +authorUrl: https://github.com/jquad-group +category: CI +description: View the status of the Tekton PipelineRun resources. documentation: https://github.com/jquad-group/backstage-jquad#readme iconUrl: https://github.com/jquad-group/backstage-jquad/blob/main/img/tekton-horizontal-color.png -npmPackageName: '@jquad-group/plugin-tekton-pipelines' \ No newline at end of file +npmPackageName: '@jquad-group/plugin-tekton-pipelines' From b746eca638094df49b3c84ab7af7398af6ae3ba1 Mon Sep 17 00:00:00 2001 From: kielosz Date: Wed, 3 Aug 2022 16:22:51 +0200 Subject: [PATCH 176/377] Make products optional Signed-off-by: kielosz --- .changeset/hot-crabs-wonder.md | 5 +++ plugins/cost-insights/README.md | 16 +++++-- plugins/cost-insights/config.d.ts | 2 +- .../CostInsightsPage/CostInsightsPage.tsx | 43 +++++++++++-------- plugins/cost-insights/src/hooks/useConfig.tsx | 30 +++++++------ plugins/cost-insights/src/utils/loading.ts | 1 - 6 files changed, 60 insertions(+), 37 deletions(-) create mode 100644 .changeset/hot-crabs-wonder.md diff --git a/.changeset/hot-crabs-wonder.md b/.changeset/hot-crabs-wonder.md new file mode 100644 index 0000000000..b39398bfc3 --- /dev/null +++ b/.changeset/hot-crabs-wonder.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-cost-insights': patch +--- + +Make `products` field optional in the config diff --git a/plugins/cost-insights/README.md b/plugins/cost-insights/README.md index 824cf6f9fe..2b20da2f26 100644 --- a/plugins/cost-insights/README.md +++ b/plugins/cost-insights/README.md @@ -120,14 +120,24 @@ To expose the plugin to your users, you can integrate the `cost-insights` route ## Configuration -Cost Insights has only two required configuration fields: a map of cloud `products` for showing cost breakdowns and `engineerCost` - the average yearly cost of an engineer including benefits. Products must be defined as keys on the `products` field. +Cost Insights has only one required configuration field: `engineerCost` - the average yearly cost of an engineer including benefits. + +### Basic + +```yaml +## ./app-config.yaml +costInsights: + engineerCost: 200000 +``` + +### Products (Optional) + +For showing cost breakdowns you can define a map of cloud products. They must be defined as keys on the `products` field. A user-friendly name is **required**. You can optionally supply a product `icon` to display in Cost Insights navigation. See the [type file](https://github.com/backstage/backstage/blob/master/plugins/cost-insights/src/types/Icon.ts) for supported types and Material UI icon [mappings](https://github.com/backstage/backstage/blob/master/plugins/cost-insights/src/utils/navigation.tsx). **Note:** Product keys should be unique and camelCased. Backstage does not support underscores in configuration keys. -### Basic - ```yaml ## ./app-config.yaml costInsights: diff --git a/plugins/cost-insights/config.d.ts b/plugins/cost-insights/config.d.ts index 8438ca6561..4144b6d6a5 100644 --- a/plugins/cost-insights/config.d.ts +++ b/plugins/cost-insights/config.d.ts @@ -21,7 +21,7 @@ export interface Config { */ engineerCost: number; - products: { + products?: { [kind: string]: { /** * @visibility frontend diff --git a/plugins/cost-insights/src/components/CostInsightsPage/CostInsightsPage.tsx b/plugins/cost-insights/src/components/CostInsightsPage/CostInsightsPage.tsx index db5666768e..8fdfda936e 100644 --- a/plugins/cost-insights/src/components/CostInsightsPage/CostInsightsPage.tsx +++ b/plugins/cost-insights/src/components/CostInsightsPage/CostInsightsPage.tsx @@ -84,6 +84,7 @@ export const CostInsightsPage = () => { const accepted = useMemo(() => alerts.filter(isAlertAccepted), [alerts]); const dismissed = useMemo(() => alerts.filter(isAlertDismissed), [alerts]); + const isProductsDisplayed = !!config.products?.length; const isActionItemsDisplayed = !!active.length; const isAlertInsightsDisplayed = !!alerts.length; @@ -247,14 +248,16 @@ export const CostInsightsPage = () => { return ( - - - - - + {(isProductsDisplayed || isActionItemsDisplayed) && ( + + + + + + )} { - {!isAlertInsightsDisplayed && } - - - - - + {!isAlertInsightsDisplayed && isProductsDisplayed && } + {isProductsDisplayed && ( + + + + + + )} diff --git a/plugins/cost-insights/src/hooks/useConfig.tsx b/plugins/cost-insights/src/hooks/useConfig.tsx index 451a48b71f..236c142b3b 100644 --- a/plugins/cost-insights/src/hooks/useConfig.tsx +++ b/plugins/cost-insights/src/hooks/useConfig.tsx @@ -85,12 +85,15 @@ export const ConfigProvider = ({ children }: PropsWithChildren<{}>) => { useEffect(() => { function getProducts(): Product[] { - const products = c.getConfig('costInsights.products'); - return products.keys().map(key => ({ - kind: key, - name: products.getString(`${key}.name`), - aggregation: [0, 0], - })); + const products = c.getOptionalConfig('costInsights.products'); + if (products) { + return products.keys().map(key => ({ + kind: key, + name: products.getString(`${key}.name`), + aggregation: [0, 0], + })); + } + return []; } function getMetrics(): Metric[] { @@ -122,13 +125,14 @@ export const ConfigProvider = ({ children }: PropsWithChildren<{}>) => { } function getIcons(): Icon[] { - const products = c.getConfig('costInsights.products'); - const keys = products.keys(); - - return keys.map(k => ({ - kind: k, - component: getIcon(products.getOptionalString(`${k}.icon`)), - })); + const products = c.getOptionalConfig('costInsights.products'); + if (products) { + return products.keys().map(k => ({ + kind: k, + component: getIcon(products.getOptionalString(`${k}.icon`)), + })); + } + return []; } function getEngineerCost(): number { diff --git a/plugins/cost-insights/src/utils/loading.ts b/plugins/cost-insights/src/utils/loading.ts index 2a453a58f1..ce02644265 100644 --- a/plugins/cost-insights/src/utils/loading.ts +++ b/plugins/cost-insights/src/utils/loading.ts @@ -35,7 +35,6 @@ export enum DefaultLoadingAction { export const INITIAL_LOADING_ACTIONS = [ DefaultLoadingAction.UserGroups, DefaultLoadingAction.CostInsightsInitial, - DefaultLoadingAction.CostInsightsProducts, ]; export const getDefaultState = (loadingActions: string[]): Loading => { From 6184f0a3c01aad298032b8cf124a9f578940baaa Mon Sep 17 00:00:00 2001 From: Andres Mauricio Gomez P Date: Mon, 25 Jul 2022 10:22:03 -0500 Subject: [PATCH 177/377] Allow configuring Custom Resources per cluster Co-authored-by: Jamie Klassen Signed-off-by: Andres Mauricio Gomez P --- .../src/service/KubernetesFanOutHandler.ts | 15 +++++++-------- plugins/kubernetes-backend/src/types/types.ts | 5 +++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index 67748e1506..3b96dc783f 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -211,19 +211,14 @@ export class KubernetesFanOutHandler { entity, auth, }: KubernetesObjectsByEntity): Promise { - return this.fanOutRequests( - entity, - auth, - this.objectTypesToFetch, - this.customResources, - ); + return this.fanOutRequests(entity, auth, this.objectTypesToFetch); } private async fanOutRequests( entity: Entity, auth: KubernetesRequestAuth, objectTypesToFetch: Set, - customResources: CustomResourceMatcher[], + customResources?: CustomResourceMatcher[], ) { const entityName = entity.metadata?.annotations?.['backstage.io/kubernetes-id'] || @@ -254,7 +249,11 @@ export class KubernetesFanOutHandler { clusterDetails: clusterDetailsItem, objectTypesToFetch: objectTypesToFetch, labelSelector, - customResources: customResources.map(c => ({ + customResources: ( + customResources || + clusterDetailsItem.customResources || + this.customResources + ).map(c => ({ ...c, objectType: 'customresources', })), diff --git a/plugins/kubernetes-backend/src/types/types.ts b/plugins/kubernetes-backend/src/types/types.ts index 0826c4158c..6bdcfc24da 100644 --- a/plugins/kubernetes-backend/src/types/types.ts +++ b/plugins/kubernetes-backend/src/types/types.ts @@ -193,6 +193,11 @@ export interface ClusterDetails { * @see dashboardApp */ dashboardParameters?: JsonObject; + /** + * Specifies which custom resources to look for when returning an entity's + * Kubernetes resources. + */ + customResources?: CustomResourceMatcher[]; } /** From fe2dfd941b587696f4cb8432e0b787495033fc17 Mon Sep 17 00:00:00 2001 From: Andres Mauricio Gomez P Date: Mon, 25 Jul 2022 10:26:17 -0500 Subject: [PATCH 178/377] [kubernetes-backend plugin] New tests and removing duplicated code at KubernetesFanOutHandler.test Co-authored-by: Jamie Klassen Signed-off-by: Andres Mauricio Gomez P --- .../service/KubernetesFanOutHandler.test.ts | 674 ++++++++---------- 1 file changed, 280 insertions(+), 394 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts index 176498839d..04256ed3dc 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts @@ -15,7 +15,11 @@ */ import { getVoidLogger } from '@backstage/backend-common'; -import { ClusterDetails, ObjectFetchParams } from '../types/types'; +import { + ClusterDetails, + CustomResource, + ObjectFetchParams, +} from '../types/types'; import { KubernetesFanOutHandler } from './KubernetesFanOutHandler'; import { PodStatus } from '@kubernetes/client-node/dist/top'; @@ -56,6 +60,108 @@ const mockMetrics = (mock: jest.Mock) => { ); }; +const entity = { + apiVersion: 'backstage.io/v1beta1', + kind: 'Component', + metadata: { + name: 'test-component', + annotations: { + 'backstage.io/kubernetes-labels-selector': + 'backstage.io/test-label=test-component', + }, + }, + spec: { + type: 'service', + lifecycle: 'production', + owner: 'joe', + }, +}; + +const cluster1 = { + name: 'test-cluster', + authProvider: 'serviceAccount', + customResources: [ + { + group: 'some-other-crd.example.com', + apiVersion: 'v1alpha1', + plural: 'some-crd-only-on-this-cluster', + }, + ], +}; + +const cluster2 = { + name: 'cluster-two', + authProvider: 'serviceAccount', + customResources: [ + { + group: 'crd-two.example.com', + apiVersion: 'v1alpha1', + plural: 'crd-two-plural', + }, + ], +}; + +function resourcesByCluster(clusterName: string) { + return [ + { + resources: [ + { + metadata: { + name: `my-pods-test-component-${clusterName}`, + namespace: `ns-test-component-${clusterName}`, + }, + }, + ], + type: 'pods', + }, + { + resources: [ + { + metadata: { + name: `my-configmaps-test-component-${clusterName}`, + namespace: `ns-test-component-${clusterName}`, + }, + }, + ], + type: 'configmaps', + }, + { + resources: [ + { + metadata: { + name: `my-services-test-component-${clusterName}`, + namespace: `ns-test-component-${clusterName}`, + }, + }, + ], + type: 'services', + }, + ]; +} + +function mockFetchAndGetKubernetesFanOutHandler( + customResources: CustomResource[], +) { + mockFetch(fetchObjectsForService); + mockMetrics(fetchPodMetricsByNamespace); + + return getKubernetesFanOutHandler(customResources); +} + +function getKubernetesFanOutHandler(customResources: CustomResource[]) { + return new KubernetesFanOutHandler({ + logger: getVoidLogger(), + fetcher: { + fetchObjectsForService, + fetchPodMetricsByNamespace, + }, + serviceLocator: { + getClustersByEntity, + }, + customResources: customResources, + }); +} + function generatePodStatus( _clusterName: string, _namespace: string, @@ -160,7 +266,7 @@ function generateMockResourcesAndErrors( }; } -describe('handleGetKubernetesObjectsForService', () => { +describe('getKubernetesObjectsByEntity', () => { beforeEach(() => { jest.resetAllMocks(); }); @@ -177,38 +283,10 @@ describe('handleGetKubernetesObjectsForService', () => { }), ); - mockFetch(fetchObjectsForService); - mockMetrics(fetchPodMetricsByNamespace); - - const sut = new KubernetesFanOutHandler({ - logger: getVoidLogger(), - fetcher: { - fetchObjectsForService, - fetchPodMetricsByNamespace, - }, - serviceLocator: { - getClustersByEntity, - }, - customResources: [], - }); + const sut = mockFetchAndGetKubernetesFanOutHandler([]); const result = await sut.getKubernetesObjectsByEntity({ - entity: { - apiVersion: 'backstage.io/v1beta1', - kind: 'Component', - metadata: { - name: 'test-component', - annotations: { - 'backstage.io/kubernetes-labels-selector': - 'backstage.io/test-label=test-component', - }, - }, - spec: { - type: 'service', - lifecycle: 'production', - owner: 'joe', - }, - }, + entity, auth: {}, }); @@ -227,46 +305,91 @@ describe('handleGetKubernetesObjectsForService', () => { }, errors: [], podMetrics: [POD_METRICS_FIXTURE], - resources: [ - { - resources: [ - { - metadata: { - name: 'my-pods-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'pods', - }, - { - resources: [ - { - metadata: { - name: 'my-configmaps-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'configmaps', - }, - { - resources: [ - { - metadata: { - name: 'my-services-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'services', - }, - ], + resources: resourcesByCluster('test-cluster'), }, ], }); }); + it('retrieve objects for one cluster using customResources per cluster', async () => { + getClustersByEntity.mockImplementation(() => + Promise.resolve({ + clusters: [cluster1], + }), + ); + + const sut = mockFetchAndGetKubernetesFanOutHandler([]); + + await sut.getKubernetesObjectsByEntity({ + entity, + auth: {}, + }); + + expect(fetchObjectsForService.mock.calls.length).toBe(1); + expect(fetchObjectsForService.mock.calls[0][0].customResources.length).toBe( + 1, + ); + }); + + it('retrieve objects for two cluster using customResources per cluster', async () => { + getClustersByEntity.mockImplementation(() => + Promise.resolve({ + clusters: [cluster1, cluster2], + }), + ); + + const sut = mockFetchAndGetKubernetesFanOutHandler([]); + + await sut.getKubernetesObjectsByEntity({ + entity, + auth: {}, + }); + + expect(fetchObjectsForService.mock.calls.length).toBe(2); + expect( + fetchObjectsForService.mock.calls[0][0].customResources[0].group, + ).toBe('some-other-crd.example.com'); + expect( + fetchObjectsForService.mock.calls[1][0].customResources[0].group, + ).toBe('crd-two.example.com'); + }); + + it('retrieve objects for two cluster using customResources globally and per cluster', async () => { + getClustersByEntity.mockImplementation(() => + Promise.resolve({ + clusters: [ + { + name: 'test-cluster', + authProvider: 'serviceAccount', + }, + cluster2, + ], + }), + ); + + const sut = mockFetchAndGetKubernetesFanOutHandler([ + { + objectType: 'customresources', + group: 'some-group', + apiVersion: 'v2', + plural: 'things', + }, + ]); + + await sut.getKubernetesObjectsByEntity({ + entity, + auth: {}, + }); + + expect(fetchObjectsForService.mock.calls.length).toBe(2); + expect( + fetchObjectsForService.mock.calls[0][0].customResources[0].group, + ).toBe('some-group'); + expect( + fetchObjectsForService.mock.calls[1][0].customResources[0].group, + ).toBe('crd-two.example.com'); + }); + it('dont call top for the same namespace twice', async () => { getClustersByEntity.mockImplementation(() => Promise.resolve({ @@ -312,35 +435,10 @@ describe('handleGetKubernetesObjectsForService', () => { mockMetrics(fetchPodMetricsByNamespace); - const sut = new KubernetesFanOutHandler({ - logger: getVoidLogger(), - fetcher: { - fetchObjectsForService, - fetchPodMetricsByNamespace, - }, - serviceLocator: { - getClustersByEntity, - }, - customResources: [], - }); + const sut = getKubernetesFanOutHandler([]); const result = await sut.getKubernetesObjectsByEntity({ - entity: { - apiVersion: 'backstage.io/v1beta1', - kind: 'Component', - metadata: { - name: 'test-component', - annotations: { - 'backstage.io/kubernetes-labels-selector': - 'backstage.io/test-label=test-component', - }, - }, - spec: { - type: 'service', - lifecycle: 'production', - owner: 'joe', - }, - }, + entity, auth: {}, }); @@ -405,38 +503,10 @@ describe('handleGetKubernetesObjectsForService', () => { }), ); - mockFetch(fetchObjectsForService); - mockMetrics(fetchPodMetricsByNamespace); - - const sut = new KubernetesFanOutHandler({ - logger: getVoidLogger(), - fetcher: { - fetchObjectsForService, - fetchPodMetricsByNamespace, - }, - serviceLocator: { - getClustersByEntity, - }, - customResources: [], - }); + const sut = mockFetchAndGetKubernetesFanOutHandler([]); const result = await sut.getKubernetesObjectsByEntity({ - entity: { - apiVersion: 'backstage.io/v1beta1', - kind: 'Component', - metadata: { - name: 'test-component', - annotations: { - 'backstage.io/kubernetes-labels-selector': - 'backstage.io/test-label=test-component', - }, - }, - spec: { - type: 'service', - lifecycle: 'production', - owner: 'joe', - }, - }, + entity, auth: { google: 'google_token_123', }, @@ -453,41 +523,7 @@ describe('handleGetKubernetesObjectsForService', () => { }, errors: [], podMetrics: [POD_METRICS_FIXTURE], - resources: [ - { - resources: [ - { - metadata: { - name: 'my-pods-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'pods', - }, - { - resources: [ - { - metadata: { - name: 'my-configmaps-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'configmaps', - }, - { - resources: [ - { - metadata: { - name: 'my-services-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'services', - }, - ], + resources: resourcesByCluster('test-cluster'), }, { cluster: { @@ -495,41 +531,7 @@ describe('handleGetKubernetesObjectsForService', () => { }, errors: [], podMetrics: [POD_METRICS_FIXTURE], - resources: [ - { - resources: [ - { - metadata: { - name: 'my-pods-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'pods', - }, - { - resources: [ - { - metadata: { - name: 'my-configmaps-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'configmaps', - }, - { - resources: [ - { - metadata: { - name: 'my-services-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'services', - }, - ], + resources: resourcesByCluster('other-cluster'), }, ], }); @@ -554,38 +556,10 @@ describe('handleGetKubernetesObjectsForService', () => { }), ); - mockFetch(fetchObjectsForService); - mockMetrics(fetchPodMetricsByNamespace); - - const sut = new KubernetesFanOutHandler({ - logger: getVoidLogger(), - fetcher: { - fetchObjectsForService, - fetchPodMetricsByNamespace, - }, - serviceLocator: { - getClustersByEntity, - }, - customResources: [], - }); + const sut = mockFetchAndGetKubernetesFanOutHandler([]); const result = await sut.getKubernetesObjectsByEntity({ - entity: { - apiVersion: 'backstage.io/v1beta1', - kind: 'Component', - metadata: { - name: 'test-component', - annotations: { - 'backstage.io/kubernetes-labels-selector': - 'backstage.io/test-label=test-component', - }, - }, - spec: { - type: 'service', - lifecycle: 'production', - owner: 'joe', - }, - }, + entity, auth: { google: 'google_token_123', }, @@ -601,41 +575,7 @@ describe('handleGetKubernetesObjectsForService', () => { }, errors: [], podMetrics: [POD_METRICS_FIXTURE], - resources: [ - { - resources: [ - { - metadata: { - name: 'my-pods-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'pods', - }, - { - resources: [ - { - metadata: { - name: 'my-configmaps-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'configmaps', - }, - { - resources: [ - { - metadata: { - name: 'my-services-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'services', - }, - ], + resources: resourcesByCluster('test-cluster'), }, { cluster: { @@ -643,41 +583,7 @@ describe('handleGetKubernetesObjectsForService', () => { }, errors: [], podMetrics: [POD_METRICS_FIXTURE], - resources: [ - { - resources: [ - { - metadata: { - name: 'my-pods-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'pods', - }, - { - resources: [ - { - metadata: { - name: 'my-configmaps-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'configmaps', - }, - { - resources: [ - { - metadata: { - name: 'my-services-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'services', - }, - ], + resources: resourcesByCluster('other-cluster'), }, ], }); @@ -706,38 +612,10 @@ describe('handleGetKubernetesObjectsForService', () => { }), ); - mockFetch(fetchObjectsForService); - mockMetrics(fetchPodMetricsByNamespace); - - const sut = new KubernetesFanOutHandler({ - logger: getVoidLogger(), - fetcher: { - fetchObjectsForService, - fetchPodMetricsByNamespace, - }, - serviceLocator: { - getClustersByEntity, - }, - customResources: [], - }); + const sut = mockFetchAndGetKubernetesFanOutHandler([]); const result = await sut.getKubernetesObjectsByEntity({ - entity: { - apiVersion: 'backstage.io/v1beta1', - kind: 'Component', - metadata: { - name: 'test-component', - annotations: { - 'backstage.io/kubernetes-labels-selector': - 'backstage.io/test-label=test-component', - }, - }, - spec: { - type: 'service', - lifecycle: 'production', - owner: 'joe', - }, - }, + entity, auth: { google: 'google_token_123', }, @@ -753,41 +631,7 @@ describe('handleGetKubernetesObjectsForService', () => { }, errors: [], podMetrics: [POD_METRICS_FIXTURE], - resources: [ - { - resources: [ - { - metadata: { - name: 'my-pods-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'pods', - }, - { - resources: [ - { - metadata: { - name: 'my-configmaps-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'configmaps', - }, - { - resources: [ - { - metadata: { - name: 'my-services-test-component-test-cluster', - namespace: 'ns-test-component-test-cluster', - }, - }, - ], - type: 'services', - }, - ], + resources: resourcesByCluster('test-cluster'), }, { cluster: { @@ -795,41 +639,7 @@ describe('handleGetKubernetesObjectsForService', () => { }, errors: [], podMetrics: [POD_METRICS_FIXTURE], - resources: [ - { - resources: [ - { - metadata: { - name: 'my-pods-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'pods', - }, - { - resources: [ - { - metadata: { - name: 'my-configmaps-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'configmaps', - }, - { - resources: [ - { - metadata: { - name: 'my-services-test-component-other-cluster', - namespace: 'ns-test-component-other-cluster', - }, - }, - ], - type: 'services', - }, - ], + resources: resourcesByCluster('other-cluster'), }, { cluster: { @@ -856,3 +666,79 @@ describe('handleGetKubernetesObjectsForService', () => { }); }); }); + +describe('getCustomResourcesByEntity', () => { + beforeEach(() => { + jest.resetAllMocks(); + }); + + it('retrieve objects for one cluster using customResources per cluster', async () => { + getClustersByEntity.mockImplementation(() => + Promise.resolve({ + clusters: [cluster1], + }), + ); + + const sut = mockFetchAndGetKubernetesFanOutHandler([]); + + await sut.getCustomResourcesByEntity({ + entity, + auth: {}, + customResources: [ + { + group: 'parameter-crd.example.com', + apiVersion: 'v1alpha1', + plural: 'parameter-crd', + }, + ], + }); + + expect(fetchObjectsForService.mock.calls.length).toBe(1); + expect( + fetchObjectsForService.mock.calls[0][0].customResources[0].plural, + ).toBe('parameter-crd'); + }); + + it('retrieve objects for two cluster using customResources globally and per cluster', async () => { + getClustersByEntity.mockImplementation(() => + Promise.resolve({ + clusters: [ + { + name: 'test-cluster', + authProvider: 'serviceAccount', + }, + cluster2, + ], + }), + ); + + const sut = mockFetchAndGetKubernetesFanOutHandler([ + { + objectType: 'customresources', + group: 'some-group', + apiVersion: 'v2', + plural: 'things', + }, + ]); + + await sut.getCustomResourcesByEntity({ + entity, + auth: {}, + customResources: [ + { + group: 'parameter-crd.example.com', + apiVersion: 'v1alpha1', + plural: 'parameter-crd', + }, + ], + }); + + expect(fetchObjectsForService.mock.calls.length).toBe(2); + expect( + fetchObjectsForService.mock.calls[0][0].customResources[0].group, + ).toBe('parameter-crd.example.com'); + expect( + fetchObjectsForService.mock.calls[1][0].customResources[0].group, + ).toBe('parameter-crd.example.com'); + }); +}); From 0cd87cf30d80e2b4fe918cbc46842a3c6e015668 Mon Sep 17 00:00:00 2001 From: Andres Mauricio Gomez P Date: Mon, 25 Jul 2022 10:49:57 -0500 Subject: [PATCH 179/377] Changeset added and api-report modified Co-authored-by: Jamie Klassen Signed-off-by: Andres Mauricio Gomez P --- .changeset/long-pumpkins-walk.md | 5 +++++ plugins/kubernetes-backend/api-report.md | 1 + 2 files changed, 6 insertions(+) create mode 100644 .changeset/long-pumpkins-walk.md diff --git a/.changeset/long-pumpkins-walk.md b/.changeset/long-pumpkins-walk.md new file mode 100644 index 0000000000..0ccad4d678 --- /dev/null +++ b/.changeset/long-pumpkins-walk.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +Added a new `customResources` field to the ClusterDetails interface, in order to specify (override) custom resources per cluster diff --git a/plugins/kubernetes-backend/api-report.md b/plugins/kubernetes-backend/api-report.md index 15b1cef853..03ecefa79d 100644 --- a/plugins/kubernetes-backend/api-report.md +++ b/plugins/kubernetes-backend/api-report.md @@ -35,6 +35,7 @@ export interface ClusterDetails { authProvider: string; // (undocumented) caData?: string | undefined; + customResources?: CustomResourceMatcher[]; dashboardApp?: string; dashboardParameters?: JsonObject; dashboardUrl?: string; From 9a0930e6d15a8f6a0d2bdba1dd14d3f445862819 Mon Sep 17 00:00:00 2001 From: Andres Mauricio Gomez P Date: Tue, 2 Aug 2022 16:13:51 -0500 Subject: [PATCH 180/377] Kubernetes docs changed to show the new customResources property at the clusters level Signed-off-by: Andres Mauricio Gomez P --- docs/features/kubernetes/configuration.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/features/kubernetes/configuration.md b/docs/features/kubernetes/configuration.md index dc541c5c50..04a04304f9 100644 --- a/docs/features/kubernetes/configuration.md +++ b/docs/features/kubernetes/configuration.md @@ -31,6 +31,10 @@ kubernetes: dashboardUrl: http://127.0.0.1:64713 # url copied from running the command: minikube service kubernetes-dashboard -n kubernetes-dashboard dashboardApp: standard caData: ${K8S_CONFIG_CA_DATA} + customResources: + - group: 'argoproj.io' + apiVersion: 'v1alpha1' + plural: 'rollouts' - url: http://127.0.0.2:9999 name: aws-cluster-1 authProvider: 'aws' @@ -254,6 +258,11 @@ See also https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication#environments-without-gcloud for complete docs about GKE without `gcloud`. +##### `clusters.\*.customResources` (optional) + +Configures which [custom resources][3] to look for when returning an entity's +Kubernetes resources belonging to the cluster. Same specification as [`customResources`](#customresources-optional) + #### `gke` This cluster locator is designed to work with Kubernetes clusters running in @@ -327,9 +336,13 @@ it is also possible to implement a ### `customResources` (optional) -Configures which [custom resources][3] to look for when returning an entity's +Configures which [custom resources][3] to look for by default when returning an entity's Kubernetes resources. +**Notes:** + +- The optional `kubernetes.customResources` property is overrode by `customResources` at the [clusters level](#clusterscustomresources-optional). + Defaults to empty array. Example: ```yaml From 44bbea7484b58144a136c9d8f7b7f26f40f5adf9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 17:18:36 +0000 Subject: [PATCH 181/377] fix(deps): update dependency @codemirror/view to v6.1.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4c298a702b..76a23cee38 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2497,9 +2497,9 @@ "@lezer/highlight" "^1.0.0" "@codemirror/view@^6.0.0": - version "6.1.2" - resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.1.2.tgz#22dd4f6867581aa09dc1d952253f655c1a44bd91" - integrity sha512-puUydfKwfmOo+ixtuB+uN/ZpcteEYSnpjHmMaow1sOQhNICsKtGBup3i9ybVqyzDagARRYzSHTWjbdeHqmn31w== + version "6.1.3" + resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.1.3.tgz#5b476dc64066e4cbc22148e5bc0a4d948e41ff01" + integrity sha512-Ba8TdKX8cphIsgJ3NGT15Ac8c2mIObwo6MsDryffYKqB7Nw6l1c9cnjrahPF8DoN3HVfryW395O77vkuCNhW0A== dependencies: "@codemirror/state" "^6.0.0" style-mod "^4.0.0" From 70f064c7e093034571e9be142fa3e9cf81f081c1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 20:35:36 +0000 Subject: [PATCH 182/377] fix(deps): update dependency aws-sdk to v2.1188.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 76a23cee38..2a83fcfbdd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9093,9 +9093,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1187.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1187.0.tgz#eb928d64305630f53b8f6dad5c7b91fec8f04622" - integrity sha512-QcxQ3asIhH9QQnN/5JO3MaHRjwcy3/AsBzcAjPU+lHZGV0drnuDmg3ZkZuAa/mOgQ3MEi68G3gYD+481QJgnMg== + version "2.1188.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1188.0.tgz#94b710948ef2924093a8d6fe42443a792385afa2" + integrity sha512-4KXwjRjbCzU1luTOeH+ded92H51I4UuHaZzx2EI+JA0II1+q48heTxFlFd7yp7jGz9UwjPb6k12Jv1W3r0JWxA== dependencies: buffer "4.9.2" events "1.1.1" From 6f56b6b9def0fd9e5fd6f49b0e733dbed8160fb1 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 3 Aug 2022 18:25:20 +0200 Subject: [PATCH 183/377] Add PATCH and HEAD to the Access-Control-Allow-Methods Signed-off-by: Vincenzo Scamporlino --- app-config.yaml | 2 +- packages/create-app/templates/default-app/app-config.yaml.hbs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index cb865a52b9..32b53da236 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -39,7 +39,7 @@ backend: store: memory cors: origin: http://localhost:3000 - methods: [GET, POST, PUT, DELETE] + methods: [GET, HEAD, PATCH, POST, PUT, DELETE] credentials: true csp: connect-src: ["'self'", 'http:', 'https:'] 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 cd6998de69..9c31ccf381 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -24,7 +24,7 @@ backend: # Default Helmet Content-Security-Policy values can be removed by setting the key to false cors: origin: http://localhost:3000 - methods: [GET, POST, PUT, DELETE] + methods: [GET, HEAD, PATCH, POST, PUT, DELETE] credentials: true # This is for local developement only, it is not recommended to use this in production # The production database configuration is stored in app-config.production.yaml From 0174a0a022f834a790abca27656ec3d4c2a10af6 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 3 Aug 2022 22:52:14 +0200 Subject: [PATCH 184/377] Add changeset Signed-off-by: Vincenzo Scamporlino --- .changeset/wicked-knives-wink.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/wicked-knives-wink.md diff --git a/.changeset/wicked-knives-wink.md b/.changeset/wicked-knives-wink.md new file mode 100644 index 0000000000..070e7709a9 --- /dev/null +++ b/.changeset/wicked-knives-wink.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`. From bda94f67f461e62c594d5d3eb847485d773aa4d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 01:34:27 +0000 Subject: [PATCH 185/377] chore(deps): update storybook monorepo to v6.5.10 Signed-off-by: Renovate Bot --- storybook/yarn.lock | 2153 ++++++++++++++++++++++--------------------- 1 file changed, 1086 insertions(+), 1067 deletions(-) diff --git a/storybook/yarn.lock b/storybook/yarn.lock index bec1d7019f..364b87607b 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -10,17 +10,17 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.5.5", "@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== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.16.7" + "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10": - version "7.18.5" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz#acac0c839e317038c73137fbb6ef71a1d6238471" - integrity sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" + integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== "@babel/core@7.12.9": version "7.12.9" @@ -45,80 +45,80 @@ source-map "^0.5.0" "@babel/core@^7.12.10", "@babel/core@^7.7.5": - version "7.18.5" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz#c597fa680e58d571c28dda9827669c78cdd7f000" - integrity sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ== + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8" + integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw== dependencies: "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.2" - "@babel/parser" "^7.18.5" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.5" - "@babel/types" "^7.18.4" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.10" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helpers" "^7.18.9" + "@babel/parser" "^7.18.10" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.10" + "@babel/types" "^7.18.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.18.2": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" - integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz#794f328bfabdcbaf0ebf9bf91b5b57b61fa77a2a" + integrity sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA== dependencies: - "@babel/types" "^7.18.2" - "@jridgewell/gen-mapping" "^0.3.0" + "@babel/types" "^7.18.10" + "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@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" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.18.2": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" - integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" + integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" + "@babel/compat-data" "^7.18.8" + "@babel/helper-validator-option" "^7.18.6" browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce" + integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd" - integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw== +"@babel/helper-create-regexp-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" + integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.1.0" "@babel/helper-define-polyfill-provider@^0.1.5": version "0.1.5" @@ -134,284 +134,288 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== +"@babel/helper-define-polyfill-provider@^0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" + integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" - integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== +"@babel/helper-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" + integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.9" -"@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== +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.18.9" -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" - integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" + integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== 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.18.0" - "@babel/types" "^7.18.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" -"@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" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" "@babel/helper-plugin-utils@7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" - integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" + integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.16.7", "@babel/helper-replace-supers@^7.18.2": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0" - integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== dependencies: - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helper-simple-access@^7.17.7", "@babel/helper-simple-access@^7.18.2": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" - integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== dependencies: - "@babel/types" "^7.18.2" + "@babel/types" "^7.18.6" -"@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" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.18.9" -"@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== +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@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== +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helper-wrap-function@^7.18.9": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz#a7fcd3ab9b1be4c9b52cf7d7fdc1e88c2ce93396" + integrity sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ== dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" + "@babel/helper-function-name" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.10" + "@babel/types" "^7.18.10" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.18.2": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" - integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== +"@babel/helpers@^7.12.5", "@babel/helpers@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" + integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/highlight@^7.16.7": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.16.7", "@babel/parser@^7.18.5": - version "7.18.5" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz#337062363436a893a2d22faa60be5bb37091c83c" - integrity sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw== +"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz#94b5f8522356e69e8277276adf67ed280c90ecc1" + integrity sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": - version "7.17.12" - 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.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e" - integrity sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + 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.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz#0d498ec8f0374b1e2eb54b9cb2c4c78714c77753" - integrity sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" -"@babel/plugin-proposal-async-generator-functions@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz#094a417e31ce7e692d84bab06c8e2a607cbeef03" - integrity sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ== +"@babel/plugin-proposal-async-generator-functions@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" + integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz#84f65c0cc247d46f40a6da99aadd6438315d80a4" - integrity sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw== +"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710" - integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA== +"@babel/plugin-proposal-class-static-block@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" + integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-decorators@^7.12.12": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz#dbe4086d2d42db489399783c3aa9272e9700afd4" - integrity sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ== + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.10.tgz#788650d01e518a8a722eb8b3055dd9d73ecb7a35" + integrity sha512-wdGTwWF5QtpTY/gbBtQLAiCnoxfD4qMbN87NYZle1dOZ9Os8Y6zXcKrIaOU8W+TIvFUWVGG9tUgNww3CjXRVVw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-replace-supers" "^7.18.2" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/plugin-syntax-decorators" "^7.17.12" - charcodes "^0.2.0" + "@babel/helper-create-class-features-plugin" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/plugin-syntax-decorators" "^7.18.6" -"@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-proposal-export-default-from@^7.12.1": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.17.12.tgz#df785e638618d8ffa14e08c78c44d9695d083b73" - integrity sha512-LpsTRw725eBAXXKUOnJJct+SEaOzwR78zahcLuripD2+dKc2Sj+8Q2DzA+GC/jOpOu/KlDXuxrzG214o1zTauQ== + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz#091f4794dbce4027c03cf4ebc64d3fb96b75c206" + integrity sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-export-default-from" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-default-from" "^7.18.6" -"@babel/plugin-proposal-export-namespace-from@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz#b22864ccd662db9606edb2287ea5fd1709f05378" - integrity sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ== +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz#f4642951792437233216d8c1af370bb0fbff4664" - integrity sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg== +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz#c64a1bcb2b0a6d0ed2ff674fd120f90ee4b88a23" - integrity sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz#1e93079bbc2cbc756f6db6a1925157c4a92b94be" - integrity sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@7.12.1": @@ -423,59 +427,59 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8" - integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw== +"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.17.12" + "@babel/plugin-transform-parameters" "^7.18.8" -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174" - integrity sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ== +"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz#c2ca3a80beb7539289938da005ad525a038a819c" - integrity sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A== +"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.12.1", "@babel/plugin-proposal-private-property-in-object@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d" - integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg== +"@babel/plugin-proposal-private-property-in-object@^7.12.1", "@babel/plugin-proposal-private-property-in-object@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" + integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.17.12", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d" - integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A== +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -498,12 +502,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz#02e8f678602f0af8222235271efea945cfdb018a" - integrity sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw== +"@babel/plugin-syntax-decorators@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.18.6.tgz#2e45af22835d0b0f8665da2bfd4463649ce5dbc1" + integrity sha512-fqyLgjcxf/1yhyZ6A+yo1u9gJ7eleFQod2lkaUsF9DQ7sbbY3Ligym3L0+I2c0WmqNKDpoD9UTb1AKP3qRMOAQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -512,12 +516,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-export-default-from@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz#fa89cf13b60de2c3f79acdc2b52a21174c6de060" - integrity sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA== +"@babel/plugin-syntax-export-default-from@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz#8df076711a4818c4ce4f23e61d622b0ba2ff84bc" + integrity sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" @@ -526,19 +530,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz#23d852902acd19f42923fca9d0f196984d124e73" - integrity sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ== +"@babel/plugin-syntax-flow@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" + integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-import-assertions@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd" - integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw== +"@babel/plugin-syntax-import-assertions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" + integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -554,12 +558,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47" - integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog== +"@babel/plugin-syntax-jsx@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -617,347 +621,347 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" - integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== +"@babel/plugin-syntax-typescript@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz#dddd783b473b1b1537ef46423e3944ff24898c45" - integrity sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA== +"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" + integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz#dbe5511e6b01eee1496c944e35cdfe3f58050832" - integrity sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ== +"@babel/plugin-transform-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" + integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" -"@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.17.12": - version "7.18.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz#7988627b3e9186a13e4d7735dc9c34a056613fb9" - integrity sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw== +"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.17.12": - version "7.18.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz#51310b812a090b846c784e47087fa6457baef814" - integrity sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A== +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da" + integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-replace-supers" "^7.18.2" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz#bca616a83679698f3258e892ed422546e531387f" - integrity sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ== +"@babel/plugin-transform-computed-properties@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858" - integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw== +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz#68906549c021cb231bee1db21d3b5b095f8ee292" + integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-duplicate-keys@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz#a09aa709a3310013f8e48e0e23bc7ace0f21477c" - integrity sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw== +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-flow-strip-types@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz#5e070f99a4152194bd9275de140e83a92966cab3" - integrity sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw== +"@babel/plugin-transform-flow-strip-types@^7.18.6": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.18.9.tgz#5b4cc521426263b5ce08893a2db41097ceba35bf" + integrity sha512-+G6rp2zRuOAInY5wcggsx4+QVao1qPM0osC9fTUVlAV3zOrzTCnrMAFVnR6+a3T8wz1wFIH7KhYMcMB3u1n80A== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-flow" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-flow" "^7.18.6" -"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.18.1": - version "7.18.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036" - integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg== +"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.18.8": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-literals@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz#97131fbc6bbb261487105b4b3edbf9ebf9c830ae" - integrity sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ== +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-amd@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed" - integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA== +"@babel/plugin-transform-modules-amd@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" + integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.18.2": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e" - integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ== +"@babel/plugin-transform-modules-commonjs@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" + integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-simple-access" "^7.18.2" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.18.0": - version "7.18.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz#87f11c44fbfd3657be000d4897e192d9cb535996" - integrity sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q== +"@babel/plugin-transform-modules-systemjs@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06" + integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-validator-identifier" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f" - integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA== +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz#9c4a5a5966e0434d515f2675c227fd8cc8606931" - integrity sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" + integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-new-target@^7.17.12": - version "7.18.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz#8c228c4a07501dd12c95c5f23d1622131cc23931" - integrity sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg== +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz#eb467cd9586ff5ff115a9880d6fdbd4a846b7766" - integrity sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA== +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.18.8": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-display-name@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" - integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== +"@babel/plugin-transform-react-display-name@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" + integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-jsx-development@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" - integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== +"@babel/plugin-transform-react-jsx-development@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" + integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== dependencies: - "@babel/plugin-transform-react-jsx" "^7.16.7" + "@babel/plugin-transform-react-jsx" "^7.18.6" -"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.16.7", "@babel/plugin-transform-react-jsx@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz#2aa20022709cd6a3f40b45d60603d5f269586dba" - integrity sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ== +"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.18.6": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz#ea47b2c4197102c196cbd10db9b3bb20daa820f1" + integrity sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-jsx" "^7.17.12" - "@babel/types" "^7.17.12" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-jsx" "^7.18.6" + "@babel/types" "^7.18.10" -"@babel/plugin-transform-react-pure-annotations@^7.16.7": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz#ef82c8e310913f3522462c9ac967d395092f1954" - integrity sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ== +"@babel/plugin-transform-react-pure-annotations@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" + integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.18.0": - version "7.18.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5" - integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw== +"@babel/plugin-transform-regenerator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" + integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" regenerator-transform "^0.15.0" -"@babel/plugin-transform-reserved-words@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz#7dbd349f3cdffba751e817cf40ca1386732f652f" - integrity sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA== +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== +"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz#c112cad3064299f03ea32afed1d659223935d1f5" - integrity sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg== +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664" + integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.18.2": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz#31ed6915721864847c48b656281d0098ea1add28" - integrity sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g== +"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typeof-symbol@^7.17.12": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz#0f12f57ac35e98b35b4ed34829948d42bd0e6889" - integrity sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw== +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typescript@^7.17.12": - version "7.18.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz#587eaf6a39edb8c06215e550dc939faeadd750bf" - integrity sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw== +"@babel/plugin-transform-typescript@^7.18.6": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.10.tgz#b23401b32f1f079396bcaed01667a54ebe4f9f85" + integrity sha512-j2HQCJuMbi88QftIb5zlRu3c7PU+sXNnscqsrjqegoGiCgXR569pEdben9vly5QHKL2ilYkfnSwu64zsZo/VYQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-typescript" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-typescript" "^7.18.6" -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== +"@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/preset-env@^7.12.11": - version "7.18.2" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz#f47d3000a098617926e674c945d95a28cb90977a" - integrity sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q== + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" + integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12" - "@babel/plugin-proposal-async-generator-functions" "^7.17.12" - "@babel/plugin-proposal-class-properties" "^7.17.12" - "@babel/plugin-proposal-class-static-block" "^7.18.0" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.17.12" - "@babel/plugin-proposal-json-strings" "^7.17.12" - "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.18.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.17.12" - "@babel/plugin-proposal-private-methods" "^7.17.12" - "@babel/plugin-proposal-private-property-in-object" "^7.17.12" - "@babel/plugin-proposal-unicode-property-regex" "^7.17.12" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.18.10" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.17.12" + "@babel/plugin-syntax-import-assertions" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -967,54 +971,54 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.17.12" - "@babel/plugin-transform-async-to-generator" "^7.17.12" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.17.12" - "@babel/plugin-transform-classes" "^7.17.12" - "@babel/plugin-transform-computed-properties" "^7.17.12" - "@babel/plugin-transform-destructuring" "^7.18.0" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.17.12" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.18.1" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.17.12" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.18.0" - "@babel/plugin-transform-modules-commonjs" "^7.18.2" - "@babel/plugin-transform-modules-systemjs" "^7.18.0" - "@babel/plugin-transform-modules-umd" "^7.18.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12" - "@babel/plugin-transform-new-target" "^7.17.12" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.17.12" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.18.0" - "@babel/plugin-transform-reserved-words" "^7.17.12" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.17.12" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.18.2" - "@babel/plugin-transform-typeof-symbol" "^7.17.12" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.18.9" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.9" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.18.6" + "@babel/plugin-transform-modules-commonjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.18.9" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.18.9" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.2" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" + "@babel/types" "^7.18.10" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" core-js-compat "^3.22.1" semver "^6.3.0" "@babel/preset-flow@^7.12.1": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.17.12.tgz#664a5df59190260939eee862800a255bef3bd66f" - integrity sha512-7QDz7k4uiaBdu7N89VKjUn807pJRXmdirQu0KyR9LXnQrr5Jt41eIMKTS7ljej+H29erwmMrwq9Io9mJHLI3Lw== + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz#83f7602ba566e72a9918beefafef8ef16d2810cb" + integrity sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-flow-strip-types" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-flow-strip-types" "^7.18.6" "@babel/preset-modules@^0.1.5": version "0.1.5" @@ -1028,30 +1032,30 @@ esutils "^2.0.2" "@babel/preset-react@^7.12.10": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz#62adbd2d1870c0de3893095757ed5b00b492ab3d" - integrity sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA== + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" + integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-react-display-name" "^7.16.7" - "@babel/plugin-transform-react-jsx" "^7.17.12" - "@babel/plugin-transform-react-jsx-development" "^7.16.7" - "@babel/plugin-transform-react-pure-annotations" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-react-display-name" "^7.18.6" + "@babel/plugin-transform-react-jsx" "^7.18.6" + "@babel/plugin-transform-react-jsx-development" "^7.18.6" + "@babel/plugin-transform-react-pure-annotations" "^7.18.6" "@babel/preset-typescript@^7.12.7": - version "7.17.12" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz#40269e0a0084d56fc5731b6c40febe1c9a4a3e8c" - integrity sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg== + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" + integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-typescript" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-typescript" "^7.18.6" "@babel/register@^7.12.1": - version "7.17.7" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.17.7.tgz#5eef3e0f4afc07e25e847720e7b987ae33f08d0b" - integrity sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA== + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c" + integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" @@ -1060,43 +1064,44 @@ source-map-support "^0.5.16" "@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.0", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4": - version "7.18.3" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" - integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.7", "@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== +"@babel/template@^7.12.7", "@babel/template@^7.18.10", "@babel/template@^7.18.6": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.18.5": - version "7.18.5" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz#94a8195ad9642801837988ab77f36e992d9a20cd" - integrity sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA== +"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.9": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz#37ad97d1cb00efa869b91dd5d1950f8a6cf0cb08" + integrity sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g== dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.5" - "@babel/types" "^7.18.4" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.10" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.12", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.18.4", "@babel/types@^7.2.0", "@babel/types@^7.4.4": - version "7.18.4" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" - integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== +"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.2.0", "@babel/types@^7.4.4": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6" + integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" "@base2/pretty-print-object@1.0.1": @@ -1137,7 +1142,7 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0": +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== @@ -1169,7 +1174,7 @@ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": version "0.3.14" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== @@ -1273,18 +1278,18 @@ source-map "^0.7.3" "@storybook/addon-a11y@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.5.9.tgz#191fb8ea9be4feee67fd11553b98ab56ecfc1295" - integrity sha512-jRiuJ2xlN8quVq2lOqpxqyuwAj8xLcgVBPy+Mf220u7AZmmbS/0sONyHKROfEBjJoHQAQYqn2vSAeuQZuTWyVA== + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.5.10.tgz#a907cbd3f1889ba367828435a58ecc9dac42f6ba" + integrity sha512-BnDbLg7YEAX1aEyiB+gDFYMXIbiSFH/M0CdwPCq7T7o8cqULKOHtQkndMja1soMxsqHAVH8AGvVVZ8VlaxaJ3Q== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/api" "6.5.9" - "@storybook/channels" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/components" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/api" "6.5.10" + "@storybook/channels" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/components" "6.5.10" + "@storybook/core-events" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.9" + "@storybook/theming" "6.5.10" axe-core "^4.2.0" core-js "^3.8.2" global "^4.4.0" @@ -1295,17 +1300,17 @@ util-deprecate "^1.0.2" "@storybook/addon-actions@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.5.9.tgz#d50d65631403e1a5b680961429d9c0d7bd383e68" - integrity sha512-wDYm3M1bN+zcYZV3Q24M03b/P8DDpvj1oSoY6VLlxDAi56h8qZB/voeIS2I6vWXOB79C5tbwljYNQO0GsufS0g== + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.5.10.tgz#83ec807a899e0412cf98037647f256c45cc32bf5" + integrity sha512-vpCnEu81fmtYzOf0QsRYoDuf9wXgVVl2VysE1dWRebRhIUDU0JurrthTnw322e38D4FzaoNGqZE7wnBYBohzZA== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/api" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/components" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/api" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/components" "6.5.10" + "@storybook/core-events" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.9" + "@storybook/theming" "6.5.10" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -1320,33 +1325,33 @@ uuid-browser "^3.1.0" "@storybook/addon-controls@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.5.9.tgz#8f6ef939c87b3dbad98f8bda7e124f0b34f668d2" - integrity sha512-VvjkgK32bGURKyWU2No6Q2B0RQZjLZk8D3neVNCnrWxwrl1G82StegxjRPn/UZm9+MZVPvTvI46nj1VdgOktnw== + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.5.10.tgz#275ddcd0f4dc1a107777b425417a8f252f52a91e" + integrity sha512-lC2y3XcolmQAJwFurIyGrynAHPWmfNtTCdu3rQBTVGwyxCoNwdOOeC2jV0BRqX2+CW6OHzJr9frNWXPSaZ8c4w== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/api" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/components" "6.5.9" - "@storybook/core-common" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/api" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/components" "6.5.10" + "@storybook/core-common" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/node-logger" "6.5.9" - "@storybook/store" "6.5.9" - "@storybook/theming" "6.5.9" + "@storybook/node-logger" "6.5.10" + "@storybook/store" "6.5.10" + "@storybook/theming" "6.5.10" core-js "^3.8.2" lodash "^4.17.21" ts-dedent "^2.0.0" "@storybook/addon-links@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.5.9.tgz#91cbca0c044796badf2498723fdd10dacea5748b" - integrity sha512-4BYC7pkxL3NLRnEgTA9jpIkObQKril+XFj1WtmY/lngF90vvK0Kc/TtvTA2/5tSgrHfxEuPevIdxMIyLJ4ejWQ== + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.5.10.tgz#f66568fbc84b942032ac2de85f799d69fcf77922" + integrity sha512-r3WzYIPz7WjHiaPObC2Tg6bHuZRBb/Kt/X+Eitw+jTqBel7ksvkO36tn81q8Eyj61qIdNQmUWAaX/0aewT0kLA== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core-events" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.9" + "@storybook/router" "6.5.10" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -1356,17 +1361,17 @@ ts-dedent "^2.0.0" "@storybook/addon-storysource@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.5.9.tgz#8e5fb76b9314a69831a3b5e08e8570407c39de75" - integrity sha512-7KLw03mE1JJSJQrqNDftoVVp2BBq8wltd0qo7WHkpRVfir9dMO3g7Wy6S6UPsrb9th47ZjonwBJEc28GwAq0yg== + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.5.10.tgz#620619088657f247023d454dbaff3a2e1ccd7537" + integrity sha512-DM3UcbdqPfTBcpXr1AuzAs0DDTBnXMpXvOEkdoTTtGpbPIyA+J5KWeW1pAWqZlzI4k0UemJrAm2G6n/gGGBUiQ== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/api" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/components" "6.5.9" - "@storybook/router" "6.5.9" - "@storybook/source-loader" "6.5.9" - "@storybook/theming" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/api" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/components" "6.5.10" + "@storybook/router" "6.5.10" + "@storybook/source-loader" "6.5.10" + "@storybook/theming" "6.5.10" core-js "^3.8.2" estraverse "^5.2.0" loader-utils "^2.0.0" @@ -1374,7 +1379,24 @@ react-syntax-highlighter "^15.4.5" regenerator-runtime "^0.13.7" -"@storybook/addons@6.5.9", "@storybook/addons@^6.5.9": +"@storybook/addons@6.5.10", "@storybook/addons@^6.5.9": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.10.tgz#bff2f8fb8453e9df04fa6dbc41341fd05f4cdeba" + integrity sha512-VD4tBCQ23PkSeDoxuHcKy0RfhIs3oMYjBacOZx7d0bvOzK9WjPyvE2ysDAh7r/ceqnwmWHAScIpE+I1RU7gl+g== + dependencies: + "@storybook/api" "6.5.10" + "@storybook/channels" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core-events" "6.5.10" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/router" "6.5.10" + "@storybook/theming" "6.5.10" + "@types/webpack-env" "^1.16.0" + core-js "^3.8.2" + global "^4.4.0" + regenerator-runtime "^0.13.7" + +"@storybook/addons@6.5.9": version "6.5.9" resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.5.9.tgz#5a9d7395c579a9cbc44dfc122362fb3c95dfb9d5" integrity sha512-adwdiXg+mntfPocLc1KXjZXyLgGk7Aac699Fwe+OUYPEC5tW347Rm/kFatcE556d42o5czcRiq3ZSIGWnm9ieQ== @@ -1391,6 +1413,29 @@ global "^4.4.0" regenerator-runtime "^0.13.7" +"@storybook/api@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/api/-/api-6.5.10.tgz#215623844648f0da2ac646fdcdd1345c2e1a8490" + integrity sha512-AkmgSPNEGdKp4oZA4KQ+RJsacw7GwfvjsVDnCkcXqS9zmSr/RNL0fhpcd60KKkmx/hGKPTDFpK3ZayxDrJ/h4A== + dependencies: + "@storybook/channels" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core-events" "6.5.10" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/router" "6.5.10" + "@storybook/semver" "^7.3.2" + "@storybook/theming" "6.5.10" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.21" + memoizerific "^1.11.3" + regenerator-runtime "^0.13.7" + store2 "^2.12.0" + telejson "^6.0.8" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + "@storybook/api@6.5.9": version "6.5.9" resolved "https://registry.npmjs.org/@storybook/api/-/api-6.5.9.tgz#303733214c9de0422d162f7c54ae05d088b89bf9" @@ -1414,28 +1459,28 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack4@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.5.9.tgz#4b37e1fa23a25aa4bfeaba640e5d318fcd511f95" - integrity sha512-YOeA4++9uRZ8Hog1wC60yjaxBOiI1FRQNtax7b9E7g+kP8UlSCPCGcv4gls9hFmzbzTOPfQTWnToA9Oa6jzRVw== +"@storybook/builder-webpack4@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.5.10.tgz#79e95323577a37349ab3c81193fa249ac5c50173" + integrity sha512-AoKjsCNoQQoZXYwBDxO8s+yVEd5FjBJAaysEuUTHq2fb81jwLrGcEOo6hjw4jqfugZQIzYUEjPazlvubS78zpw== dependencies: "@babel/core" "^7.12.10" - "@storybook/addons" "6.5.9" - "@storybook/api" "6.5.9" - "@storybook/channel-postmessage" "6.5.9" - "@storybook/channels" "6.5.9" - "@storybook/client-api" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/components" "6.5.9" - "@storybook/core-common" "6.5.9" - "@storybook/core-events" "6.5.9" - "@storybook/node-logger" "6.5.9" - "@storybook/preview-web" "6.5.9" - "@storybook/router" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/api" "6.5.10" + "@storybook/channel-postmessage" "6.5.10" + "@storybook/channels" "6.5.10" + "@storybook/client-api" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/components" "6.5.10" + "@storybook/core-common" "6.5.10" + "@storybook/core-events" "6.5.10" + "@storybook/node-logger" "6.5.10" + "@storybook/preview-web" "6.5.10" + "@storybook/router" "6.5.10" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.9" - "@storybook/theming" "6.5.9" - "@storybook/ui" "6.5.9" + "@storybook/store" "6.5.10" + "@storybook/theming" "6.5.10" + "@storybook/ui" "6.5.10" "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" autoprefixer "^9.8.6" @@ -1468,26 +1513,26 @@ webpack-virtual-modules "^0.2.2" "@storybook/builder-webpack5@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-6.5.9.tgz#30b4e08622daff104bcccd015d3ee7902f99dd99" - integrity sha512-NUVZ4Qci6HWPuoH8U/zQkdBO5soGgu7QYrGC/LWU0tRfmmZxkjr7IUU14ppDpGPYgx3r7jkaQI1J/E1YEmSCWQ== + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-6.5.10.tgz#de78a8a262410bbe65eecc62f2beaed1fe44dd5d" + integrity sha512-Hcsm/TzGRXHndgQCftt+pzI7GQJRqAv8A8ie5b3aFcodhJfK0qzZsQD4Y4ZWxXh1I/xe5t74Kl2qUJ40PX+geA== dependencies: "@babel/core" "^7.12.10" - "@storybook/addons" "6.5.9" - "@storybook/api" "6.5.9" - "@storybook/channel-postmessage" "6.5.9" - "@storybook/channels" "6.5.9" - "@storybook/client-api" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/components" "6.5.9" - "@storybook/core-common" "6.5.9" - "@storybook/core-events" "6.5.9" - "@storybook/node-logger" "6.5.9" - "@storybook/preview-web" "6.5.9" - "@storybook/router" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/api" "6.5.10" + "@storybook/channel-postmessage" "6.5.10" + "@storybook/channels" "6.5.10" + "@storybook/client-api" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/components" "6.5.10" + "@storybook/core-common" "6.5.10" + "@storybook/core-events" "6.5.10" + "@storybook/node-logger" "6.5.10" + "@storybook/preview-web" "6.5.10" + "@storybook/router" "6.5.10" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.9" - "@storybook/theming" "6.5.9" + "@storybook/store" "6.5.10" + "@storybook/theming" "6.5.10" "@types/node" "^14.0.10 || ^16.0.0" babel-loader "^8.0.0" babel-plugin-named-exports-order "^0.0.2" @@ -1511,30 +1556,39 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.4.1" -"@storybook/channel-postmessage@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.9.tgz#9cf4530f0364cee0d5e58f92d6fb5ce98e10257b" - integrity sha512-pX/0R8UW7ezBhCrafRaL20OvMRcmESYvQQCDgjqSzJyHkcG51GOhsd6Ge93eJ6QvRMm9+w0Zs93N2VKjVtz0Qw== +"@storybook/channel-postmessage@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.5.10.tgz#be8971b4b7f91b664bb2c6965fdfb073d541a03e" + integrity sha512-t9PTA0UzFvYa3IlOfpBOolfrRMPTjUMIeCQ6FNyM0aj5GqLKSvoQzP8NeoRpIrvyf6ljFKKdaMaZ3fiCvh45ag== dependencies: - "@storybook/channels" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/channels" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core-events" "6.5.10" core-js "^3.8.2" global "^4.4.0" qs "^6.10.0" telejson "^6.0.8" -"@storybook/channel-websocket@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.5.9.tgz#6b7a0127fec58ee5be4f6aebcf460adc564f2f34" - integrity sha512-xtHvSNwuOhkgALwVshKWsoFhDmuvcosdYfxcfFGEiYKXIu46tRS5ZXmpmgEC/0JAVkVoFj5nL8bV7IY5np6oaA== +"@storybook/channel-websocket@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.5.10.tgz#bd1316a9b555229b215e5054a76b57c503dd8adc" + integrity sha512-RTXMZbMWCS3xU+4GVIdfnUXsKcwg/WTozy88/5OxaKjGw6KgRedqLAQJKJ6Y5XlnwIcWelirkHj/COwTTXhbPg== dependencies: - "@storybook/channels" "6.5.9" - "@storybook/client-logger" "6.5.9" + "@storybook/channels" "6.5.10" + "@storybook/client-logger" "6.5.10" core-js "^3.8.2" global "^4.4.0" telejson "^6.0.8" +"@storybook/channels@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.10.tgz#fca5b0d1ea8d30b022e805301ed436407c867ac4" + integrity sha512-lo26YZ6kWpHXLhuHJF4P/bICY7jD/rXEZqReKtGOSk1Lv99/xvG6pqmcy3hWLf3v3Dy/8otjRPSR7izFVIIZgQ== + dependencies: + core-js "^3.8.2" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + "@storybook/channels@6.5.9": version "6.5.9" resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.5.9.tgz#abfab89a6587a2688e9926d4aafeb11c9d8b2e79" @@ -1544,18 +1598,18 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.9.tgz#3e4a8ec1d277fd81325c5d959c553161a85fa182" - integrity sha512-pc7JKJoWLesixUKvG2nV36HukUuYoGRyAgD3PpIV7qSBS4JixqZ3VAHFUtqV1UzfOSQTovLSl4a0rIRnpie6gA== +"@storybook/client-api@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.5.10.tgz#0bc3f68ce014ce1ffd560472a893ba04be370f09" + integrity sha512-3wBWZl3NvMFgMovgEh+euiARAT2FXzpvTF4Q1gerGMNNDlrGxHnFvSuy4FHg/irtOGLa4yLz43ULFbYtpKw0Lg== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/channel-postmessage" "6.5.9" - "@storybook/channels" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/channel-postmessage" "6.5.10" + "@storybook/channels" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core-events" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.9" + "@storybook/store" "6.5.10" "@types/qs" "^6.9.5" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" @@ -1570,6 +1624,14 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" +"@storybook/client-logger@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.10.tgz#cfea823a5b8444409daa74f854c5d05367986b34" + integrity sha512-/xA0MHOevXev68hyLMQw8Qo8KczSIdXOxliAgrycMTkDmw5eKeA8TP7B8zP3wGuq/e3MrdD9/8MWhb/IQBNC3w== + dependencies: + core-js "^3.8.2" + global "^4.4.0" + "@storybook/client-logger@6.5.9", "@storybook/client-logger@^6.4.0": version "6.5.9" resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.9.tgz#dc1669abe8c45af1cc38f74c6f4b15ff33e63014" @@ -1578,37 +1640,35 @@ core-js "^3.8.2" global "^4.4.0" -"@storybook/components@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/components/-/components-6.5.9.tgz#97e07ffe11ab76c01ccee380888991bd161f75b2" - integrity sha512-BhfX980O9zn/1J4FNMeDo8ZvL1m5Ml3T4HRpfYmEBnf8oW5b5BeF6S2K2cwFStZRjWqm1feUcwNpZxCBVMkQnQ== +"@storybook/components@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/components/-/components-6.5.10.tgz#268e1269bc3d262f7dcec13f96c3b844919687b8" + integrity sha512-9OhgB8YQfGwOKjo/N96N5mrtJ6qDVVoEM1zuhea32tJUd2eYf0aSWpryA9VnOM0V1q/8DAoCg5rPBMYWMBU5uw== dependencies: - "@storybook/client-logger" "6.5.9" + "@storybook/client-logger" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.9" - "@types/react-syntax-highlighter" "11.0.5" + "@storybook/theming" "6.5.10" core-js "^3.8.2" memoizerific "^1.11.3" qs "^6.10.0" - react-syntax-highlighter "^15.4.5" regenerator-runtime "^0.13.7" util-deprecate "^1.0.2" -"@storybook/core-client@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.5.9.tgz#ea6035d1c90d2c68e860e3cf629979491856cd88" - integrity sha512-LY0QbhShowO+PQx3gao3wdVjpKMH1AaSLmuI95FrcjoMmSXGf96jVLKQp9mJRGeHIsAa93EQBYuCihZycM3Kbg== +"@storybook/core-client@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.5.10.tgz#90c86923236c8efff33d454a0dc552f6df4346b1" + integrity sha512-THsIjNrOrampTl0Lgfjvfjk1JnktKb4CQLOM80KpQb4cjDqorBjJmErzUkUQ2y3fXvrDmQ/kUREkShET4XEdtA== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/channel-postmessage" "6.5.9" - "@storybook/channel-websocket" "6.5.9" - "@storybook/client-api" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/channel-postmessage" "6.5.10" + "@storybook/channel-websocket" "6.5.10" + "@storybook/client-api" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core-events" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/preview-web" "6.5.9" - "@storybook/store" "6.5.9" - "@storybook/ui" "6.5.9" + "@storybook/preview-web" "6.5.10" + "@storybook/store" "6.5.10" + "@storybook/ui" "6.5.10" airbnb-js-shims "^2.2.1" ansi-to-html "^0.6.11" core-js "^3.8.2" @@ -1620,10 +1680,10 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/core-common@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.9.tgz#7ca8258ea2634b1d64695c1e4262f71cc7457989" - integrity sha512-NxOK0mrOCo0TWZ7Npc5HU66EKoRHlrtg18/ZixblLDWQMIqY9XCck8K1kJ8QYpYCHla+aHIsYUArFe2vhlEfZA== +"@storybook/core-common@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.5.10.tgz#6b93449548b0890f5c68d89f0ca78e092026182c" + integrity sha512-Bx+VKkfWdrAmD8T51Sjq/mMhRaiapBHcpG4cU5bc3DMbg+LF2/yrgqv/cjVu+m5gHAzYCac5D7gqzBgvG7Myww== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -1647,7 +1707,7 @@ "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.5.9" + "@storybook/node-logger" "6.5.10" "@storybook/semver" "^7.3.2" "@types/node" "^14.0.10 || ^16.0.0" "@types/pretty-hrtime" "^1.0.0" @@ -1676,6 +1736,13 @@ util-deprecate "^1.0.2" webpack "4" +"@storybook/core-events@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.10.tgz#66d87c8ea18db8e448018a16a3d0198ddbcbc683" + integrity sha512-EVb1gO1172klVIAABLOoigFMx0V88uctY0K/qVCO8n6v+wd2+0Ccn63kl+gTxsAC3WZ8XhXh9q2w5ImHklVECw== + dependencies: + core-js "^3.8.2" + "@storybook/core-events@6.5.9": version "6.5.9" resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.5.9.tgz#5b0783c7d22a586c0f5e927a61fe1b1223e19637" @@ -1683,23 +1750,23 @@ dependencies: core-js "^3.8.2" -"@storybook/core-server@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.5.9.tgz#749a881c1a81d7cf1a69f3782c06a7f0c39a505c" - integrity sha512-YeePGUrd5fQPvGzMhowh124KrcZURFpFXg1VB0Op3ESqCIsInoMZeObci4Gc+binMXC7vcv7aw3EwSLU37qJzQ== +"@storybook/core-server@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.5.10.tgz#ada3d647833c02cb8c742281c1f314ff866f96f8" + integrity sha512-jqwpA0ccA8X5ck4esWBid04+cEIVqirdAcqJeNb9IZAD+bRreO4Im8ilzr7jc5AmQ9fkqHs2NByFKh9TITp8NQ== dependencies: "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-webpack4" "6.5.9" - "@storybook/core-client" "6.5.9" - "@storybook/core-common" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/builder-webpack4" "6.5.10" + "@storybook/core-client" "6.5.10" + "@storybook/core-common" "6.5.10" + "@storybook/core-events" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/csf-tools" "6.5.9" - "@storybook/manager-webpack4" "6.5.9" - "@storybook/node-logger" "6.5.9" + "@storybook/csf-tools" "6.5.10" + "@storybook/manager-webpack4" "6.5.10" + "@storybook/node-logger" "6.5.10" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.9" - "@storybook/telemetry" "6.5.9" + "@storybook/store" "6.5.10" + "@storybook/telemetry" "6.5.10" "@types/node" "^14.0.10 || ^16.0.0" "@types/node-fetch" "^2.5.7" "@types/pretty-hrtime" "^1.0.0" @@ -1734,18 +1801,18 @@ ws "^8.2.3" x-default-browser "^0.4.0" -"@storybook/core@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/core/-/core-6.5.9.tgz#da4f237391d99aed1228323f24b335cafbdf3499" - integrity sha512-Mt3TTQnjQt2/pa60A+bqDsAOrYpohapdtt4DDZEbS8h0V6u11KyYYh3w7FCySlL+sPEyogj63l5Ec76Jah3l2w== +"@storybook/core@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/core/-/core-6.5.10.tgz#15ec8be85943251e25c2c24e80e20dcacc4fed65" + integrity sha512-K86yYa0tYlMxADlwQTculYvPROokQau09SCVqpsLg3wJCTvYFL4+SIqcYoyBSbFmHOdnYbJgPydjN33MYLiOZQ== dependencies: - "@storybook/core-client" "6.5.9" - "@storybook/core-server" "6.5.9" + "@storybook/core-client" "6.5.10" + "@storybook/core-server" "6.5.10" -"@storybook/csf-tools@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.5.9.tgz#8e01df2305b53e228229f0b45ada3720e6e42a1c" - integrity sha512-RAdhsO2XmEDyWy0qNQvdKMLeIZAuyfD+tYlUwBHRU6DbByDucvwgMOGy5dF97YNJFmyo93EUYJzXjUrJs3U1LQ== +"@storybook/csf-tools@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.5.10.tgz#ae6f1ebd4951e8978c8fe3e08ddd2bd269bf922b" + integrity sha512-H77kZQEisu7+skzeIbNZwmE09OqLjwJTeFhLN1pcjxKVa30LEI3pBHcNBxVKqgxl+Yg3KkB7W/ArLO2N+i2ohw== dependencies: "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" @@ -1769,14 +1836,14 @@ dependencies: lodash "^4.17.15" -"@storybook/docs-tools@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-6.5.9.tgz#5ff304f881e972ce14923a5ffcfed3f052094889" - integrity sha512-UoTaXLvec8x+q+4oYIk/t8DBju9C3ZTGklqOxDIt+0kS3TFAqEgI3JhKXqQOXgN5zDcvLVSxi8dbVAeSxk2ktA== +"@storybook/docs-tools@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-6.5.10.tgz#30baa62c1ca3a18b13625b6b305e23e39f404416" + integrity sha512-/bvYgOO+CxMEcHifkjJg0A60OTGOhcjGxnsB1h0gJuxMrqA/7Qwc108bFmPiX0eiD1BovFkZLJV4O6OY7zP5Vw== dependencies: "@babel/core" "^7.12.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.9" + "@storybook/store" "6.5.10" core-js "^3.8.2" doctrine "^3.0.0" lodash "^4.17.21" @@ -1793,20 +1860,20 @@ core-js "^3.8.2" global "^4.4.0" -"@storybook/manager-webpack4@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.5.9.tgz#c75d2cced4550c8a786f00b0e57b203d613e706c" - integrity sha512-49LZlHqWc7zj9tQfOOANixPYmLxqWTTZceA6DSXnKd9xDiO2Gl23Y+l/CSPXNZGDB8QFAwpimwqyKJj/NLH45A== +"@storybook/manager-webpack4@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.5.10.tgz#41bae252b863484f293954ef2d2dc80bf3e028f1" + integrity sha512-N/TlNDhuhARuFipR/ZJ/xEVESz23iIbCsZ4VNehLHm8PpiGlQUehk+jMjWmz5XV0bJItwjRclY+CU3GjZKblfQ== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.5.9" - "@storybook/core-client" "6.5.9" - "@storybook/core-common" "6.5.9" - "@storybook/node-logger" "6.5.9" - "@storybook/theming" "6.5.9" - "@storybook/ui" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/core-client" "6.5.10" + "@storybook/core-common" "6.5.10" + "@storybook/node-logger" "6.5.10" + "@storybook/theming" "6.5.10" + "@storybook/ui" "6.5.10" "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" babel-loader "^8.0.0" @@ -1835,19 +1902,19 @@ webpack-virtual-modules "^0.2.2" "@storybook/manager-webpack5@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/manager-webpack5/-/manager-webpack5-6.5.9.tgz#ce9dd6ea6298ab426b111f170c23deea7085ba08" - integrity sha512-J1GamphSsaZLNBEhn1awgxzOS8KfvzrHtVlAm2VHwW7j1E1DItROFJhGCgduYYuBiN9eqm+KIYrxcr6cRuoolQ== + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/manager-webpack5/-/manager-webpack5-6.5.10.tgz#dff8e53615906284b68df013935e8a6234ddaafe" + integrity sha512-uRo+6e5MiVOtyFVMYIKVqvpDveCjHyzXBfetSYR7rKEZoaDMEnLLiuF7DIH12lzxwmzCJ1gIc4lf5HFiTMNkgw== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.5.9" - "@storybook/core-client" "6.5.9" - "@storybook/core-common" "6.5.9" - "@storybook/node-logger" "6.5.9" - "@storybook/theming" "6.5.9" - "@storybook/ui" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/core-client" "6.5.10" + "@storybook/core-common" "6.5.10" + "@storybook/node-logger" "6.5.10" + "@storybook/theming" "6.5.10" + "@storybook/ui" "6.5.10" "@types/node" "^14.0.10 || ^16.0.0" babel-loader "^8.0.0" case-sensitive-paths-webpack-plugin "^2.3.0" @@ -1889,10 +1956,10 @@ prettier ">=2.2.1 <=2.3.0" ts-dedent "^2.0.0" -"@storybook/node-logger@6.5.9", "@storybook/node-logger@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.9.tgz#129cfe0d0f79cab4f6a2ba194d39516680b1626f" - integrity sha512-nZZNZG2Wtwv6Trxi3FrnIqUmB55xO+X/WQGPT5iKlqNjdRIu/T72mE7addcp4rbuWCQfZUhcDDGpBOwKtBxaGg== +"@storybook/node-logger@6.5.10", "@storybook/node-logger@^6.5.9": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.5.10.tgz#bce4c04009c4b62d6d2fb617176d7ef0084e9e89" + integrity sha512-bYswXIKV7Stru8vYfkjUMNN8UhF7Qg7NRsUvG5Djt5lLIae1XmUIgnH40mU/nW4X4BSfcR9MKxsSsngvn2WmQg== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.1.0" @@ -1900,17 +1967,17 @@ npmlog "^5.0.1" pretty-hrtime "^1.0.3" -"@storybook/preview-web@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.9.tgz#557d919e6df50d66259521aa36ebf4055bbd236e" - integrity sha512-4eMrO2HJyZUYyL/j+gUaDvry6iGedshwT5MQqe7J9FaA+Q2pNARQRB1X53f410w7S4sObRmYIAIluWPYdWym9w== +"@storybook/preview-web@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.5.10.tgz#81bf5d3f5fca9e26099c057206bd8e684225989b" + integrity sha512-sTC/o5gkvALOtcNgtApGKGN9EavvSxRHBeBh+5BQjV2qQ8ap+26RsfUizNBECAa2Jrn4osaDYn9HRhJLFL69WA== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/channel-postmessage" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/channel-postmessage" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core-events" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.9" + "@storybook/store" "6.5.10" ansi-to-html "^0.6.11" core-js "^3.8.2" global "^4.4.0" @@ -1936,23 +2003,23 @@ tslib "^2.0.0" "@storybook/react@^6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/react/-/react-6.5.9.tgz#687ec1f6b785822a392b7ac115b61800f69fb7cd" - integrity sha512-Rp+QaTQAzxJhwuzJXVd49mnIBLQRlF8llTxPT2YoGHdrGkku/zl/HblQ6H2yzEf15367VyzaAv/BpLsO9Jlfxg== + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/react/-/react-6.5.10.tgz#6e9f5cf5e4c81d966774c08c87fb2414052db454" + integrity sha512-m8S1qQrwA7pDGwdKEvL6LV3YKvSzVUY297Fq+xcTU3irnAy4sHDuFoLqV6Mi1510mErK1r8+rf+0R5rEXB219g== dependencies: "@babel/preset-flow" "^7.12.1" "@babel/preset-react" "^7.12.10" "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" - "@storybook/addons" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/core" "6.5.9" - "@storybook/core-common" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core" "6.5.10" + "@storybook/core-common" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/docs-tools" "6.5.9" - "@storybook/node-logger" "6.5.9" + "@storybook/docs-tools" "6.5.10" + "@storybook/node-logger" "6.5.10" "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.9" + "@storybook/store" "6.5.10" "@types/estree" "^0.0.51" "@types/node" "^14.14.20 || ^16.0.0" "@types/webpack-env" "^1.16.0" @@ -1976,6 +2043,17 @@ util-deprecate "^1.0.2" webpack ">=4.43.0 <6.0.0" +"@storybook/router@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/router/-/router-6.5.10.tgz#b0c342e080c1d2b5344603bc43a6c75734a4a879" + integrity sha512-O+vNW/eEpYFF8eCg5jZjNQ6q2DKQVxqDRPCy9pJdEbvavMDZn6AFYgVK+VJe5F4211WW2yncOu922xObCxXJYg== + dependencies: + "@storybook/client-logger" "6.5.10" + core-js "^3.8.2" + memoizerific "^1.11.3" + qs "^6.10.0" + regenerator-runtime "^0.13.7" + "@storybook/router@6.5.9": version "6.5.9" resolved "https://registry.npmjs.org/@storybook/router/-/router-6.5.9.tgz#4740248f8517425b2056273fb366ace8a17c65e8" @@ -1995,13 +2073,13 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.5.9.tgz#7b6f065c6a6108c4b4ca7e45bfd78707373d84ac" - integrity sha512-H03nFKaP6borfWMTTa9igBA+Jm2ph+FoVJImWC/X+LAmLSJYYSXuqSgmiZ/DZvbjxS4k8vccE2HXogne1IvaRA== +"@storybook/source-loader@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.5.10.tgz#f62b4c7b1933976a20913ddc149d55026ef4c872" + integrity sha512-1RxxRumpjs8VUUwES9LId+cuNQnixhZAcwCxd6jaKkTZbjiQCtAhXX6DBTjJGV1u/JnCsqEp5b1wB8j/EioNHw== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/client-logger" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/client-logger" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" estraverse "^5.2.0" @@ -2011,14 +2089,14 @@ prettier ">=2.2.1 <=2.3.0" regenerator-runtime "^0.13.7" -"@storybook/store@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/store/-/store-6.5.9.tgz#dc9963fc013636569082bd8f7200804866373735" - integrity sha512-80pcDTcCwK6wUA63aWOp13urI77jfipIVee9mpVvbNyfrNN8kGv1BS0z/JHDxuV6rC4g7LG1fb+BurR0yki7BA== +"@storybook/store@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/store/-/store-6.5.10.tgz#85df17a8d57af0cba3934b3c6046537e2bca9abd" + integrity sha512-RswrSYh2IiKkytFPxP9AvP+hekjrvHK2ILvyDk2ZgduCN4n5ivsekOb+N3M2t+dq1eLuW9or5n2T4OWwAwjxxQ== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/core-events" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/core-events" "6.5.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -2032,13 +2110,13 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/telemetry@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-6.5.9.tgz#8e1e0d4a89fc2387620045e5ea96c109d16a7247" - integrity sha512-JluoHCRhHAr4X0eUNVBSBi1JIBA92404Tu1TPdbN7x6gCZxHXXPTSUTAnspXp/21cTdMhY2x+kfZQ8fmlGK4MQ== +"@storybook/telemetry@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-6.5.10.tgz#742b05a55dfe8470ce4cb371f3f3f2c02f96e816" + integrity sha512-+M5HILDFS8nDumLxeSeAwi1MTzIuV6UWzV4yB2wcsEXOBTdplcl9oYqFKtlst78oOIdGtpPYxYfivDlqxC2K4g== dependencies: - "@storybook/client-logger" "6.5.9" - "@storybook/core-common" "6.5.9" + "@storybook/client-logger" "6.5.10" + "@storybook/core-common" "6.5.10" chalk "^4.1.0" core-js "^3.8.2" detect-package-manager "^2.0.1" @@ -2061,6 +2139,16 @@ "@testing-library/user-event" "^13.2.1" ts-dedent "^2.2.0" +"@storybook/theming@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.10.tgz#052100979c1270fc8f60653c1a13a6f047318109" + integrity sha512-BvTQBBcSEwKKcsVmF+Ol6v0RIQUr+bxP7gb10wtfBd23mZTEFA0C1N5FnZr/dDeiBKG1pvf1UKvoYA731y0BsA== + dependencies: + "@storybook/client-logger" "6.5.10" + core-js "^3.8.2" + memoizerific "^1.11.3" + regenerator-runtime "^0.13.7" + "@storybook/theming@6.5.9": version "6.5.9" resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.9.tgz#13f60a3a3cd73ceb5caf9f188e1627e79f1891aa" @@ -2071,20 +2159,20 @@ memoizerific "^1.11.3" regenerator-runtime "^0.13.7" -"@storybook/ui@6.5.9": - version "6.5.9" - resolved "https://registry.npmjs.org/@storybook/ui/-/ui-6.5.9.tgz#41e59279323cccc0d613974ec9782d797220c8a7" - integrity sha512-ryuPxJgtbb0gPXKGgGAUC+Z185xGAd1IvQ0jM5fJ0SisHXI8jteG3RaWhntOehi9qCg+64Vv6eH/cj9QYNHt1Q== +"@storybook/ui@6.5.10": + version "6.5.10" + resolved "https://registry.npmjs.org/@storybook/ui/-/ui-6.5.10.tgz#f56095a1a39ae5a203f2ac7f3dba86341a5927d5" + integrity sha512-6iaoaRAiTqB1inTw35vao+5hjcDE0Qa0A3a9ZIeNa6yHvpB1k0lO/N/0PMrRdVvySYpXVD1iry4z4QYdo1rU+w== dependencies: - "@storybook/addons" "6.5.9" - "@storybook/api" "6.5.9" - "@storybook/channels" "6.5.9" - "@storybook/client-logger" "6.5.9" - "@storybook/components" "6.5.9" - "@storybook/core-events" "6.5.9" - "@storybook/router" "6.5.9" + "@storybook/addons" "6.5.10" + "@storybook/api" "6.5.10" + "@storybook/channels" "6.5.10" + "@storybook/client-logger" "6.5.10" + "@storybook/components" "6.5.10" + "@storybook/core-events" "6.5.10" + "@storybook/router" "6.5.10" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.5.9" + "@storybook/theming" "6.5.10" core-js "^3.8.2" memoizerific "^1.11.3" qs "^6.10.0" @@ -2208,22 +2296,22 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@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.6.2" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" + integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== dependencies: "@types/node" "*" form-data "^3.0.0" "@types/node@*": - version "18.6.1" - resolved "https://registry.npmjs.org/@types/node/-/node-18.6.1.tgz#828e4785ccca13f44e2fb6852ae0ef11e3e20ba5" - integrity sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg== + version "18.6.3" + resolved "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz#4e4a95b6fe44014563ceb514b2598b3e623d1c98" + integrity sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg== "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0": - version "16.11.41" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.41.tgz#88eb485b1bfdb4c224d878b7832239536aa2f813" - integrity sha512-mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ== + version "16.11.47" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.47.tgz#efa9e3e0f72e7aa6a138055dace7437a83d9f91c" + integrity sha512-fpP+jk2zJ4VW66+wAMFoBJlx1bxmBKx4DUFf68UHgdGCOuyUTDlLWqsaNPJh7xhNDykyJ9eIzAygilP/4WoN8g== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -2250,37 +2338,11 @@ resolved "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz#72a26101dc567b0d68fd956cf42314556e42d601" integrity sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ== -"@types/prop-types@*": - version "15.7.5" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - "@types/qs@^6.9.5": 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/react-syntax-highlighter@11.0.5": - version "11.0.5" - resolved "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz#0d546261b4021e1f9d85b50401c0a42acb106087" - integrity sha512-VIOi9i2Oj5XsmWWoB72p3KlZoEbdRAcechJa8Ztebw7bDl2YmR+odxIqhtJGp1q2EozHs02US+gzxJ9nuf56qg== - dependencies: - "@types/react" "*" - -"@types/react@*": - version "18.0.12" - resolved "https://registry.npmjs.org/@types/react/-/react-18.0.12.tgz#cdaa209d0a542b3fcf69cf31a03976ec4cdd8840" - integrity sha512-duF1OTASSBQtcigUvhuiTB1Ya3OvSy+xORCiEf20H0P0lzx+/KeVsA99U5UjLXSbyo1DRJDlLKqTeM1ngosqtg== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@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== - "@types/source-list-map@*": version "0.1.2" resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -2779,9 +2841,9 @@ autoprefixer@^9.8.6: postcss-value-parser "^4.1.0" axe-core@^4.2.0: - version "4.4.2" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz#dcf7fb6dea866166c3eab33d68208afe4d5f670c" - integrity sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA== + version "4.4.3" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" + integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== babel-loader@^8.0.0: version "8.2.5" @@ -2834,13 +2896,13 @@ babel-plugin-named-exports-order@^0.0.2: resolved "https://registry.npmjs.org/babel-plugin-named-exports-order/-/babel-plugin-named-exports-order-0.0.2.tgz#ae14909521cf9606094a2048239d69847540cb09" integrity sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw== -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== +babel-plugin-polyfill-corejs2@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" + integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.2" semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.1.0: @@ -2851,20 +2913,20 @@ babel-plugin-polyfill-corejs3@^0.1.0: "@babel/helper-define-polyfill-provider" "^0.1.5" core-js-compat "^3.8.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== +babel-plugin-polyfill-corejs3@^0.5.3: + version "0.5.3" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" core-js-compat "^3.21.0" -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== +babel-plugin-polyfill-regenerator@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" + integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" babel-plugin-react-docgen@^4.2.1: version "4.2.1" @@ -3005,26 +3067,15 @@ browser-assert@^1.2.1: resolved "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz#9aaa5a2a8c74685c2ae05bfe46efd606f068c200" integrity sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ== -browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.20.4: - version "4.20.4" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz#98096c9042af689ee1e0271333dbc564b8ce4477" - integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw== +browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.20.2, browserslist@^4.21.3: + version "4.21.3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== dependencies: - caniuse-lite "^1.0.30001349" - electron-to-chromium "^1.4.147" - escalade "^3.1.1" - node-releases "^2.0.5" - picocolors "^1.0.0" - -browserslist@^4.14.5: - version "4.21.2" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz#59a400757465535954946a400b841ed37e2b4ecf" - integrity sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA== - dependencies: - caniuse-lite "^1.0.30001366" - electron-to-chromium "^1.4.188" + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" node-releases "^2.0.6" - update-browserslist-db "^1.0.4" + update-browserslist-db "^1.0.5" buffer-from@^1.0.0: version "1.1.2" @@ -3042,9 +3093,9 @@ bytes@3.1.2: integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== c8@^7.6.0: - version "7.11.3" - resolved "https://registry.npmjs.org/c8/-/c8-7.11.3.tgz#88c8459c1952ed4f701b619493c9ae732b057163" - integrity sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA== + version "7.12.0" + resolved "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz#402db1c1af4af5249153535d1c84ad70c5c96b14" + integrity sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@istanbuljs/schema" "^0.1.3" @@ -3152,15 +3203,10 @@ camelcase@^6.2.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001109: - version "1.0.30001354" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001354.tgz#95c5efdb64148bb4870771749b9a619304755ce5" - integrity sha512-mImKeCkyGDAHNywYFA4bqnLAzTUvVkqPvhY4DV47X+Gl2c5Z8c3KNETnXp14GQt11LvxE8AwjzGxJ+rsikiOzg== - -caniuse-lite@^1.0.30001349, caniuse-lite@^1.0.30001366: - version "1.0.30001370" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001370.tgz#0a30d4f20d38b9e108cc5ae7cc62df9fe66cd5ba" - integrity sha512-3PDmaP56wz/qz7G508xzjx8C+MC2qEm4SYhSEzC9IBROo+dGXFWRuaXkWti0A9tuI00g+toiriVqxtWMgl350g== +caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001370: + version "1.0.30001373" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz#2dc3bc3bfcb5d5a929bec11300883040d7b4b4be" + integrity sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ== case-sensitive-paths-webpack-plugin@^2.3.0: version "2.4.0" @@ -3204,11 +3250,6 @@ character-reference-invalid@^1.0.0: resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -charcodes@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" - integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== - chokidar@^3.4.2: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -3252,9 +3293,9 @@ clean-css@^4.2.3: source-map "~0.6.0" clean-css@^5.2.2: - version "5.3.0" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59" - integrity sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ== + version "5.3.1" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" + integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== dependencies: source-map "~0.6.0" @@ -3454,22 +3495,22 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.21.0, core-js-compat@^3.22.1, core-js-compat@^3.8.1: - version "3.23.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.1.tgz#23d44d9f209086e60dabf9130cea7719af6e199b" - integrity sha512-KeYrEc8t6FJsKYB2qnDwRHWaC0cJNaqlHfCpMe5q3j/W1nje3moib/txNklddLPCtGb+etcBIyJ8zuMa/LN5/A== + version "3.24.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz#d1af84a17e18dfdd401ee39da9996f9a7ba887de" + integrity sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw== dependencies: - browserslist "^4.20.4" + browserslist "^4.21.3" semver "7.0.0" core-js-pure@^3.8.1: - version "3.23.1" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.1.tgz#0b27e4c3ad46178b84e790dbbb81987218ab82ad" - integrity sha512-3qNgf6TqI3U1uhuSYRzJZGfFd4T+YlbyVPl+jgRiKjdZopvG4keZQwWZDAWpu1UH9nCgTpUzIV3GFawC7cJsqg== + version "3.24.1" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.24.1.tgz#8839dde5da545521bf282feb7dc6d0b425f39fd3" + integrity sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg== core-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2: - version "3.23.1" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.23.1.tgz#9f9a9255115f62c512db56d567f636da32ca0b78" - integrity sha512-wfMYHWi1WQjpgZNC9kAlN4ut04TM9fUTdi7CqIoTVM7yaiOUQTklOzfb+oWH3r9edQcT3F887swuVmxrV+CC8w== + version "3.24.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" + integrity sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg== core-util-is@~1.0.0: version "1.0.3" @@ -3588,11 +3629,6 @@ cssesc@^3.0.0: resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" - integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== - currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -3823,10 +3859,10 @@ ee-first@1.1.1: resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.147, electron-to-chromium@^1.4.188: - version "1.4.199" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.199.tgz#e0384fde79fdda89880e8be58196a9153e04db3b" - integrity sha512-WIGME0Cs7oob3mxsJwHbeWkH0tYkIE/sjkJ8ML2BYmuRcjhRl/q5kVDXG7W9LOOKwzPU5M0LBlXRq9rlSgnNlg== +electron-to-chromium@^1.4.202: + version "1.4.210" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.210.tgz#12611fe874b833a3bf3671438b5893aba7858980" + integrity sha512-kSiX4tuyZijV7Cz0MWVmGT8K2siqaOA4Z66K5dCttPPRh0HicOcOAEj1KlC8O8J1aOS/1M8rGofOzksLKaHWcQ== element-resize-detector@^1.2.2: version "1.2.4" @@ -4210,9 +4246,9 @@ fault@^1.0.0: format "^0.2.0" fetch-retry@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.2.tgz#4c55663a7c056cb45f182394e479464f0ff8f3e3" - integrity sha512-57Hmu+1kc6pKFUGVIobT7qw3NeAzY/uNN26bSevERLVvf6VGFR/ooDCOFBHMNDgAxBiU2YJq1D0vFzc6U1DcPw== + version "5.0.3" + resolved "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.3.tgz#edfa3641892995f9afee94f25b168827aa97fe3d" + integrity sha512-uJQyMrX5IJZkhoEUBQ3EjxkeiZkppBd5jS/fMTJmfZxLSiaQjv2zD0kTvuvkSH89uFvgSlB6ueGpjD3HWN7Bxw== file-loader@^6.2.0: version "6.2.0" @@ -4318,9 +4354,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" 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.2.6" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" + integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== for-in@^1.0.2: version "1.0.2" @@ -4424,7 +4460,7 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" -fs-monkey@1.0.3, fs-monkey@^1.0.3: +fs-monkey@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== @@ -5092,7 +5128,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.8.1: +is-core-module@^2.9.0: version "2.9.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== @@ -5391,9 +5427,9 @@ istanbul-lib-report@^3.0.0: supports-color "^7.1.0" istanbul-reports@^3.1.4: - version "3.1.4" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + version "3.1.5" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -5751,14 +5787,7 @@ mem@^8.1.1: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" -memfs@^3.1.2: - version "3.4.4" - resolved "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz#e8973cd8060548916adcca58a248e7805c715e89" - integrity sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA== - dependencies: - fs-monkey "1.0.3" - -memfs@^3.2.2: +memfs@^3.1.2, memfs@^3.2.2: version "3.4.7" resolved "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz#e5252ad2242a724f938cb937e3c4f7ceb1f70e5a" integrity sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw== @@ -5926,9 +5955,9 @@ minipass-pipeline@^1.2.2: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.1: - version "3.1.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.4" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== dependencies: yallist "^4.0.0" @@ -6048,7 +6077,7 @@ node-fetch@^2.6.1, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-releases@^2.0.5, node-releases@^2.0.6: +node-releases@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== @@ -6816,9 +6845,9 @@ qs@6.10.3: side-channel "^1.0.4" qs@^6.10.0: - version "6.10.5" - resolved "https://registry.npmjs.org/qs/-/qs-6.10.5.tgz#974715920a80ff6a262264acd2c7e6c2a53282b4" - integrity sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ== + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" @@ -6873,9 +6902,9 @@ react-docgen-typescript@^2.1.1: integrity sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg== react-docgen@^5.0.0: - version "5.4.2" - resolved "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.2.tgz#697ec899e8dd493bb7ba0d50ec0aa5e49f41d3fa" - integrity sha512-4Z5XYpHsn2bbUfaflxoS30VhUvQLBe4GCwwM5v1e1FUOeDdaoJi6wUGSmYp6OdXYEISEAOEIaSPBk4iezNCKBw== + version "5.4.3" + resolved "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz#7d297f73b977d0c7611402e5fc2a168acf332b26" + integrity sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA== dependencies: "@babel/core" "^7.7.5" "@babel/generator" "^7.12.11" @@ -7101,10 +7130,10 @@ regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -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@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" + integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== dependencies: regenerate "^1.4.2" regenerate-unicode-properties "^10.0.1" @@ -7238,11 +7267,11 @@ resolve-url@^0.2.1: integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.3.2: - version "1.22.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + version "1.22.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -7634,9 +7663,9 @@ statuses@2.0.1: integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== store2@^2.12.0: - version "2.13.2" - resolved "https://registry.npmjs.org/store2/-/store2-2.13.2.tgz#01ad8802ca5b445b9c316b55e72645c13a3cd7e3" - integrity sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg== + version "2.14.2" + resolved "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068" + integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== storybook-dark-mode@^1.1.0: version "1.1.0" @@ -7906,17 +7935,7 @@ terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.10.0, terser@^5.3.4: - version "5.14.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" - integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -terser@^5.7.2: +terser@^5.10.0, terser@^5.3.4, terser@^5.7.2: version "5.14.2" resolved "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== @@ -8072,9 +8091,9 @@ type-is@~1.6.18: mime-types "~2.1.24" uglify-js@^3.1.4: - version "3.16.0" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz#b778ba0831ca102c1d8ecbdec2d2bdfcc7353190" - integrity sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw== + version "3.16.3" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz#94c7a63337ee31227a18d03b8a3041c210fd1f1d" + integrity sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw== unbox-primitive@^1.0.2: version "1.0.2" @@ -8241,7 +8260,7 @@ untildify@^2.0.0: dependencies: os-homedir "^1.0.0" -update-browserslist-db@^1.0.4: +update-browserslist-db@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== @@ -8309,11 +8328,11 @@ uuid@^3.3.2: integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-to-istanbul@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511" - integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw== + version "9.0.1" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" + integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -8544,9 +8563,9 @@ wrappy@1: integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.2.3: - version "8.8.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" - integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== + version "8.8.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== x-default-browser@^0.4.0: version "0.4.0" From 73a334644e17a82fe744bc9b97e62047e87dbb8b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 05:20:29 +0000 Subject: [PATCH 186/377] fix(deps): update dependency mock-fs to v5.1.4 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2a83fcfbdd..094797ea59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19294,9 +19294,9 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mock-fs@^5.1.0, mock-fs@^5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-5.1.2.tgz#6fa486e06d00f8793a8d2228de980eff93ce6db7" - integrity sha512-YkjQkdLulFrz0vD4BfNQdQRVmgycXTV7ykuHMlyv+C8WCHazpkiQRDthwa02kSyo8wKnY9wRptHfQLgmf0eR+A== + version "5.1.4" + resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-5.1.4.tgz#d64dc37b2793613ca7148b510b1167b5b8afb6b8" + integrity sha512-sudhLjCjX37qWIcAlIv1OnAxB2wI4EmXByVuUjILh1rKGNGpGU8GNnzw+EAbrhdpBe0TL/KONbK1y3RXZk8SxQ== modify-values@^1.0.0: version "1.0.1" From 9dd717cbc598b2802b8898efc2830b59e12f2c98 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Thu, 4 Aug 2022 10:50:36 +0200 Subject: [PATCH 187/377] Add a nice description on how to apply the change Signed-off-by: Ben Lambert Signed-off-by: Ben Lambert --- .changeset/wicked-knives-wink.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.changeset/wicked-knives-wink.md b/.changeset/wicked-knives-wink.md index 070e7709a9..b238be331b 100644 --- a/.changeset/wicked-knives-wink.md +++ b/.changeset/wicked-knives-wink.md @@ -3,3 +3,13 @@ --- Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`. + + +To apply this change to your Backstage installation make the following change to your `app-config.yaml` + +```diff + cors: + origin: http://localhost:3000 +- methods: [GET, POST, PUT, DELETE] ++ methods: [GET, POST, PUT, DELETE, PATCH, HEAD] +``` From 2977f2473d9acae6f0a9ac47c0ece0af3d3573f3 Mon Sep 17 00:00:00 2001 From: Gary Niemen <65337273+garyniemen@users.noreply.github.com> Date: Wed, 3 Aug 2022 16:53:49 +0200 Subject: [PATCH 188/377] roadmap_updates-techdocs_search Signed-off-by: Gary Niemen <65337273+garyniemen@users.noreply.github.com> --- docs/features/search/README.md | 4 ++++ docs/features/techdocs/README.md | 13 +++++++++---- docs/overview/roadmap.md | 16 ++-------------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/docs/features/search/README.md b/docs/features/search/README.md index 618231a31e..21deffb3a0 100644 --- a/docs/features/search/README.md +++ b/docs/features/search/README.md @@ -21,6 +21,10 @@ Backstage Search lets you find the right information you are looking for in the See the more detailed [architecture](./architecture.md) and [tech stack](./architecture.md#tech-stack). +## Project roadmap + +No current plans. + ## Supported The following sections show the plugins and search engines currently supported by Backstage Search. diff --git a/docs/features/techdocs/README.md b/docs/features/techdocs/README.md index 65cfafd464..3251451cce 100644 --- a/docs/features/techdocs/README.md +++ b/docs/features/techdocs/README.md @@ -30,16 +30,15 @@ Today, it is one of the core products in Spotify’s developer experience offeri ### Now -With the Backstage 1.2 release, we have introduced the [TechDocs Addon Framework](https://backstage.io/blog/2022/05/13/techdocs-addon-framework) for augmenting the TechDocs experience at read-time. - -In addition to the framework itself, we have open sourced a **ReportIssue** Addon, helping you to create a feedback loop that drives up documentation quality and foster a documentation culture at your organization. +No current plans. ### Next -What can we do in TechDocs to help drive up documentation quality? We have many ideas, for example, a Trust Card with associated Trust Score and automatic triggering of documentation maintenance notifications. +No current plans. ### Someday/Maybe +- What can we do in TechDocs to help drive up documentation quality? We have many ideas, for example, a Trust Card with associated Trust Score and automatic triggering of documentation maintenance notifications. - Contribute to and deploy from a marketplace of TechDocs Addons - Addon: MDX (allows you to use JSX in your Markdown content) - Can we go static site generator agnostic? @@ -129,3 +128,9 @@ TechDocs packages: - @backstage/plugin-techdocs-backend - @backstage/plugin-techdocs-node - @techdocs/cli + +**TechDocs Addon Framework** + +With the Backstage 1.2 release, we introduced the [TechDocs Addon Framework](https://backstage.io/blog/2022/05/13/techdocs-addon-framework) for augmenting the TechDocs experience at read-time. + +In addition to the framework itself, we open sourced a **ReportIssue** Addon, helping you to create a feedback loop that drives up documentation quality and foster a documentation culture at your organization. diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index df242ed172..e65d5ada83 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -12,12 +12,12 @@ and the broader Backstage community. The Backstage roadmap lays out both [“what's next”](#whats-next) and ["future work"](#future-work). With "next" we mean features planned for release within -the ongoing quarter from April through June 2022. With "future" we mean +the ongoing quarter from July through September 2022. With "future" we mean features on the radar, but not yet scheduled. | [What's next](#whats-next) | [Future work](#future-work) | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| [Backstage Search 1.0](#search-1.0)
[Backend Services (MVP)](#backend-services-mvp)
[Backstage Security Audit](#backstage-security-audit)
[Backstage Threat Model](#backstage-threat-model)
[TechDocs Addon Framework](#techdocs-addon-framework)
[Software Catalog pagination](#software-catalog-pagination)
[More SIGs](#more-sigs) | Ease of onboarding
Composable Homepage 1.0
Creator experience
GraphQL
Telemetry | +| [Backend Services (MVP)](#backend-services-mvp)
[Backstage Security Audit](#backstage-security-audit)
[Backstage Threat Model](#backstage-threat-model)
[Software Catalog pagination](#software-catalog-pagination)
[More SIGs](#more-sigs) | Ease of onboarding
Composable Homepage 1.0
Creator experience
GraphQL
Telemetry | The long-term roadmap (12 - 36 months) is not detailed in the public roadmap. Third-party contributions are also not currently included in the roadmap. Let us @@ -30,10 +30,6 @@ The feature set below is planned for the ongoing quarter, and grouped by theme. The list order doesn't necessarily reflect priority, and the development/release cycle will vary based on maintainer schedules. -### Backstage Search 1.0 - -Fix the few remaining issues to get Backstage Search platform up to 1.0. For more information, see the [Backstage Search documentation and roadmap page](https://backstage.io/docs/features/search/search-overview). - ### Backend Services (MVP) To better scale and maintain the Backstage instances, a backend services system @@ -72,14 +68,6 @@ The planned artifacts are: - Concise high level threat model that will be included as part of the Backstage security documentation. - Granular threat model created in conjunction with the security audit to inform further security investment areas for Backstage. -### TechDocs Addon Framework - -Addons are TechDocs features that are added on top of the base docs-like-code experience. An example would be a feature that showed comments on the page. We plan to add an Addon framework and open source a selection of the Addons that we use internally at Spotify. We encourage the Backstage community to add further Addons. - -For more information about the TechDocs Addon Framework, see the documentation page [here](https://backstage.io/docs/features/techdocs/addons). - -For general information about TechDocs including roadmap, see [here](https://backstage.io/docs/features/techdocs/techdocs-overview). - ### Software Catalog pagination Today adopters with a big catalog (with several thousands of software components) might not have an ideal end-user experience when viewing the `/catalog` page. The issue is related to how the entities are fetched by the frontend. In order to provide a better end-user experience the pagination of the catalog’s entities needs to be enforced. Some experimentation is already completed but in this quarter we plan to continue, and hopefully complete, this relevant enhancement. From 21d32b0caa8fcb7854e5623b1075bc1d88402489 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 4 Aug 2022 10:58:58 +0200 Subject: [PATCH 189/377] =?UTF-8?q?chore:=20pretty=20=F0=9F=92=85=20Signed?= =?UTF-8?q?-off-by:=20blam=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/overview/roadmap.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index e65d5ada83..2763f95a5a 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -15,8 +15,8 @@ work"](#future-work). With "next" we mean features planned for release within the ongoing quarter from July through September 2022. With "future" we mean features on the radar, but not yet scheduled. -| [What's next](#whats-next) | [Future work](#future-work) | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| [What's next](#whats-next) | [Future work](#future-work) | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | | [Backend Services (MVP)](#backend-services-mvp)
[Backstage Security Audit](#backstage-security-audit)
[Backstage Threat Model](#backstage-threat-model)
[Software Catalog pagination](#software-catalog-pagination)
[More SIGs](#more-sigs) | Ease of onboarding
Composable Homepage 1.0
Creator experience
GraphQL
Telemetry | The long-term roadmap (12 - 36 months) is not detailed in the public roadmap. From 6b68883776dec11cde785455995b424a57516c0b Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 4 Aug 2022 11:02:04 +0200 Subject: [PATCH 190/377] chore: make pretty Signed-off-by: blam --- .changeset/wicked-knives-wink.md | 1 - 1 file changed, 1 deletion(-) diff --git a/.changeset/wicked-knives-wink.md b/.changeset/wicked-knives-wink.md index b238be331b..e0f3e485c0 100644 --- a/.changeset/wicked-knives-wink.md +++ b/.changeset/wicked-knives-wink.md @@ -4,7 +4,6 @@ Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`. - To apply this change to your Backstage installation make the following change to your `app-config.yaml` ```diff From e34e92d774c888b2ea920797496ef523065a3337 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 4 Aug 2022 11:13:29 +0200 Subject: [PATCH 191/377] chore: added some vocab fixing Signed-off-by: blam --- .github/vale/Vocab/Backstage/accept.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 5324ce2b2a..bd3bcdfb6e 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -281,6 +281,8 @@ serializable Serverless shoutout siloed +SIG +SIGs Sinon Snyk Sonarqube From 388dc3feba8f173b74d3097b3ab28108bf9f8549 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 10:02:04 +0000 Subject: [PATCH 192/377] fix(deps): update dependency @roadiehq/backstage-plugin-buildkite to v2.0.6 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 094797ea59..1fe79260f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6009,9 +6009,9 @@ integrity sha512-8UiDeDbjCImFSfOegGu13otQ7OdP9FOYpcLjeouppnhs+MPeIEAtYS+jCcBKmi3reyTagC15/KVSRhde1wS1vg== "@roadiehq/backstage-plugin-buildkite@^2.0.0": - version "2.0.5" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-2.0.5.tgz#540679bd1dbb4cadf654e3d939cc9cbe4cf6e2e5" - integrity sha512-zMTlBzjEHdydWSddCt+Mr+2wjbMWn2f/AgBTXfYvaGDTY1fCmEFQ3gOL2fHd7UHk635AE/DKuGLL8gyEvLbqjg== + version "2.0.6" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-2.0.6.tgz#2ef3c7095953d969adc78e1dc84633d822a69bc1" + integrity sha512-rb/oeh2fvM0WUKcJ55N+PN/Gy4Tm6HwQiozboXr8Ap7uwzyBq0j7REICsVpBUJZbMg7MlRaMjBWDKeogG4Rtpg== dependencies: "@backstage/catalog-model" "^1.0.0" "@backstage/core-components" "^0.10.0" From 6ef0ce1fcce4f48e6f8b0f747fc3353b2ea11c14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 10:02:51 +0000 Subject: [PATCH 193/377] fix(deps): update dependency @roadiehq/backstage-plugin-github-insights to v2.0.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 094797ea59..e6e904a2f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6028,9 +6028,9 @@ react-use "^17.2.4" "@roadiehq/backstage-plugin-github-insights@^2.0.0": - version "2.0.2" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-2.0.2.tgz#d6a953123f8a60be5df5b32583c5c2b22d18f8bb" - integrity sha512-3f+iTuAqINdolxrOjAS2XR2JDv7v2BALfAnr/EuCXfIS5qbJqn6IpktC1FcS0HHV1hmI/y+fyI3V5/69RjNBnQ== + version "2.0.3" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-2.0.3.tgz#736a55a91df963ecbaa259728b1418d362261479" + integrity sha512-s81O1VKtsJ0Znhjn7Uw17o1aHc8VxSL3kvet7cttcPSjLPlbFGqlF4CuFOEGHw7lsrKMrhWfcFaIWhCitc8wrg== dependencies: "@backstage/catalog-model" "^1.0.0" "@backstage/core-components" "^0.10.0" From d148022062dc1d9702855625c3395fbf49ec9228 Mon Sep 17 00:00:00 2001 From: Otto Nordander Date: Thu, 4 Aug 2022 12:56:20 +0200 Subject: [PATCH 194/377] Add utility function getFile in BitbucketServerClient Can be used to fetch arbitrary files given a project and a repository which is helpful when using custom repository parsing. Signed-off-by: Otto Nordander --- .../api-report.md | 6 +++ .../src/lib/BitbucketServerClient.test.ts | 37 +++++++++++++++++++ .../src/lib/BitbucketServerClient.ts | 12 ++++++ 3 files changed, 55 insertions(+) diff --git a/plugins/catalog-backend-module-bitbucket-server/api-report.md b/plugins/catalog-backend-module-bitbucket-server/api-report.md index b087da6746..1f40f22242 100644 --- a/plugins/catalog-backend-module-bitbucket-server/api-report.md +++ b/plugins/catalog-backend-module-bitbucket-server/api-report.md @@ -20,6 +20,12 @@ export class BitbucketServerClient { config: BitbucketServerIntegrationConfig; }): BitbucketServerClient; // (undocumented) + getFile(options: { + projectKey: string; + repo: string; + path: string; + }): Promise; + // (undocumented) getRepository(options: { projectKey: string; repo: string; diff --git a/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.test.ts b/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.test.ts index 6b8043409f..66ccdc8c9a 100644 --- a/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.test.ts +++ b/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.test.ts @@ -26,6 +26,18 @@ import { BitbucketServerProject, BitbucketServerRepository } from './types'; const server = setupServer(); +const catalogInfoFile = ` +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: "backstage" + description: "A Backstage service" +spec: + type: service + lifecycle: experimental + owner: "backstage" +`; + describe('BitbucketServerClient', () => { const config: BitbucketServerIntegrationConfig = { host: 'bitbucket.mycompany.com', @@ -138,6 +150,31 @@ describe('BitbucketServerClient', () => { ); }); + it('getFile', async () => { + server.use( + rest.get( + `https://${config.host}/projects/test-project/repos/test-repo/raw/catalog-info.yaml`, + (req, res, ctx) => { + if ( + req.headers.get('authorization') !== + 'Basic dGVzdC11c2VyOnRlc3QtcHc=' + ) { + return res(ctx.status(400)); + } + + return res(ctx.text(catalogInfoFile)); + }, + ), + ); + + const response = await client.getFile({ + projectKey: 'test-project', + repo: 'test-repo', + path: 'catalog-info.yaml', + }); + expect(await response.text()).toEqual(catalogInfoFile); + }); + it('getRepository', async () => { server.use( rest.get( diff --git a/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.ts b/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.ts index fa233c6863..025cc555ce 100644 --- a/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.ts +++ b/plugins/catalog-backend-module-bitbucket-server/src/lib/BitbucketServerClient.ts @@ -60,6 +60,18 @@ export class BitbucketServerClient { ); } + async getFile(options: { + projectKey: string; + repo: string; + path: string; + }): Promise { + const base = new URL(this.config.apiBaseUrl); + return fetch( + `${base.protocol}//${base.host}/projects/${options.projectKey}/repos/${options.repo}/raw/${options.path}`, + getBitbucketServerRequestOptions(this.config), + ); + } + async getRepository(options: { projectKey: string; repo: string; From aedcee6c92ac15b32488a94a9872ffbca6a3c001 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 11:08:56 +0000 Subject: [PATCH 195/377] fix(deps): update dependency @codemirror/view to v6.1.4 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 36cdc47e9f..bcbf5f33e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2497,9 +2497,9 @@ "@lezer/highlight" "^1.0.0" "@codemirror/view@^6.0.0": - version "6.1.3" - resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.1.3.tgz#5b476dc64066e4cbc22148e5bc0a4d948e41ff01" - integrity sha512-Ba8TdKX8cphIsgJ3NGT15Ac8c2mIObwo6MsDryffYKqB7Nw6l1c9cnjrahPF8DoN3HVfryW395O77vkuCNhW0A== + version "6.1.4" + resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.1.4.tgz#c4b7ca6ea6920e206f6b3de89b17da1b66675fd7" + integrity sha512-pekgUX+0hL4ri2JV7/bu7jhhwOgOhU1eRc1/ZyAQYCWcCI4TPB1qLrPE3cD/qW9yjBcYiN9MN0XI1tjK7Yw05Q== dependencies: "@codemirror/state" "^6.0.0" style-mod "^4.0.0" From d74f8fb7769712240e21ff028cd400cf1751410f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 11:09:46 +0000 Subject: [PATCH 196/377] fix(deps): update dependency @roadiehq/backstage-plugin-github-pull-requests to v2.2.4 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 36cdc47e9f..47ecafbcde 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6051,9 +6051,9 @@ zustand "3.6.9" "@roadiehq/backstage-plugin-github-pull-requests@^2.0.0": - version "2.2.3" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.2.3.tgz#8a5f5c18f0d0196c3fb5b350598293f2e441c9cd" - integrity sha512-ClZc4gLSsE+e+C6tpXJFJ2bXSo28UdlEACKzVK/w1H63XnyebsJHNu8uJJbdZL7GImHM3P9HjkXhSjj01g6HUg== + version "2.2.4" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.2.4.tgz#7df512d6f55cfccf448cf3abc58364e2544e7fab" + integrity sha512-oEJLxZ3L+GnWuVLFmxXNjeRthuJEV7u1EFbLthoW3XfR5vQ5oc81Su/3WF2rO2Atng1QkPpSPa7oXWff2NsJJw== dependencies: "@backstage/catalog-model" "^1.0.0" "@backstage/core-components" "^0.10.0" From 2d461c7c6546bb9c920e424dec952c90aff82aa9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 12:01:22 +0000 Subject: [PATCH 197/377] fix(deps): update dependency @roadiehq/backstage-plugin-travis-ci to v2.0.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index bcbf5f33e1..5265e0696d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6075,9 +6075,9 @@ react-use "^17.2.4" "@roadiehq/backstage-plugin-travis-ci@^2.0.0": - version "2.0.2" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-2.0.2.tgz#9a7aca54a6728bf836c5f51e22fd1a397801c9e0" - integrity sha512-fIevPreKE16nEuJzg5WPN3xI+z8EaotXwqCpWk7GR/8UjLSB5bt7wAwaMsQdywvmK21rBLAmKBlSn5x0TfYoLQ== + version "2.0.3" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-2.0.3.tgz#1b49ad4bf1521fdcfcc984236aaf7b2195c0e50a" + integrity sha512-a+dwmVyt4jUcUzYR5vVEAm68t5TPdfitrDH9RLI5vhn0hR/nZbf6LBGjGbbqglj3ettFzb1UFubs6BbMsrFEpA== dependencies: "@backstage/catalog-model" "^1.0.0" "@backstage/core-components" "^0.10.0" From 8da380b0aef17b6c1bef8cc8900c640d786f9b02 Mon Sep 17 00:00:00 2001 From: Paulo Peixoto <72894267+padupe@users.noreply.github.com> Date: Thu, 4 Aug 2022 11:10:00 -0300 Subject: [PATCH 198/377] Update app-cusom-theme.md Added documentation for using custom icons. Signed-off-by: Paulo Peixoto <72894267+padupe@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 109 +++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index da4f10a64b..25e5ff9237 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -273,6 +273,115 @@ const LogoFull = () => { }; ``` +## Custom Icons + +You can also customize the Project's _default_ icons. + +We can change the following icons: + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Icons
brokenImagechat
dashboarddocs
emailgithub
grouphelp
"kind:api""kind:component"
"kind:domain""kind:group"
"kind:location""kind:system"
"kind:user"scaffolder
searchtechdocs
userwarning
+
+ +### Requirements + +- Files in `.svg` format; +- React components created for the icons + +### Create React Component + +In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory. + +In the `icons` directory, upload the files in `.svg` format. + +In the `assets` directory, you can create the `customIcons.tsx` file. + +```tsx +// customIcons.tsx +import React from 'react'; +import ExampleSVG from './icons/example.svg'; + +export const ExampleIcon = () => { + return ; +}; +``` + +### Using the custom icon + +In your front-end application, locate the `src/components` folder. + +You will find the `App.tsx` file. + +The `app` constant, instantiates the `createApp` function, in this constant we will use the "icons" parameter that receives an object. + +```diff + ++ import { ExampleIcon } from './assets/customIcons' + +[...] + +const app = createApp({ + apis, + components: { + [...] + }, + themes: [ + [...] + ], ++ icons: { ++ github: ExampleIcon, ++ }, + bindRoutes({ bind }) { + [...] + } +}) + +[...] +``` + ## Custom Homepage In addition to a custom theme, a custom logo, you can also customize the From 5f67847d116467d6dafc601670f01122e096ec35 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 15:51:04 +0000 Subject: [PATCH 199/377] chore(deps): update dependency @graphql-codegen/graphql-modules-preset to v2.5.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index fde606fff0..318a96e0c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2858,9 +2858,9 @@ tslib "~2.4.0" "@graphql-codegen/graphql-modules-preset@^2.3.2": - version "2.4.2" - resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.4.2.tgz#db03352ba6525208246d2d8f4be6ee4b6e41f527" - integrity sha512-J0uHHuRIpV9lExzga5kZjbMXIdtfuve92lr1vMYhJE4ULEo4BatlcNpvx2v+yVywV22I62HFcbEMFGvxTqHZaw== + version "2.5.0" + resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.5.0.tgz#fbc9008328394e47bd2b1291b4a1c2d972fe7620" + integrity sha512-zuaocEijeD8sjJr+7m+tKsafHNUFRDvq2R4zdf+F/zg3xhkAAV6OZ1cJ+/CwEAUxgJqxy6RBhb9BwyGRpbOdaw== dependencies: "@graphql-codegen/plugin-helpers" "^2.6.0" "@graphql-codegen/visitor-plugin-common" "2.12.0" From bae140e90dd528876470c4da25ffb749a5b7c76f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 19:24:02 +0000 Subject: [PATCH 200/377] fix(deps): update dependency aws-sdk to v2.1189.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 318a96e0c4..a64bcaeb08 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9093,9 +9093,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1188.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1188.0.tgz#94b710948ef2924093a8d6fe42443a792385afa2" - integrity sha512-4KXwjRjbCzU1luTOeH+ded92H51I4UuHaZzx2EI+JA0II1+q48heTxFlFd7yp7jGz9UwjPb6k12Jv1W3r0JWxA== + version "2.1189.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1189.0.tgz#8dd6b48dd7896642af8e2f86e026932a28e380d5" + integrity sha512-EqluXSo8XAR086nF9UAtPYwUm82ZIRqg8OmHBRQyftcrD1Z0pqMmiuvacXoEAJ/4UU8KKafbpYarxx8rH/pZjQ== dependencies: buffer "4.9.2" events "1.1.1" From e7afc29d2cca2a960655ad6aa4e214b61f4e6e0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 19:24:56 +0000 Subject: [PATCH 201/377] fix(deps): update dependency graphiql to v1.11.0 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 318a96e0c4..f0bf0b2ee4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2788,10 +2788,10 @@ teeny-request "^8.0.0" uuid "^8.0.0" -"@graphiql/react@^0.6.0": - version "0.6.0" - resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.6.0.tgz#5def1c8f5f5ef7e65f6cf97c47ecc6bfc9fbff38" - integrity sha512-eC4K2Bzrih+NMOXcOGXxTcqJz9Hcowp/Hx9TSOWUczSifI309kVhBEuHVa/Fnqqw04WyvL6Wvn92gUlRak51Qg== +"@graphiql/react@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.7.0.tgz#0c8473798c70ae4b573057f2890f3c7f2a62d6ba" + integrity sha512-1xlj+WnfumwyWsXGWCX7DSN9/sXAganPOvceyochlcuhxeejnWy5s3gsSiTdGVDVR68OOTkYx+EpkRnXAZyEeA== dependencies: "@graphiql/toolkit" "^0.6.0" codemirror "^5.65.3" @@ -14689,11 +14689,11 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12, graphiql@^1.8.8: - version "1.10.0" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.10.0.tgz#2f869fe394fca76c7257444f80c5a2661d863ecc" - integrity sha512-OkhTLRzR8gwpePYLlosr0U3i9rPBmHQMHqm7pABjJ7gHfHi3UuokUAJ+tkKfv2cRHkJXB80Fp31ZAcCL6uG2tg== + version "1.11.0" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.0.tgz#e9ce0920e143ab543be189d6f67ac5cf09747709" + integrity sha512-QsQcNTbn5O7PurqrWblwFKgvSd12lyosHChs6zPladKyZ6+oiDhuhK69FIjxxBnm1tFR/Ko4NMDsTn4hLH1SMg== dependencies: - "@graphiql/react" "^0.6.0" + "@graphiql/react" "^0.7.0" "@graphiql/toolkit" "^0.6.0" entities "^2.0.0" graphql-language-service "^5.0.6" From 67cce9b9f6cee7c8ad9202ec7001e878b0b00cf9 Mon Sep 17 00:00:00 2001 From: kielosz Date: Thu, 4 Aug 2022 21:32:38 +0200 Subject: [PATCH 202/377] Filter INITIAL_LOADING_ACTIONS based on products Signed-off-by: kielosz --- plugins/cost-insights/src/hooks/useLoading.tsx | 13 ++++++++++++- plugins/cost-insights/src/utils/loading.ts | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/cost-insights/src/hooks/useLoading.tsx b/plugins/cost-insights/src/hooks/useLoading.tsx index 25599db58e..84828491de 100644 --- a/plugins/cost-insights/src/hooks/useLoading.tsx +++ b/plugins/cost-insights/src/hooks/useLoading.tsx @@ -21,6 +21,7 @@ import React, { SetStateAction, useContext, useEffect, + useMemo, useReducer, useState, } from 'react'; @@ -32,6 +33,7 @@ import { INITIAL_LOADING_ACTIONS, } from '../utils/loading'; import { useBackdropStyles as useStyles } from '../utils/styles'; +import { useConfig } from './useConfig'; export type LoadingContextProps = { state: Loading; @@ -54,7 +56,16 @@ function reducer(prevState: Loading, action: Partial): Loading { export const LoadingProvider = ({ children }: PropsWithChildren<{}>) => { const classes = useStyles(); - const actions = INITIAL_LOADING_ACTIONS; + const { products } = useConfig(); + const actions = useMemo( + () => + INITIAL_LOADING_ACTIONS.filter( + action => + products.length || + action !== DefaultLoadingAction.CostInsightsProducts, + ), + [products], + ); const [state, dispatch] = useReducer(reducer, getDefaultState(actions)); const [isBackdropVisible, setBackdropVisible] = useState(false); diff --git a/plugins/cost-insights/src/utils/loading.ts b/plugins/cost-insights/src/utils/loading.ts index ce02644265..2a453a58f1 100644 --- a/plugins/cost-insights/src/utils/loading.ts +++ b/plugins/cost-insights/src/utils/loading.ts @@ -35,6 +35,7 @@ export enum DefaultLoadingAction { export const INITIAL_LOADING_ACTIONS = [ DefaultLoadingAction.UserGroups, DefaultLoadingAction.CostInsightsInitial, + DefaultLoadingAction.CostInsightsProducts, ]; export const getDefaultState = (loadingActions: string[]): Loading => { From ef56262393334087a70a6b845e18ddaaa91d209d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 23:20:42 +0000 Subject: [PATCH 203/377] chore(deps): update dependency @testing-library/jest-dom to v5.16.5 Signed-off-by: Renovate Bot --- yarn.lock | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/yarn.lock b/yarn.lock index 091b3f1762..48c4680f4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@adobe/css-tools@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd" + integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g== + "@ampproject/remapping@^2.1.0": version "2.1.2" resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" @@ -6443,15 +6448,15 @@ pretty-format "^27.0.2" "@testing-library/jest-dom@^5.10.1", "@testing-library/jest-dom@^5.16.4": - version "5.16.4" - resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz#938302d7b8b483963a3ae821f1c0808f872245cd" - integrity sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA== + version "5.16.5" + resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" + integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== dependencies: + "@adobe/css-tools" "^4.0.1" "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" aria-query "^5.0.0" chalk "^3.0.0" - css "^3.0.0" css.escape "^1.5.1" dom-accessibility-api "^0.5.6" lodash "^4.17.15" @@ -11342,15 +11347,6 @@ css.escape@1.5.1, css.escape@^1.5.1: resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= -css@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" - integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== - dependencies: - inherits "^2.0.4" - source-map "^0.6.1" - source-map-resolve "^0.6.0" - cssesc@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" @@ -24080,14 +24076,6 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-resolve@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" - integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== - dependencies: - 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: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" From 1855b88d5d8f728b6d6230600d7570469edca9c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 23:21:34 +0000 Subject: [PATCH 204/377] chore(deps): update dependency @types/inquirer to v8.2.2 Signed-off-by: Renovate Bot --- yarn.lock | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index 091b3f1762..586473fa39 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7081,12 +7081,11 @@ integrity sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w== "@types/inquirer@^8.1.3": - version "8.2.1" - resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.1.tgz#28a139be3105a1175e205537e8ac10830e38dbf4" - integrity sha512-wKW3SKIUMmltbykg4I5JzCVzUhkuD9trD6efAmYgN2MrSntY0SMRQzEnD3mkyJ/rv9NLbTC7g3hKKE86YwEDLw== + version "8.2.2" + resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.2.tgz#7ec5f166026b55b10df011521c8a63920cb84a7a" + integrity sha512-HXoFOl+KS4yvmUjisi83VpuSBOeeXIzdJfoT/v2pUruqybpHy0Dz1DyXy3E2jNH0cSVKJZV92VOnFBwJR6k83A== dependencies: "@types/through" "*" - rxjs "^7.2.0" "@types/is-ci@^3.0.0": version "3.0.0" @@ -23373,7 +23372,7 @@ run-script-webpack-plugin@^0.1.0: resolved "https://registry.npmjs.org/run-script-webpack-plugin/-/run-script-webpack-plugin-0.1.1.tgz#dad3114be32eb864d2160306e4d9c52a2c1cfd59" integrity sha512-PrxBRLv1K9itDKMlootSCyGhdTU+KbKGJ2wF6/k0eyo6M0YGPC58HYbS/J/QsDiwM0t7G99WcuCqto0J7omOXA== -rxjs@7.5.5, rxjs@^7.1.0, rxjs@^7.2.0, rxjs@^7.5.1, rxjs@^7.5.5: +rxjs@7.5.5, rxjs@^7.1.0, rxjs@^7.5.1, rxjs@^7.5.5: version "7.5.5" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== From 0d40550f1903af5613a2f3c1c696249c3b149972 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Aug 2022 05:55:05 +0000 Subject: [PATCH 205/377] fix(deps): update dependency @rollup/plugin-commonjs to v22.0.2 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e49ba98f2d..e07cfc8c84 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6101,9 +6101,9 @@ react-use "^17.2.4" "@rollup/plugin-commonjs@^22.0.0": - version "22.0.1" - resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.1.tgz#f7cb777d20de3eeeaf994f39080115c336bef810" - integrity sha512-dGfEZvdjDHObBiP5IvwTKMVeq/tBZGMBHZFMdIV1ClMM/YoWS34xrHFGfag9SN2ZtMgNZRFruqvxZQEa70O6nQ== + version "22.0.2" + resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz#ee8ca8415cda30d383b4096aad5222435b4b69b6" + integrity sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg== dependencies: "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" From ba8db09ccf18c566e1864d4924c34a37a71410ce Mon Sep 17 00:00:00 2001 From: Alessandro Dalfovo Date: Fri, 5 Aug 2022 11:00:37 +0200 Subject: [PATCH 206/377] Introduce reviewers Signed-off-by: Alessandro Dalfovo --- .../builtin/publish/githubPullRequest.ts | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) 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 f8f9b22d61..cfaee62804 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts @@ -33,14 +33,14 @@ export type Encoding = 'utf-8' | 'base64'; class GithubResponseError extends CustomErrorBase {} /** @public */ -export interface OctokitWithPullRequestPluginClient { +export type OctokitWithPullRequestPluginClient = Octokit & { createPullRequest(options: createPullRequest.Options): Promise<{ data: { html_url: string; number: number; }; } | null>; -} +}; /** * The options passed to the client factory function. @@ -117,6 +117,8 @@ export const createPublishGithubPullRequestAction = ({ targetPath?: string; sourcePath?: string; token?: string; + reviewers?: string[]; + teamReviewers?: string[]; }>({ id: 'publish:github:pull-request', schema: { @@ -165,6 +167,22 @@ export const createPublishGithubPullRequestAction = ({ type: 'string', description: 'The token to use for authorization to GitHub', }, + reviewers: { + title: 'Pull Request Reviewers', + type: 'array', + items: { + type: 'string', + }, + description: 'Pull Request Reviewers', + }, + teamReviewers: { + title: 'Pull Request Team Reviewers', + type: 'array', + items: { + type: 'string', + }, + description: 'Pull Request Team Reviewers', + }, }, }, output: { @@ -194,6 +212,8 @@ export const createPublishGithubPullRequestAction = ({ targetPath, sourcePath, token: providedToken, + reviewers, + teamReviewers, } = ctx.input; const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); @@ -259,8 +279,33 @@ export const createPublishGithubPullRequestAction = ({ throw new GithubResponseError('null response from Github'); } + const pullRequestNumber = response.data.number; + if (reviewers !== null || teamReviewers !== null) { + try { + const result = await client.rest.pulls.requestReviewers({ + owner, + repo, + pull_number: pullRequestNumber, + reviewers: reviewers, + team_reviewers: teamReviewers, + }); + const addedUsers = result.data.requested_reviewers ?? []; + const addedTeams = result.data.requested_teams ?? []; + ctx.logger.info( + `Added users [${addedUsers.join( + ',', + )}] and teams [${addedTeams.join(',')}] as reviewers`, + ); + } catch (e) { + ctx.logger.error( + `Failure when adding reviewers to Pull request ${pullRequestNumber}`, + e, + ); + } + } + ctx.output('remoteUrl', response.data.html_url); - ctx.output('pullRequestNumber', response.data.number); + ctx.output('pullRequestNumber', pullRequestNumber); } catch (e) { throw new GithubResponseError('Pull request creation failed', e); } From 4a7315c5f4382a60a9724a9cb7e222dc5ce1399f Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Fri, 5 Aug 2022 12:28:21 +0200 Subject: [PATCH 207/377] Add tests Signed-off-by: Francesco Saltori --- .../builtin/publish/githubPullRequest.test.ts | 95 +++++++++++++++++++ .../builtin/publish/githubPullRequest.ts | 2 +- 2 files changed, 96 insertions(+), 1 deletion(-) 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 d030430924..bf857bc34f 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 @@ -62,6 +62,11 @@ describe('createPublishGithubPullRequestAction', () => { }, }; }), + rest: { + pulls: { + requestReviewers: jest.fn(async (_: any) => ({ data: {} })) + } + } }; clientFactory = jest.fn(async () => fakeClient); const githubCredentialsProvider: GithubCredentialsProvider = { @@ -273,6 +278,96 @@ describe('createPublishGithubPullRequestAction', () => { }); }); + describe('with reviewers and teamReviewers', () => { + let input: GithubPullRequestActionInput; + let ctx: ActionContext; + + beforeEach(() => { + input = { + repoUrl: 'github.com?owner=myorg&repo=myrepo', + title: 'Create my new app', + branchName: 'new-app', + description: 'This PR is really good', + reviewers: ['foobar'], + teamReviewers: ['team-foo'] + }; + + ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + }); + + it('creates a pull request and requests a review from the given reviewers', async () => { + await instance.handler(ctx); + + expect(fakeClient.createPullRequest).toBeCalled(); + expect(fakeClient.rest.pulls.requestReviewers).toBeCalledWith({ + owner: 'myorg', + repo: 'myrepo', + pull_number: 123, + reviewers: ['foobar'], + team_reviewers: ['team-foo'], + }) + }); + + it('creates outputs for the pull request url and number even if requesting reviewers fails', async () => { + fakeClient.rest.pulls.requestReviewers.mockImplementation(() => { throw new Error('a random error') }) + + await instance.handler(ctx); + + expect(ctx.output).toHaveBeenCalledWith( + 'remoteUrl', + 'https://github.com/myorg/myrepo/pull/123', + ); + expect(ctx.output).toHaveBeenCalledWith('pullRequestNumber', 123); + }); + + afterEach(() => { + mockFs.restore(); + jest.resetAllMocks(); + }); + }) + + describe('with no reviewers and teamReviewers', () => { + let input: GithubPullRequestActionInput; + let ctx: ActionContext; + + beforeEach(() => { + input = { + repoUrl: 'github.com?owner=myorg&repo=myrepo', + title: 'Create my new app', + branchName: 'new-app', + description: 'This PR is really good', + }; + + ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + }); + + it('does not call the API endpoint for requesting reviewers', async () => { + await instance.handler(ctx); + + expect(fakeClient.createPullRequest).toBeCalled(); + expect(fakeClient.rest.pulls.requestReviewers).not.toBeCalled(); + }); + + afterEach(() => { + mockFs.restore(); + jest.resetAllMocks(); + }); + }) + describe('with executable file mode 755', () => { let input: GithubPullRequestActionInput; let ctx: ActionContext; 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 cfaee62804..67379e8d70 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts @@ -280,7 +280,7 @@ export const createPublishGithubPullRequestAction = ({ } const pullRequestNumber = response.data.number; - if (reviewers !== null || teamReviewers !== null) { + if (reviewers || teamReviewers) { try { const result = await client.rest.pulls.requestReviewers({ owner, From 52ea23151d8cfd9b923f960a07263e474dc4588e Mon Sep 17 00:00:00 2001 From: Martin Ehrnst Date: Fri, 5 Aug 2022 12:48:33 +0200 Subject: [PATCH 208/377] Update org.md Add example on how to assign Microsoft Graph permission on a managed identity, as this is not possible through the Azure Portal. Up until recently no official Microsoft documentation existed for it, but now it does Signed-off-by: Martin Ehrnst --- docs/integrations/azure/org.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/azure/org.md b/docs/integrations/azure/org.md index 56d37369dd..b31f8e89f2 100644 --- a/docs/integrations/azure/org.md +++ b/docs/integrations/azure/org.md @@ -96,7 +96,7 @@ To authenticate with a certificate rather than a client secret, you can set the If deploying to resources that supports Managed Identity, and has identities configured (e.g. Azure App Services, Azure Container Apps), Managed Identity should be picked up without any additional configuration. If your app has multiple managed identities, you may need to set the `AZURE_CLIENT_ID` environment variable to tell Azure Identity which identity to use. -You will need to grant the same permissions to your identity as described for App Registrations above. +To grant the managed identity the same permissions as mentioned in *App Registration* above, [please follow this guide](https://docs.microsoft.com/en-us/azure/app-service/tutorial-connect-app-access-microsoft-graph-as-app-javascript?tabs=azure-powershell) ## Filtering imported Users and Groups From 1cb5e2cbfe137acc71b4055d3de61a3164c71ac2 Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Fri, 5 Aug 2022 12:56:35 +0200 Subject: [PATCH 209/377] Refactor tests a bit and fix typings Signed-off-by: Francesco Saltori --- .../builtin/publish/githubPullRequest.test.ts | 73 +++++++------------ 1 file changed, 26 insertions(+), 47 deletions(-) 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 bf857bc34f..dd493495d8 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 @@ -26,7 +26,6 @@ import { resolve as resolvePath } from 'path'; import { Writable } from 'stream'; import { ActionContext, TemplateAction } from '../../types'; import { - CreateGithubPullRequestClientFactoryInput, createPublishGithubPullRequestAction, OctokitWithPullRequestPluginClient, } from './githubPullRequest'; @@ -42,11 +41,12 @@ type GithubPullRequestActionInput = ReturnType< describe('createPublishGithubPullRequestAction', () => { let instance: TemplateAction; - let fakeClient: OctokitWithPullRequestPluginClient; - - let clientFactory: ( - input: CreateGithubPullRequestClientFactoryInput, - ) => Promise; + let fakeClient: { + createPullRequest: jest.Mock; + rest: { + pulls: { requestReviewers: jest.Mock }; + }; + }; beforeEach(() => { const integrations = ScmIntegrations.fromConfig(new ConfigReader({})); @@ -64,11 +64,13 @@ describe('createPublishGithubPullRequestAction', () => { }), rest: { pulls: { - requestReviewers: jest.fn(async (_: any) => ({ data: {} })) - } - } + requestReviewers: jest.fn(async (_: any) => ({ data: {} })), + }, + }, }; - clientFactory = jest.fn(async () => fakeClient); + const clientFactory = jest.fn( + async () => fakeClient as unknown as OctokitWithPullRequestPluginClient, + ); const githubCredentialsProvider: GithubCredentialsProvider = { getCredentials: jest.fn(), }; @@ -80,6 +82,11 @@ describe('createPublishGithubPullRequestAction', () => { }); }); + afterEach(() => { + mockFs.restore(); + jest.resetAllMocks(); + }); + describe('with no sourcePath', () => { let input: GithubPullRequestActionInput; let ctx: ActionContext; @@ -106,6 +113,7 @@ describe('createPublishGithubPullRequestAction', () => { workspacePath, }; }); + it('creates a pull request', async () => { await instance.handler(ctx); @@ -140,10 +148,6 @@ describe('createPublishGithubPullRequestAction', () => { ); expect(ctx.output).toHaveBeenCalledWith('pullRequestNumber', 123); }); - afterEach(() => { - mockFs.restore(); - jest.resetAllMocks(); - }); }); describe('with sourcePath', () => { @@ -176,11 +180,6 @@ describe('createPublishGithubPullRequestAction', () => { }; }); - afterEach(() => { - mockFs.restore(); - jest.resetAllMocks(); - }); - it('creates a pull request with only relevant files', async () => { await instance.handler(ctx); @@ -272,10 +271,6 @@ describe('createPublishGithubPullRequestAction', () => { ); expect(ctx.output).toHaveBeenCalledWith('pullRequestNumber', 123); }); - afterEach(() => { - mockFs.restore(); - jest.resetAllMocks(); - }); }); describe('with reviewers and teamReviewers', () => { @@ -289,7 +284,7 @@ describe('createPublishGithubPullRequestAction', () => { branchName: 'new-app', description: 'This PR is really good', reviewers: ['foobar'], - teamReviewers: ['team-foo'] + teamReviewers: ['team-foo'], }; ctx = { @@ -312,12 +307,14 @@ describe('createPublishGithubPullRequestAction', () => { pull_number: 123, reviewers: ['foobar'], team_reviewers: ['team-foo'], - }) + }); }); it('creates outputs for the pull request url and number even if requesting reviewers fails', async () => { - fakeClient.rest.pulls.requestReviewers.mockImplementation(() => { throw new Error('a random error') }) - + fakeClient.rest.pulls.requestReviewers.mockImplementation(() => { + throw new Error('a random error'); + }); + await instance.handler(ctx); expect(ctx.output).toHaveBeenCalledWith( @@ -326,12 +323,7 @@ describe('createPublishGithubPullRequestAction', () => { ); expect(ctx.output).toHaveBeenCalledWith('pullRequestNumber', 123); }); - - afterEach(() => { - mockFs.restore(); - jest.resetAllMocks(); - }); - }) + }); describe('with no reviewers and teamReviewers', () => { let input: GithubPullRequestActionInput; @@ -361,12 +353,7 @@ describe('createPublishGithubPullRequestAction', () => { expect(fakeClient.createPullRequest).toBeCalled(); expect(fakeClient.rest.pulls.requestReviewers).not.toBeCalled(); }); - - afterEach(() => { - mockFs.restore(); - jest.resetAllMocks(); - }); - }) + }); describe('with executable file mode 755', () => { let input: GithubPullRequestActionInput; @@ -431,10 +418,6 @@ describe('createPublishGithubPullRequestAction', () => { ); expect(ctx.output).toHaveBeenCalledWith('pullRequestNumber', 123); }); - afterEach(() => { - mockFs.restore(); - jest.resetAllMocks(); - }); }); describe('with executable file mode 775', () => { @@ -500,9 +483,5 @@ describe('createPublishGithubPullRequestAction', () => { ); expect(ctx.output).toHaveBeenCalledWith('pullRequestNumber', 123); }); - afterEach(() => { - mockFs.restore(); - jest.resetAllMocks(); - }); }); }); From cdea98f2a1180d997dad947c5e7c98aab2f5e9b6 Mon Sep 17 00:00:00 2001 From: Paulo Peixoto <72894267+padupe@users.noreply.github.com> Date: Fri, 5 Aug 2022 08:59:47 -0300 Subject: [PATCH 210/377] Adjustments based on @awanlin suggestion. Signed-off-by: Paulo Peixoto <72894267+padupe@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 70 ++++++------------------ 1 file changed, 16 insertions(+), 54 deletions(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 25e5ff9237..97d57540a9 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -277,54 +277,7 @@ const LogoFull = () => { You can also customize the Project's _default_ icons. -We can change the following icons: - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Icons
brokenImagechat
dashboarddocs
emailgithub
grouphelp
"kind:api""kind:component"
"kind:domain""kind:group"
"kind:location""kind:system"
"kind:user"scaffolder
searchtechdocs
userwarning
-
+We can change the following [icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx). ### Requirements @@ -338,15 +291,24 @@ In your front-end application, locate the `src` folder. We suggest creating the In the `icons` directory, upload the files in `.svg` format. In the `assets` directory, you can create the `customIcons.tsx` file. - +> Another example [here](https://github.com/backstage/backstage/blob/master/plugins/azure-devops/src/components/AzurePipelinesIcon/AzurePipelinesIcon.tsx), if you want to ensure proper behavior in light and dark themes. ```tsx // customIcons.tsx -import React from 'react'; -import ExampleSVG from './icons/example.svg'; +import { SvgIcon, SvgIconProps } from '@material-ui/core'; -export const ExampleIcon = () => { - return ; -}; +import React from 'react'; + +export const HeaderIcon = (props: SvgIconProps) => ( + + + +); ``` ### Using the custom icon From c2d53d914e5852d5fb70abb9112846bef9d4f67b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Aug 2022 12:45:54 +0000 Subject: [PATCH 211/377] chore(deps): update dependency @changesets/cli to v2.24.2 Signed-off-by: Renovate Bot --- yarn.lock | 55 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/yarn.lock b/yarn.lock index e07cfc8c84..7104f81149 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2230,13 +2230,13 @@ resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz#fe364f025ba74f6de6c837a84ef44bdb1d61e68f" integrity sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w== -"@changesets/apply-release-plan@^6.0.3": - version "6.0.3" - resolved "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-6.0.3.tgz#cd1113e57ac58d98ea9a52f2d39304c2d398a9dd" - integrity sha512-/3JKqtDefs2YSEQI6JQo43/MKTLfhPdrW/BFmqnRpW8UmPB+YXjjQgfjR/2KOaObLOkoixcL3WCK4wNkn/Krmw== +"@changesets/apply-release-plan@^6.0.4": + version "6.0.4" + resolved "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-6.0.4.tgz#c08628cf5381be1aad3de69e255c68f658b4ca1a" + integrity sha512-PutV/ymf8cZMqvaLe/Lh5cP3kBQ9FZl6oGQ3qRDxWD1ML+/uH3jrCE7S7Zw7IVSXkD0lnMD+1dAX7fsOJ6ZvgA== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/config" "^2.1.0" + "@changesets/config" "^2.1.1" "@changesets/get-version-range-type" "^0.3.2" "@changesets/git" "^1.4.1" "@changesets/types" "^5.1.0" @@ -2269,18 +2269,18 @@ "@changesets/types" "^5.1.0" "@changesets/cli@^2.14.0": - version "2.24.1" - resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.24.1.tgz#cb4c13c7712a3cb62fa9199cdda04567faf3d3b2" - integrity sha512-7Lz1inqGQjBrXgnXlENtzQ7EmO/9c+09d9oi8XoK4ARqlJe8GpafjqKRobcjcA/TTI7Fn2+cke4CrXFZfVF8Rw== + version "2.24.2" + resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.24.2.tgz#333ad412c821b582680fbc7f0d0596ebba442c2d" + integrity sha512-Bya7bnxF8Sz+O25M6kseAludVsCy5nXSW9u2Lbje/XbJTyU5q/xwIiXF9aTUzVi/4jyKoKoOasx7B1/z+NJLzg== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/apply-release-plan" "^6.0.3" + "@changesets/apply-release-plan" "^6.0.4" "@changesets/assemble-release-plan" "^5.2.0" "@changesets/changelog-git" "^0.1.12" - "@changesets/config" "^2.1.0" + "@changesets/config" "^2.1.1" "@changesets/errors" "^0.1.4" "@changesets/get-dependents-graph" "^1.3.3" - "@changesets/get-release-plan" "^3.0.12" + "@changesets/get-release-plan" "^3.0.13" "@changesets/git" "^1.4.1" "@changesets/logger" "^0.0.5" "@changesets/pre" "^1.0.12" @@ -2307,10 +2307,10 @@ term-size "^2.1.0" tty-table "^4.1.5" -"@changesets/config@^2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@changesets/config/-/config-2.1.0.tgz#bfb663a338fc86e9ea2cb471089aa6dd8dfd7c3d" - integrity sha512-43potf+DwYHmH7EY19vxtCq6fqj7UUIrZ4DTwM3pVBqCKxFIytm7GPy7wNAsH06UvMw7NRuOu4QK5HN02GsIrw== +"@changesets/config@^2.1.1": + version "2.1.1" + resolved "https://registry.npmjs.org/@changesets/config/-/config-2.1.1.tgz#96c1fec5dcccb4f6d37b56bba64e5c4f3285cca6" + integrity sha512-nSRINMqHpdtBpNVT9Eh9HtmLhOwOTAeSbaqKM5pRmGfsvyaROTBXV84ujF9UsWNlV71YxFbxTbeZnwXSGQlyTw== dependencies: "@changesets/errors" "^0.1.4" "@changesets/get-dependents-graph" "^1.3.3" @@ -2338,14 +2338,14 @@ fs-extra "^7.0.1" semver "^5.4.1" -"@changesets/get-release-plan@^3.0.12": - version "3.0.12" - resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.12.tgz#15038a553c7ba9aa764f69cef4705bcfb1be2fdc" - integrity sha512-TlpEdpxV5ZQmNeHoD6KNKAc01wjRrcu9/CQqzmO4qAlX7ARA4pIuAxd8QZ1AQXv/l4qhHox7SUYH3VLHfarv5w== +"@changesets/get-release-plan@^3.0.13": + version "3.0.13" + resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.13.tgz#f5f7b67b798d1bf2d6e8e546a60c199dd09bfeaf" + integrity sha512-Zl/UN4FUzb5LwmzhO2STRijJT5nQCN4syPEs0p1HSIR+O2iVOzes+2yTLF2zGiOx8qPOsFx/GRSAvuhSzm+9ig== dependencies: "@babel/runtime" "^7.10.4" "@changesets/assemble-release-plan" "^5.2.0" - "@changesets/config" "^2.1.0" + "@changesets/config" "^2.1.1" "@changesets/pre" "^1.0.12" "@changesets/read" "^0.5.7" "@changesets/types" "^5.1.0" @@ -15811,13 +15811,20 @@ is-core-module@^2.1.0, is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-core-module@^2.8.0, is-core-module@^2.8.1, is-core-module@^2.9.0: +is-core-module@^2.8.0, is-core-module@^2.8.1: version "2.9.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -26929,9 +26936,9 @@ yargs-parser@^20.2.2: integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-parser@^3.2.0: version "3.2.0" From 14e3787d3b628c931d565795a4f64df5f825c7e2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Aug 2022 12:46:49 +0000 Subject: [PATCH 212/377] fix(deps): update dependency graphiql to v1.11.1 Signed-off-by: Renovate Bot --- yarn.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index e07cfc8c84..2d6a444282 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2793,12 +2793,12 @@ teeny-request "^8.0.0" uuid "^8.0.0" -"@graphiql/react@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.7.0.tgz#0c8473798c70ae4b573057f2890f3c7f2a62d6ba" - integrity sha512-1xlj+WnfumwyWsXGWCX7DSN9/sXAganPOvceyochlcuhxeejnWy5s3gsSiTdGVDVR68OOTkYx+EpkRnXAZyEeA== +"@graphiql/react@^0.7.1": + version "0.7.1" + resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.7.1.tgz#c2741080f525a6b3779f47d16e94859e48b2ea14" + integrity sha512-eWNuBXzELOjzfQDsQI9cO8MxolAaZwWVRj/qazGo8cqNzOV9dtFz/XnB37roZCSz+qiGW1cwXmXpJnUJW45kcQ== dependencies: - "@graphiql/toolkit" "^0.6.0" + "@graphiql/toolkit" "^0.6.1" codemirror "^5.65.3" codemirror-graphql "^1.3.2" copy-to-clipboard "^3.2.0" @@ -2807,10 +2807,10 @@ markdown-it "^12.2.0" set-value "^4.1.0" -"@graphiql/toolkit@^0.6.0": - version "0.6.0" - resolved "https://registry.npmjs.org/@graphiql/toolkit/-/toolkit-0.6.0.tgz#e508e58f305a976222f6adb84ab0ec748c26ab60" - integrity sha512-mbAwbt4lw2bFp9QW3NLVmh/r/ymczlcqvXk1HfvuC7Ma4h0yzrJiQauJyh1/gF5kjqevcRSquvP/YQJSvh1u6w== +"@graphiql/toolkit@^0.6.1": + version "0.6.1" + resolved "https://registry.npmjs.org/@graphiql/toolkit/-/toolkit-0.6.1.tgz#ab2ae0a401ef5a6334a5573397608c2c5867c79d" + integrity sha512-rRjbHko6aSg1RWGr3yOJQqEV1tKe8yw9mDSr/18B+eDhVLQ30yyKk2NznFUT9NmIDzWFGR2pH/0lbBhHKmUCqw== dependencies: "@n1ru4l/push-pull-async-iterable-iterator" "^3.1.0" meros "^1.1.4" @@ -14684,12 +14684,12 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12, graphiql@^1.8.8: - version "1.11.0" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.0.tgz#e9ce0920e143ab543be189d6f67ac5cf09747709" - integrity sha512-QsQcNTbn5O7PurqrWblwFKgvSd12lyosHChs6zPladKyZ6+oiDhuhK69FIjxxBnm1tFR/Ko4NMDsTn4hLH1SMg== + version "1.11.1" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.1.tgz#18889f363c3b4c61a84f0b0388fcd9ab39fddd60" + integrity sha512-1XdY7x8fp55qfakYA6y3hMd5mMcGOXDpuZ/xtulQR6jVEs3UF4d3jzsiZefhYLWB0uSRf21kW76sUvKYipWfdg== dependencies: - "@graphiql/react" "^0.7.0" - "@graphiql/toolkit" "^0.6.0" + "@graphiql/react" "^0.7.1" + "@graphiql/toolkit" "^0.6.1" entities "^2.0.0" graphql-language-service "^5.0.6" markdown-it "^12.2.0" From af8202b296438c5b8959630d23eafafd02385532 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Aug 2022 13:45:25 +0000 Subject: [PATCH 213/377] fix(deps): update dependency @codemirror/view to v6.2.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38e62fa162..b214bc091a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2502,9 +2502,9 @@ "@lezer/highlight" "^1.0.0" "@codemirror/view@^6.0.0": - version "6.1.4" - resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.1.4.tgz#c4b7ca6ea6920e206f6b3de89b17da1b66675fd7" - integrity sha512-pekgUX+0hL4ri2JV7/bu7jhhwOgOhU1eRc1/ZyAQYCWcCI4TPB1qLrPE3cD/qW9yjBcYiN9MN0XI1tjK7Yw05Q== + version "6.2.0" + resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.2.0.tgz#bae4c486a84174bd9656af9c9d2bd709d5b26c9f" + integrity sha512-3emW1symh+GoteFMBPsltjmF790U/trouLILATh3JodbF/z98HvcQh2g3+H6dfNIHx16uNonsAF4mNzVr1TJNA== dependencies: "@codemirror/state" "^6.0.0" style-mod "^4.0.0" From 0aa1d08e289311549a27bedbfe9f71e511cbaf4a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Aug 2022 15:37:41 +0000 Subject: [PATCH 214/377] chore(deps): update dependency puppeteer to v16.1.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b214bc091a..d1a0fa81eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21892,9 +21892,9 @@ punycode@^2.1.0, punycode@^2.1.1: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== puppeteer@^16.0.0: - version "16.0.0" - resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-16.0.0.tgz#9efb6cdb57e3e51cf060a33f6289e88200dd4672" - integrity sha512-FgSe21IHNHkqv1SiJiob4ANsxVujcINa4p3MaDEMyoZsocbgSgwYE0c9lnF8eoinw4id3vx4DOXwhFdOOwVlDg== + version "16.1.0" + resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-16.1.0.tgz#06a32dc347c94642601017fbf83e1d37379b9651" + integrity sha512-lhykJLbH2bbBaP3NfYI2Vj0T4ctrdfVdEVf8glZITPnLfqrJ0nfUzAYuIz5YcA79k5lmFKANIhEXex+jQChU3g== dependencies: cross-fetch "3.1.5" debug "4.3.4" From 43bb94ca1df0139eda878504f1b3f29b2ec75f5d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Aug 2022 20:14:09 +0000 Subject: [PATCH 215/377] fix(deps): update dependency postcss to v8.4.16 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d1a0fa81eb..f4ec593f54 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21491,9 +21491,9 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^ integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.1.0, postcss@^8.4.7: - version "8.4.14" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + version "8.4.16" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" From 300bb1f0842d269f506cfe5632cb6b437458580a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 7 Aug 2022 09:46:14 +0000 Subject: [PATCH 216/377] fix(deps): update dependency graphiql to v1.11.2 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index f4ec593f54..b5328c7353 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2793,10 +2793,10 @@ teeny-request "^8.0.0" uuid "^8.0.0" -"@graphiql/react@^0.7.1": - version "0.7.1" - resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.7.1.tgz#c2741080f525a6b3779f47d16e94859e48b2ea14" - integrity sha512-eWNuBXzELOjzfQDsQI9cO8MxolAaZwWVRj/qazGo8cqNzOV9dtFz/XnB37roZCSz+qiGW1cwXmXpJnUJW45kcQ== +"@graphiql/react@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.8.0.tgz#53a78fd837c02d03a335bd26fe00549caedf68f6" + integrity sha512-dk0XIkpqQ5s+38ARQPdMhPYjML0j9XZwhCyfMV+Bw3/i2IN+Z+N6iqg5PhaaKpGGveL33BHjoH612kfo9swjZg== dependencies: "@graphiql/toolkit" "^0.6.1" codemirror "^5.65.3" @@ -14684,11 +14684,11 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12, graphiql@^1.8.8: - version "1.11.1" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.1.tgz#18889f363c3b4c61a84f0b0388fcd9ab39fddd60" - integrity sha512-1XdY7x8fp55qfakYA6y3hMd5mMcGOXDpuZ/xtulQR6jVEs3UF4d3jzsiZefhYLWB0uSRf21kW76sUvKYipWfdg== + version "1.11.2" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.2.tgz#32a6a42dbfbc769f0eda8fb871b73bcf05f0d0e7" + integrity sha512-2/6rjCCXCDa9YMqlJbgSLx2PkQY8X9Nk3V+5eG69IhR6OhvV2nT54NrhqAVoRlSkxJr7SvyQhf4IbcI+yFSgHw== dependencies: - "@graphiql/react" "^0.7.1" + "@graphiql/react" "^0.8.0" "@graphiql/toolkit" "^0.6.1" entities "^2.0.0" graphql-language-service "^5.0.6" From 6077c1bc2cc139af1421e98cfe0ad7a2cb45f728 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 7 Aug 2022 19:00:43 +0000 Subject: [PATCH 217/377] fix(deps): update dependency eslint-plugin-jest to v26.8.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b5328c7353..20fbc94a78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12928,9 +12928,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.14.1" eslint-plugin-jest@^26.1.2: - version "26.7.0" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.7.0.tgz#41d405ac9143e1284a3401282db47ed459436778" - integrity sha512-/YNitdfG3o3cC6juZziAdkk6nfJt01jXVfj4AgaYVLs7bupHzRDL5K+eipdzhDXtQsiqaX1TzfwSuRlEgeln1A== + version "26.8.0" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.0.tgz#32471a6af11dbcb7d0ccf83e8edc83d256fd34a3" + integrity sha512-IyGhk+PpDgIA99OBPHo+l2aTtt8yAeB1IgPwXOQZSzi8ag/t1MsLZBN2MKL1sj6ahlkaxbkhlm7ll+NPcMcjaQ== dependencies: "@typescript-eslint/utils" "^5.10.0" From b25f479618463daef3f641144a265576f9b5b07d Mon Sep 17 00:00:00 2001 From: blam Date: Sun, 7 Aug 2022 21:37:14 +0200 Subject: [PATCH 218/377] chore: fixing the prettier formatting Signed-off-by: blam --- docs/integrations/azure/org.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/azure/org.md b/docs/integrations/azure/org.md index b31f8e89f2..99c517b568 100644 --- a/docs/integrations/azure/org.md +++ b/docs/integrations/azure/org.md @@ -96,7 +96,7 @@ To authenticate with a certificate rather than a client secret, you can set the If deploying to resources that supports Managed Identity, and has identities configured (e.g. Azure App Services, Azure Container Apps), Managed Identity should be picked up without any additional configuration. If your app has multiple managed identities, you may need to set the `AZURE_CLIENT_ID` environment variable to tell Azure Identity which identity to use. -To grant the managed identity the same permissions as mentioned in *App Registration* above, [please follow this guide](https://docs.microsoft.com/en-us/azure/app-service/tutorial-connect-app-access-microsoft-graph-as-app-javascript?tabs=azure-powershell) +To grant the managed identity the same permissions as mentioned in _App Registration_ above, [please follow this guide](https://docs.microsoft.com/en-us/azure/app-service/tutorial-connect-app-access-microsoft-graph-as-app-javascript?tabs=azure-powershell) ## Filtering imported Users and Groups From 5b9ab1542f6ae08638337ad514ab5b686ec6df6f Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Mon, 8 Aug 2022 11:27:51 +0200 Subject: [PATCH 219/377] Refactor review request logic Signed-off-by: Francesco Saltori --- .../builtin/publish/githubPullRequest.ts | 64 +++++++++++++------ 1 file changed, 43 insertions(+), 21 deletions(-) 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 67379e8d70..6a37a89f33 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts @@ -27,6 +27,7 @@ import { createPullRequest } from 'octokit-plugin-create-pull-request'; import { resolveSafeChildPath } from '@backstage/backend-common'; import { getOctokitOptions } from '../github/helpers'; import { serializeDirectoryContents } from '../../../../lib/files'; +import { Logger } from 'winston'; export type Encoding = 'utf-8' | 'base64'; @@ -99,6 +100,12 @@ export interface CreateGithubPullRequestActionOptions { ) => Promise; } +type GithubPullRequest = { + owner: string; + repo: string; + number: number; +}; + /** * Creates a Github Pull Request action. * @public @@ -281,27 +288,14 @@ export const createPublishGithubPullRequestAction = ({ const pullRequestNumber = response.data.number; if (reviewers || teamReviewers) { - try { - const result = await client.rest.pulls.requestReviewers({ - owner, - repo, - pull_number: pullRequestNumber, - reviewers: reviewers, - team_reviewers: teamReviewers, - }); - const addedUsers = result.data.requested_reviewers ?? []; - const addedTeams = result.data.requested_teams ?? []; - ctx.logger.info( - `Added users [${addedUsers.join( - ',', - )}] and teams [${addedTeams.join(',')}] as reviewers`, - ); - } catch (e) { - ctx.logger.error( - `Failure when adding reviewers to Pull request ${pullRequestNumber}`, - e, - ); - } + const pullRequest = { owner, repo, number: pullRequestNumber }; + await requestReviewersOnPullRequest( + pullRequest, + reviewers, + teamReviewers, + client, + ctx.logger, + ); } ctx.output('remoteUrl', response.data.html_url); @@ -311,4 +305,32 @@ export const createPublishGithubPullRequestAction = ({ } }, }); + + async function requestReviewersOnPullRequest( + pr: GithubPullRequest, + reviewers: string[] | undefined, + teamReviewers: string[] | undefined, + client: Octokit, + logger: Logger, + ) { + try { + const result = await client.rest.pulls.requestReviewers({ + owner: pr.owner, + repo: pr.repo, + pull_number: pr.number, + reviewers, + team_reviewers: teamReviewers, + }); + const addedUsers = result.data.requested_reviewers?.join(', ') ?? ''; + const addedTeams = result.data.requested_teams?.join(', ') ?? ''; + logger.info( + `Added users [${addedUsers}] and teams [${addedTeams}] as reviewers to Pull request ${pr.number}`, + ); + } catch (e) { + logger.error( + `Failure when adding reviewers to Pull request ${pr.number}`, + e, + ); + } + } }; From 0bcb545875ba5a1ec272e1edf749b60aa204aa2c Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Mon, 8 Aug 2022 11:32:51 +0200 Subject: [PATCH 220/377] Regenerate API report Signed-off-by: Francesco Saltori --- plugins/scaffolder-backend/api-report.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 615d6aa8fb..96a4d1e461 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -20,6 +20,7 @@ import { Knex } from 'knex'; import { LocationSpec } from '@backstage/plugin-catalog-backend'; import { Logger } from 'winston'; import { Observable } from '@backstage/types'; +import { Octokit } from 'octokit'; import { PluginDatabaseManager } from '@backstage/backend-common'; import { Schema } from 'jsonschema'; import { ScmIntegrationRegistry } from '@backstage/integration'; @@ -391,6 +392,8 @@ export const createPublishGithubPullRequestAction: ({ targetPath?: string | undefined; sourcePath?: string | undefined; token?: string | undefined; + reviewers?: string[] | undefined; + teamReviewers?: string[] | undefined; }>; // @public @@ -419,7 +422,7 @@ export const createPublishGitlabMergeRequestAction: (options: { branchName: string; targetPath: string; token?: string | undefined; - commitAction?: 'update' | 'create' | 'delete' | undefined; + commitAction?: 'update' | 'delete' | 'create' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; @@ -523,15 +526,14 @@ export function fetchContents({ }): Promise; // @public (undocumented) -export interface OctokitWithPullRequestPluginClient { - // (undocumented) +export type OctokitWithPullRequestPluginClient = Octokit & { createPullRequest(options: createPullRequest.Options): Promise<{ data: { html_url: string; number: number; }; } | null>; -} +}; // @public export interface RouterOptions { From 692d5d3405470b5ef7777889b5db5e0b97b6c67e Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Mon, 8 Aug 2022 11:42:03 +0200 Subject: [PATCH 221/377] Add changeset Signed-off-by: Francesco Saltori --- .changeset/tricky-ligers-move.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tricky-ligers-move.md diff --git a/.changeset/tricky-ligers-move.md b/.changeset/tricky-ligers-move.md new file mode 100644 index 0000000000..21aa7757ba --- /dev/null +++ b/.changeset/tricky-ligers-move.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Added `reviewers` and `teamReviewers` parameters to `publish:github:pull-request` action to add reviewers on the pull request created by the action From 3a0bdc3baa654d8ac0a228871b21ebad48c59979 Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Mon, 8 Aug 2022 11:46:33 +0200 Subject: [PATCH 222/377] Improve params descriptions Signed-off-by: Francesco Saltori --- .../scaffolder/actions/builtin/publish/githubPullRequest.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 6a37a89f33..51049e4357 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts @@ -180,7 +180,8 @@ export const createPublishGithubPullRequestAction = ({ items: { type: 'string', }, - description: 'Pull Request Reviewers', + description: + 'The users that will be added as reviewers to the pull request', }, teamReviewers: { title: 'Pull Request Team Reviewers', @@ -188,7 +189,8 @@ export const createPublishGithubPullRequestAction = ({ items: { type: 'string', }, - description: 'Pull Request Team Reviewers', + description: + 'The teams that will be added as reviewers to the pull request', }, }, }, From a9c1c1580ea834789b732d9bf508458b54e030ce Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Mon, 8 Aug 2022 12:13:38 +0200 Subject: [PATCH 223/377] Fix API report Signed-off-by: Francesco Saltori --- 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 96a4d1e461..de9a9e677f 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -422,7 +422,7 @@ export const createPublishGitlabMergeRequestAction: (options: { branchName: string; targetPath: string; token?: string | undefined; - commitAction?: 'update' | 'delete' | 'create' | undefined; + commitAction?: 'update' | 'create' | 'delete' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; From d4880aa6a7975a8382c8ec5b7a747585ef6b0c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 8 Aug 2022 14:53:44 +0200 Subject: [PATCH 224/377] Expect the unexpected MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../src/database/DefaultProcessingDatabase.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts b/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts index 6a0986b345..9eaeb0e322 100644 --- a/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts +++ b/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts @@ -429,6 +429,7 @@ describe('Default Processing Database', () => { if (step.expectConflict) { // eslint-disable-next-line jest/no-conditional-expect expect(mockLogger.warn).toHaveBeenCalledWith( + // eslint-disable-next-line jest/no-conditional-expect expect.stringMatching(/^Detected conflicting entityRef/), ); } else { From 24cda6212a95e79a3b2306f9338e5b5e49b8b2e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 13:15:30 +0000 Subject: [PATCH 225/377] chore(deps): update graphqlcodegenerator monorepo Signed-off-by: Renovate Bot --- yarn.lock | 108 +++++++++++++++++++++--------------------------------- 1 file changed, 42 insertions(+), 66 deletions(-) diff --git a/yarn.lock b/yarn.lock index 20fbc94a78..83f8d650bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2816,12 +2816,12 @@ meros "^1.1.4" "@graphql-codegen/cli@^2.3.1": - version "2.11.3" - resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.3.tgz#6cb0fd6da0773957b531cccf7459303a23ee1c05" - integrity sha512-C1d88Kx0a0PF1tOR00UIZjHq5aWNNcw5fM2k08rOY9O5b4sU7kEb+YbGKP6EExTtJnYb49fePLKVvrIv1ejDFg== + version "2.11.4" + resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.4.tgz#c0e31c07712d8ecc9947562b7645d62903318830" + integrity sha512-qqkk0XOPlTV43qiQMf75K9/6WyRNstyCRkq7hAh2six77x+OvNHzvMAxdWaMR8VPbg+rdlP53M7N+k2zpQzewg== dependencies: - "@graphql-codegen/core" "2.6.0" - "@graphql-codegen/plugin-helpers" "^2.6.1" + "@graphql-codegen/core" "2.6.1" + "@graphql-codegen/plugin-helpers" "^2.6.2" "@graphql-tools/apollo-engine-loader" "^7.3.6" "@graphql-tools/code-file-loader" "^7.3.1" "@graphql-tools/git-loader" "^7.2.1" @@ -2852,32 +2852,32 @@ yaml "^1.10.0" yargs "^17.0.0" -"@graphql-codegen/core@2.6.0": - version "2.6.0" - resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.0.tgz#06a237892285aa6364a8ff40bb234e5b553b4489" - integrity sha512-7uZGnLCMR/pnh/5CsyI4y5bBvRndNHFs+AWpMUUjDBcjMRrMaavu37VyyYDz4/ob0BnQJt8RTBN9eArS9PLYAQ== +"@graphql-codegen/core@2.6.1": + version "2.6.1" + resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.1.tgz#57599a2e97d3c5109d888781587eba65f3c6cabe" + integrity sha512-X6IIQCIvEm+g6xcd/5ml/Tmz8U6pd4q9s1mM4WcstBQ26v+gzzlj6lc7+6ALhrNm25gHKQ4PiVoG2W0pw503Dw== dependencies: - "@graphql-codegen/plugin-helpers" "^2.5.0" + "@graphql-codegen/plugin-helpers" "^2.6.2" "@graphql-tools/schema" "^8.5.0" "@graphql-tools/utils" "^8.8.0" tslib "~2.4.0" "@graphql-codegen/graphql-modules-preset@^2.3.2": - version "2.5.0" - resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.5.0.tgz#fbc9008328394e47bd2b1291b4a1c2d972fe7620" - integrity sha512-zuaocEijeD8sjJr+7m+tKsafHNUFRDvq2R4zdf+F/zg3xhkAAV6OZ1cJ+/CwEAUxgJqxy6RBhb9BwyGRpbOdaw== + version "2.5.1" + resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.5.1.tgz#eb0c8c23457be866f7308b23b1d49d9d71d9a791" + integrity sha512-eA5G2++Uds11CQuSyJjNo9D5fsd8EiXJZ32hNb9jxlNriGHdwLzPVskSEPGi2avxhqGJG4XH2IZvkg4WTyD1kA== dependencies: - "@graphql-codegen/plugin-helpers" "^2.6.0" - "@graphql-codegen/visitor-plugin-common" "2.12.0" + "@graphql-codegen/plugin-helpers" "^2.6.2" + "@graphql-codegen/visitor-plugin-common" "2.12.1" "@graphql-tools/utils" "^8.8.0" change-case-all "1.0.14" parse-filepath "^1.0.2" tslib "~2.4.0" -"@graphql-codegen/plugin-helpers@^2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.5.0.tgz#83601ed1a362c05c64c4fc9c538a0f801bc6318f" - integrity sha512-0jM5/14EdM4yow5v8OGOnUmRqfA1gaWkh+J5berqQUpcFYfSQXD6+Idnkiju/jjIypEN7UvbPkC7BgryWVxexA== +"@graphql-codegen/plugin-helpers@^2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.6.2.tgz#3c65d89fc9b61914235fc7cb14f1d48492d27944" + integrity sha512-bt5PNix0MwzWP53UdaYm6URrVMWU8RlQhrTSLFjxQ8ShS5zoTlQtpZJGZc5ONqFgKa83qbUmzXUtP8oRVVn8zw== dependencies: "@graphql-tools/utils" "^8.8.0" change-case-all "1.0.14" @@ -2886,68 +2886,44 @@ lodash "~4.17.0" tslib "~2.4.0" -"@graphql-codegen/plugin-helpers@^2.6.0": - version "2.6.0" - resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.6.0.tgz#ae7005e6a2dcb0095ae350970c41606906048a27" - integrity sha512-z8uw6GdUvtKyt5YSijtj1yRqI0A2lBWdGIgTjgXaAKqSC+InlVBy+89859LlKNMrO7somdt44cbMys8r4Hbqeg== +"@graphql-codegen/schema-ast@^2.5.1": + version "2.5.1" + resolved "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.5.1.tgz#ce030ae6de5dacd745848009ba0ca18c9c30910c" + integrity sha512-tewa5DEKbglWn7kYyVBkh3J8YQ5ALqAMVmZwiVFIGOao5u66nd+e4HuFqp0u+Jpz4SJGGi0ap/oFrEvlqLjd2A== dependencies: - "@graphql-tools/utils" "^8.8.0" - change-case-all "1.0.14" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.4.0" - -"@graphql-codegen/plugin-helpers@^2.6.1": - version "2.6.1" - resolved "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.6.1.tgz#0e3abf1a13843abecd1d795fe85a61b7459a7e3a" - integrity sha512-RbkCPu8rZo+d3tWPUzqnZhgGutp15GVcs9UhaOcenKpCDDQxNxqGGTn76LuAAymT9y7BSnXdY20k1CW59z4nTw== - dependencies: - "@graphql-tools/utils" "^8.8.0" - change-case-all "1.0.14" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.4.0" - -"@graphql-codegen/schema-ast@^2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.5.0.tgz#1b33a17924f0dd4c78d4f2c9dfce215d0bdd29ae" - integrity sha512-nlF4Yc7h90nmogG2E11TeFJ3/hCkb4SDMSdbJX68b1mhvVEji/kq3zWYKAQ+lAzjZ7HF94Eylm3MrZAjjpCKIA== - dependencies: - "@graphql-codegen/plugin-helpers" "^2.5.0" + "@graphql-codegen/plugin-helpers" "^2.6.2" "@graphql-tools/utils" "^8.8.0" tslib "~2.4.0" "@graphql-codegen/typescript-resolvers@^2.4.3": - version "2.7.2" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.7.2.tgz#c5475400e505b145e956f6695944b00c77d341e0" - integrity sha512-Yo0ab37mG438z8xcdtApDyTECqfdH2CeamKTjTQiOxeUBCWZt0MgIjt6jIz2ZTQJVsL7AO5aFjPDoS+00dkLQA== + version "2.7.3" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.7.3.tgz#eac354fc68a796a94055b176f45d628430042285" + integrity sha512-6Yh1y7Z93H/PxF8tnUb3Bp1q+JuS31Dg5jZI1/FdXp931jW6pgK6g60+CKpxlIBcY6MNrFZkYKL/VRPTc8u00A== dependencies: - "@graphql-codegen/plugin-helpers" "^2.6.0" - "@graphql-codegen/typescript" "^2.7.2" - "@graphql-codegen/visitor-plugin-common" "2.12.0" + "@graphql-codegen/plugin-helpers" "^2.6.2" + "@graphql-codegen/typescript" "^2.7.3" + "@graphql-codegen/visitor-plugin-common" "2.12.1" "@graphql-tools/utils" "^8.8.0" auto-bind "~4.0.0" tslib "~2.4.0" -"@graphql-codegen/typescript@^2.4.2", "@graphql-codegen/typescript@^2.7.2": - version "2.7.2" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.7.2.tgz#ad47ad1abf8e49f455a47cb71d2d9fd149d7846d" - integrity sha512-lFqvLgw4oAChA9+ifC2K7Ie+mE+XvHcZqwXsm45bpF7jbmqfgjS0gvQNfu2egi6u4hdg+xL+olNxwnyhayrikw== +"@graphql-codegen/typescript@^2.4.2", "@graphql-codegen/typescript@^2.7.3": + version "2.7.3" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.7.3.tgz#ad786a1c74e16eca8e01e7a8f28078e1c24eeb61" + integrity sha512-EzX/acijXtbG/AwPzho2ZZWaNo00+xAbsRDP+vnT2PwQV3AYq3/5bFvjq1XfAGWbTntdmlYlIwC9hf5bI85WVA== dependencies: - "@graphql-codegen/plugin-helpers" "^2.6.0" - "@graphql-codegen/schema-ast" "^2.5.0" - "@graphql-codegen/visitor-plugin-common" "2.12.0" + "@graphql-codegen/plugin-helpers" "^2.6.2" + "@graphql-codegen/schema-ast" "^2.5.1" + "@graphql-codegen/visitor-plugin-common" "2.12.1" auto-bind "~4.0.0" tslib "~2.4.0" -"@graphql-codegen/visitor-plugin-common@2.12.0": - version "2.12.0" - resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.12.0.tgz#49b055c5c2c5c0890f2226ce9e84bb73dfd83801" - integrity sha512-ULhFgOY05U+dlPsXkPT2wSBaAZMtEuHPL5Q1u8xwBdHWHi/uT4L5zEcBx+If/f6UWrOw7ufjEM0L7XSupe1iCA== +"@graphql-codegen/visitor-plugin-common@2.12.1": + version "2.12.1" + resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.12.1.tgz#8d2d24b572afd396381dddef7e2032b0f73c05cc" + integrity sha512-dIUrX4+i/uazyPQqXyQ8cqykgNFe1lknjnfDWFo0gnk2W8+ruuL2JpSrj/7efzFHxbYGMQrCABDCUTVLi3DcVA== dependencies: - "@graphql-codegen/plugin-helpers" "^2.6.0" + "@graphql-codegen/plugin-helpers" "^2.6.2" "@graphql-tools/optimize" "^1.3.0" "@graphql-tools/relay-operation-optimizer" "^6.5.0" "@graphql-tools/utils" "^8.8.0" From 97f0a37378d9db4ede917b9bac9391be4f5e9ebe Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Mon, 8 Aug 2022 08:22:56 -0500 Subject: [PATCH 226/377] Support catalogPath wildcards Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/tall-mugs-press.md | 5 +++++ .../src/providers/GitHubEntityProvider.ts | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .changeset/tall-mugs-press.md diff --git a/.changeset/tall-mugs-press.md b/.changeset/tall-mugs-press.md new file mode 100644 index 0000000000..2a0053e95d --- /dev/null +++ b/.changeset/tall-mugs-press.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Improved support for wildcards in `catalogPath` diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index 43c01e8f7c..991b380112 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -195,9 +195,9 @@ export class GitHubEntityProvider implements EntityProvider { private createLocationUrl(repository: Repository): string { const branch = this.config.filters?.branch || repository.defaultBranchRef?.name || '-'; - const catalogFile = this.config.catalogPath.substring( - this.config.catalogPath.lastIndexOf('/') + 1, - ); + const catalogFile = this.config.catalogPath.startsWith('/') + ? this.config.catalogPath.substring(1) + : this.config.catalogPath; return `${repository.url}/blob/${branch}/${catalogFile}`; } From 5ffaf1cc17b2edf5501faeff43ec1d00be23bf4c Mon Sep 17 00:00:00 2001 From: Francesco Saltori Date: Mon, 8 Aug 2022 15:50:29 +0200 Subject: [PATCH 227/377] Fix tests in CI Signed-off-by: Francesco Saltori --- .../actions/builtin/publish/githubPullRequest.test.ts | 4 ++++ 1 file changed, 4 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 dd493495d8..1bc768e4bd 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 @@ -287,6 +287,8 @@ describe('createPublishGithubPullRequestAction', () => { teamReviewers: ['team-foo'], }; + mockFs({ [workspacePath]: {} }); + ctx = { createTemporaryDirectory: jest.fn(), output: jest.fn(), @@ -337,6 +339,8 @@ describe('createPublishGithubPullRequestAction', () => { description: 'This PR is really good', }; + mockFs({ [workspacePath]: {} }); + ctx = { createTemporaryDirectory: jest.fn(), output: jest.fn(), From 08562ebe1117c0510b0b6cf35dcacf0c6cbccd67 Mon Sep 17 00:00:00 2001 From: kielosz Date: Mon, 8 Aug 2022 16:05:43 +0200 Subject: [PATCH 228/377] Display minus sign in trends Signed-off-by: kielosz --- .changeset/popular-ears-allow.md | 5 +++++ plugins/cost-insights/api-report.md | 5 ++++- .../components/CostGrowth/CostGrowthIndicator.tsx | 7 +++++-- .../CostOverviewCard/CostOverviewLegend.tsx | 4 ++-- .../ProductInsightsCard/ProductEntityTable.tsx | 10 ++++++++-- plugins/cost-insights/src/utils/formatters.test.ts | 3 +++ plugins/cost-insights/src/utils/formatters.ts | 12 ++++++++++-- 7 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 .changeset/popular-ears-allow.md diff --git a/.changeset/popular-ears-allow.md b/.changeset/popular-ears-allow.md new file mode 100644 index 0000000000..1af2fcbd81 --- /dev/null +++ b/.changeset/popular-ears-allow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-cost-insights': patch +--- + +Display minus sign in trends in `CostOverviewCard` diff --git a/plugins/cost-insights/api-report.md b/plugins/cost-insights/api-report.md index 94cab949c7..19d94c7058 100644 --- a/plugins/cost-insights/api-report.md +++ b/plugins/cost-insights/api-report.md @@ -320,7 +320,10 @@ export const CostGrowthIndicator: ({ // @public (undocumented) export type CostGrowthIndicatorProps = TypographyProps & { change: ChangeStatistic; - formatter?: (change: ChangeStatistic) => Maybe; + formatter?: ( + change: ChangeStatistic, + returnAbsoluteValue: boolean, + ) => Maybe; }; // Warning: (ae-missing-release-tag) "CostGrowthProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx b/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx index 592f57d389..bb303956a3 100644 --- a/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx +++ b/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx @@ -25,7 +25,10 @@ import { useCostGrowthStyles as useStyles } from '../../utils/styles'; export type CostGrowthIndicatorProps = TypographyProps & { change: ChangeStatistic; - formatter?: (change: ChangeStatistic) => Maybe; + formatter?: ( + change: ChangeStatistic, + returnAbsoluteValue: boolean, + ) => Maybe; }; export const CostGrowthIndicator = ({ @@ -44,7 +47,7 @@ export const CostGrowthIndicator = ({ return ( - {formatter ? formatter(change) : change.ratio} + {formatter ? formatter(change, true) : change.ratio} {growth === GrowthType.Excess && } {growth === GrowthType.Savings && } diff --git a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx index 2df80f4780..ddd31201a6 100644 --- a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx +++ b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx @@ -59,7 +59,7 @@ export const CostOverviewLegend = ({ {dailyCostData.change && ( - {formatChange(dailyCostData.change)} + {formatChange(dailyCostData.change, false)} )} @@ -70,7 +70,7 @@ export const CostOverviewLegend = ({ title={`${metric.name} Trend`} markerColor={theme.palette.magenta} > - {formatChange(metricData.change)} + {formatChange(metricData.change, false)}
) { if (b.id === 'total') return 1; if (field === 'label') return a.label.localeCompare(b.label); if (field === 'change') { - if (formatChange(a[field]) === '∞' || formatChange(b[field]) === '-∞') + if ( + formatChange(a[field], false) === '∞' || + formatChange(b[field], false) === '-∞' + ) return 1; - if (formatChange(a[field]) === '-∞' || formatChange(b[field]) === '∞') + if ( + formatChange(a[field], false) === '-∞' || + formatChange(b[field], false) === '∞' + ) return -1; return a[field].ratio! - b[field].ratio!; } diff --git a/plugins/cost-insights/src/utils/formatters.test.ts b/plugins/cost-insights/src/utils/formatters.test.ts index 9fe17f277f..754760e5cb 100644 --- a/plugins/cost-insights/src/utils/formatters.test.ts +++ b/plugins/cost-insights/src/utils/formatters.test.ts @@ -73,6 +73,9 @@ describe.each` ${0.123123} | ${'12%'} ${1.123} | ${'112%'} ${10.123} | ${'>1000%'} + ${-0.123123} | ${'-12%'} + ${-1.123} | ${'-112%'} + ${-10.123} | ${'>1000%'} `('formatPercent', ({ ratio, expected }) => { it(`correctly formats ${ratio} as ${expected}`, () => { expect(formatPercent(ratio)).toBe(expected); diff --git a/plugins/cost-insights/src/utils/formatters.ts b/plugins/cost-insights/src/utils/formatters.ts index 70782123cd..e66b6bc75c 100644 --- a/plugins/cost-insights/src/utils/formatters.ts +++ b/plugins/cost-insights/src/utils/formatters.ts @@ -81,9 +81,17 @@ export function formatCurrency(amount: number, currency?: string): string { return currency ? `${numString} ${pluralize(currency, n)}` : numString; } -export function formatChange(change: ChangeStatistic): string { +export function formatChange( + change: ChangeStatistic, + returnAbsoluteValue: boolean, +): string { if (notEmpty(change.ratio)) { - return formatPercent(Math.abs(change.ratio)); + return formatPercent( + returnAbsoluteValue ? Math.abs(change.ratio) : change.ratio, + ); + } + if (returnAbsoluteValue) { + return '∞'; } return change.amount >= 0 ? '∞' : '-∞'; } From d0eefc499a199f23ea421d21a3110cdd2c3ea595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 8 Aug 2022 16:12:21 +0200 Subject: [PATCH 229/377] Make Link.to and Button.to more strict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/tasty-falcons-press.md | 5 +++++ packages/core-components/api-report.md | 5 +++-- packages/core-components/src/components/Link/Link.tsx | 5 +++-- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 .changeset/tasty-falcons-press.md diff --git a/.changeset/tasty-falcons-press.md b/.changeset/tasty-falcons-press.md new file mode 100644 index 0000000000..288f527e17 --- /dev/null +++ b/.changeset/tasty-falcons-press.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': minor +--- + +Made the `to` prop of `Button` and `Link` more strict, only supporting plain strings. It used to be the case that this prop was unexpectedly too liberal, making it look like we supported the complex `react-router-dom` object form of the parameter as well, which led to unexpected results at runtime. diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index 4e3820967a..1cdba47257 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -613,8 +613,9 @@ export const Link: (props: LinkProps) => JSX.Element; // Warning: (ae-missing-release-tag) "LinkProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type LinkProps = LinkProps_2 & - LinkProps_3 & { +export type LinkProps = Omit & + Omit & { + to: string; component?: ElementType; noTrack?: boolean; }; diff --git a/packages/core-components/src/components/Link/Link.tsx b/packages/core-components/src/components/Link/Link.tsx index 22b203d157..92ac92daad 100644 --- a/packages/core-components/src/components/Link/Link.tsx +++ b/packages/core-components/src/components/Link/Link.tsx @@ -47,8 +47,9 @@ const useStyles = makeStyles( export const isExternalUri = (uri: string) => /^([a-z+.-]+):/.test(uri); -export type LinkProps = MaterialLinkProps & - RouterLinkProps & { +export type LinkProps = Omit & + Omit & { + to: string; component?: ElementType; noTrack?: boolean; }; From 68d492d2fcdcd4ad3f817a256a370589fd21cdb7 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Mon, 8 Aug 2022 09:35:21 -0500 Subject: [PATCH 230/377] Fixed failing test Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .../src/providers/GitHubEntityProvider.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts index 0bda258b6e..a40ab4eb5c 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.test.ts @@ -153,7 +153,7 @@ describe('GitHubEntityProvider', () => { expect(taskDef.id).toEqual('github-provider:myProvider:refresh'); await (taskDef.fn as () => Promise)(); - const url = `https://github.com/test-org/test-repo/blob/main/catalog-custom.yaml`; + const url = `https://github.com/test-org/test-repo/blob/main/custom/path/catalog-custom.yaml`; const expectedEntities = [ { entity: { @@ -164,7 +164,7 @@ describe('GitHubEntityProvider', () => { 'backstage.io/managed-by-location': `url:${url}`, 'backstage.io/managed-by-origin-location': `url:${url}`, }, - name: 'generated-21936a3d1e926b8bb3b00ac4398dc9a8dbb90b45', + name: 'generated-5e4b9498097f15434e88c477cfba6c079aa8ca7f', }, spec: { presence: 'optional', From e983631c5e2daad22b9eae56ca2eebacd2ebb022 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Mon, 8 Aug 2022 09:42:04 -0500 Subject: [PATCH 231/377] Updated documentation Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- docs/integrations/github/discovery.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/integrations/github/discovery.md b/docs/integrations/github/discovery.md index 3b49644613..339a1e2ca3 100644 --- a/docs/integrations/github/discovery.md +++ b/docs/integrations/github/discovery.md @@ -74,6 +74,12 @@ catalog: filters: # optional filters branch: 'develop' # optional string repository: '.*' # optional Regex + wildcardProviderId: + organization: 'new-org' # string + catalogPath: '/groups/**/*.yaml' # this will search all folders for files that end in .yaml + filters: # optional filters + branch: 'develop' # optional string + repository: '.*' # optional Regex ``` This provider supports multiple organizations via unique provider IDs. @@ -84,7 +90,7 @@ This provider supports multiple organizations via unique provider IDs. - **`catalogPath`** _(optional)_: Default: `/catalog-info.yaml`. Path where to look for `catalog-info.yaml` files. - When started with `/`, it is an absolute path from the repo root. + You can use wildcards - `*` or `**` - to search the path and/or the filename - **filters** _(optional)_: - **branch** _(optional)_: String used to filter results based on the branch name. From 059ae348b46174148a7a73c4e80d373ef50174b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 8 Aug 2022 16:48:10 +0200 Subject: [PATCH 232/377] Use the non-deprecated form of table.unique in knex MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/three-parents-love.md | 5 +++++ plugins/catalog-backend/migrations/20200511113813_init.js | 4 +++- .../catalog-backend/migrations/20200702153613_entities.js | 8 ++++++-- .../migrations/20201005122705_add_entity_full_name.js | 6 ++++-- .../migrations/20210302150147_refresh_state.js | 4 +++- 5 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 .changeset/three-parents-love.md diff --git a/.changeset/three-parents-love.md b/.changeset/three-parents-love.md new file mode 100644 index 0000000000..33f13cc218 --- /dev/null +++ b/.changeset/three-parents-love.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Use the non-deprecated form of table.unique in knex diff --git a/plugins/catalog-backend/migrations/20200511113813_init.js b/plugins/catalog-backend/migrations/20200511113813_init.js index b89ec57fe3..aa2ff6affa 100644 --- a/plugins/catalog-backend/migrations/20200511113813_init.js +++ b/plugins/catalog-backend/migrations/20200511113813_init.js @@ -92,7 +92,9 @@ exports.up = async function up(knex) { }) .alterTable('entities', table => { // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta - table.unique(['kind', 'name', 'namespace'], 'entities_unique_name'); + table.unique(['kind', 'name', 'namespace'], { + indexName: 'entities_unique_name', + }); }) // // entities_search diff --git a/plugins/catalog-backend/migrations/20200702153613_entities.js b/plugins/catalog-backend/migrations/20200702153613_entities.js index 6292063dac..86e0e48e40 100644 --- a/plugins/catalog-backend/migrations/20200702153613_entities.js +++ b/plugins/catalog-backend/migrations/20200702153613_entities.js @@ -89,7 +89,9 @@ exports.up = async function up(knex) { }) .alterTable('entities', table => { // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta - table.unique(['kind', 'name', 'namespace'], 'entities_unique_name'); + table.unique(['kind', 'name', 'namespace'], { + indexName: 'entities_unique_name', + }); }); await knex.schema.raw(`INSERT INTO entities SELECT * FROM tmp_entities`); @@ -199,7 +201,9 @@ exports.down = async function down(knex) { }) .alterTable('entities', table => { // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta - table.unique(['kind', 'name', 'namespace'], 'entities_unique_name'); + table.unique(['kind', 'name', 'namespace'], { + indexName: 'entities_unique_name', + }); }); await knex.schema.raw(`INSERT INTO entities SELECT * FROM tmp_entities`); diff --git a/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js b/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js index cd13f610cd..941b8a0a3f 100644 --- a/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js +++ b/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js @@ -39,7 +39,7 @@ exports.up = async function up(knex) { await knex.schema.alterTable('entities', table => { // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta - table.unique(['full_name'], 'entities_unique_full_name'); + table.unique(['full_name'], { indexName: 'entities_unique_full_name' }); table.dropUnique([], 'entities_unique_name'); }); }; @@ -51,7 +51,9 @@ exports.down = async function down(knex) { await knex.schema.alterTable('entities', table => { // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta table.dropUnique([], 'entities_unique_full_name'); - table.unique(['kind', 'namespace', 'name'], 'entities_unique_name'); + table.unique(['kind', 'namespace', 'name'], { + indexName: 'entities_unique_name', + }); }); await knex.schema.alterTable('entities_search', table => { diff --git a/plugins/catalog-backend/migrations/20210302150147_refresh_state.js b/plugins/catalog-backend/migrations/20210302150147_refresh_state.js index db66b46305..da276940fa 100644 --- a/plugins/catalog-backend/migrations/20210302150147_refresh_state.js +++ b/plugins/catalog-backend/migrations/20210302150147_refresh_state.js @@ -65,7 +65,9 @@ exports.up = async function up(knex) { .dateTime('last_discovery_at') // TODO: timezone or change to epoch-millis or similar .notNullable() .comment('The last timestamp of which this entity was discovered'); - table.unique(['entity_ref'], 'refresh_state_entity_ref_uniq'); + table.unique(['entity_ref'], { + indexName: 'refresh_state_entity_ref_uniq', + }); table.index('entity_id', 'refresh_state_entity_id_idx'); table.index('entity_ref', 'refresh_state_entity_ref_idx'); table.index('next_update_at', 'refresh_state_next_update_at_idx'); From fd68d6f1380d7b17827cb9d8385958a62dfe1886 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 8 Aug 2022 17:50:20 +0200 Subject: [PATCH 233/377] cli: add json and wasm extensions to webpack resolve config Signed-off-by: Patrik Oldsberg --- .changeset/popular-starfishes-bow.md | 5 +++++ packages/cli/src/lib/bundler/config.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/popular-starfishes-bow.md diff --git a/.changeset/popular-starfishes-bow.md b/.changeset/popular-starfishes-bow.md new file mode 100644 index 0000000000..1b976d1624 --- /dev/null +++ b/.changeset/popular-starfishes-bow.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults. diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index d723b963bd..057474ea9a 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -162,7 +162,7 @@ export async function createConfig( context: paths.targetPath, entry: [require.resolve('react-hot-loader/patch'), paths.targetEntry], resolve: { - extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx'], + extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.json', '.wasm'], mainFields: ['browser', 'module', 'main'], fallback: { ...pickBy(require('node-libs-browser')), @@ -272,7 +272,7 @@ export async function createBackendConfig( paths.targetRunFile ? paths.targetRunFile : paths.targetEntry, ], resolve: { - extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx'], + extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.json'], mainFields: ['main'], modules: [paths.rootNodeModules, ...moduleDirs], plugins: [ From fbbbd95c1e4405c422f5b99d9748618b980fd09c Mon Sep 17 00:00:00 2001 From: Leonardo Borges Avelino Date: Mon, 8 Aug 2022 14:22:25 -0300 Subject: [PATCH 234/377] docs: Added isaac as adopter Signed-off-by: Leonardo Borges Avelino --- ADOPTERS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ADOPTERS.md b/ADOPTERS.md index 828e1c0f76..278422693d 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -207,3 +207,4 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi | [iodigital](https://iodigital.com) | [Jan-Willem Mulder](mailto:jan-willem.mulder@iodigital.com) | Internal developer portal for discovery of applications, projects and teams. Using several plugins like the Software Catalog and Tech Insights for promoting best practices and supporting our SDLC toolchain | | [Fanatics](https://www.fanaticsinc.com/) | [Rory Scott](mailto:rscott@fanatics.com) | Internal Portal consolidating documentation, making it easier to manage applications, internal developer community platform, and self-service cloud infrastructure + pipelines. | | [Appfolio](https://appfolio.com) | [Andy Vaughn](mailto:andy.vaughn@appfolio.com) | Internal software catalog, tech radar, documentation portal to disambiguate software and domain ownership, foster exploration of available developer platform services and tools, improve communication, democratize documentation and knowledge sharing, and coordinate the software lifecycle; all in service of a best-in-class developer experience. | +| [isaac](https://isaac.com.br/) | [Leonardo Borges](mailto:leonardo.borges@isaac.com.br), [Ordilei Souza](mailto:ordilei.souza@isaac.com.br) | We're using Backstage as our Internal Developer Portal and main microservices catalog for mapping ownership, health and metrics for each one. From 10f58191495ff40a686c5c9df1d4c16e2b17a449 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 17:31:29 +0000 Subject: [PATCH 235/377] chore(deps): update dependency @graphql-codegen/cli to v2.11.5 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 83f8d650bb..677eb08909 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2816,9 +2816,9 @@ meros "^1.1.4" "@graphql-codegen/cli@^2.3.1": - version "2.11.4" - resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.4.tgz#c0e31c07712d8ecc9947562b7645d62903318830" - integrity sha512-qqkk0XOPlTV43qiQMf75K9/6WyRNstyCRkq7hAh2six77x+OvNHzvMAxdWaMR8VPbg+rdlP53M7N+k2zpQzewg== + version "2.11.5" + resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.5.tgz#6e781d9e77b8a9192456a8f50059e4281be12b73" + integrity sha512-0RntZ/F/d7M7KJU24nDwfKTuuhpwQ8nSs00RgKIqsk4xSX/U9HgOp29pWZfJjHCppb0EiXKBDvK4DtQIqe3n3w== dependencies: "@graphql-codegen/core" "2.6.1" "@graphql-codegen/plugin-helpers" "^2.6.2" From 4cee62e1667bd25a6187c76b43670414c574caaf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 17:32:31 +0000 Subject: [PATCH 236/377] chore(deps): update dependency esbuild to v0.14.54 Signed-off-by: Renovate Bot --- yarn.lock | 216 +++++++++++++++++++++++++++--------------------------- 1 file changed, 108 insertions(+), 108 deletions(-) diff --git a/yarn.lock b/yarn.lock index 83f8d650bb..82b4889c54 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2653,10 +2653,10 @@ ts-node "^9" tslib "^2" -"@esbuild/linux-loong64@0.14.53": - version "0.14.53" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz#251b4cd6760fadb4d68a05815e6dc5e432d69cd6" - integrity sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg== +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== "@eslint/eslintrc@^1.3.0": version "1.3.0" @@ -12655,75 +12655,75 @@ es6-error@^4.1.1: resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -esbuild-android-64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz#259bc3ef1399a3cad8f4f67c40ee20779c4de675" - integrity sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA== +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== -esbuild-android-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz#2158253d4e8f9fdd2a081bbb4f73b8806178841e" - integrity sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A== +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== -esbuild-darwin-64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz#b4681831fd8f8d06feb5048acbe90d742074cc2a" - integrity sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg== +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== -esbuild-darwin-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz#d267d957852d121b261b3f76ead86e5b5463acc9" - integrity sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA== +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== -esbuild-freebsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz#aca2af6d72b537fe66a38eb8f374fb66d4c98ca0" - integrity sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w== +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== -esbuild-freebsd-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz#76282e19312d914c34343c8a7da6cc5f051580b9" - integrity sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ== +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== -esbuild-linux-32@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz#1045d34cf7c5faaf2af3b29cc1573b06580c37e5" - integrity sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg== +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== -esbuild-linux-64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz#ab3f2ee2ebb5a6930c72d9539cb34b428808cbe4" - integrity sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ== +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== -esbuild-linux-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz#1f5530412f6690949e78297122350488d3266cfe" - integrity sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw== +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== -esbuild-linux-arm@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz#a44ec9b5b42007ab6c0d65a224ccc6bbd97c54cf" - integrity sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA== +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== -esbuild-linux-mips64le@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz#a4d0b6b17cfdeea4e41b0b085a5f73d99311be9f" - integrity sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ== +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== -esbuild-linux-ppc64le@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz#8c331822c85465434e086e3e6065863770c38139" - integrity sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA== +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== -esbuild-linux-riscv64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz#36fd75543401304bea8a2d63bf8ea18aaa508e00" - integrity sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ== +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== -esbuild-linux-s390x@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz#1622677ab6824123f48f75d3afc031cd41936129" - integrity sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg== +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== esbuild-loader@^2.18.0: version "2.19.0" @@ -12737,62 +12737,62 @@ esbuild-loader@^2.18.0: tapable "^2.2.0" webpack-sources "^2.2.0" -esbuild-netbsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz#e86d0efd0116658be335492ed12e66b26b4baf52" - integrity sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ== +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== -esbuild-openbsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz#9bcbbe6f86304872c6e91f64c8eb73fc29c3588b" - integrity sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ== +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== -esbuild-sunos-64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz#f7a872f7460bfb7b131f7188a95fbce3d1c577e8" - integrity sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g== +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== -esbuild-windows-32@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz#c5e3ca50e2d1439cc2c9fe4defa63bcd474ce709" - integrity sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg== +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== -esbuild-windows-64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz#ec2ab4a60c5215f092ffe1eab6d01319e88238af" - integrity sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ== +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== -esbuild-windows-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz#f71d403806bdf9f4a1f9d097db9aec949bd675c8" - integrity sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ== +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== esbuild@^0.14.1, esbuild@^0.14.10, esbuild@^0.14.39: - version "0.14.53" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.53.tgz#20b1007f686e8584f2a01a1bec5a37aac9498ce4" - integrity sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw== + version "0.14.54" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== optionalDependencies: - "@esbuild/linux-loong64" "0.14.53" - esbuild-android-64 "0.14.53" - esbuild-android-arm64 "0.14.53" - esbuild-darwin-64 "0.14.53" - esbuild-darwin-arm64 "0.14.53" - esbuild-freebsd-64 "0.14.53" - esbuild-freebsd-arm64 "0.14.53" - esbuild-linux-32 "0.14.53" - esbuild-linux-64 "0.14.53" - esbuild-linux-arm "0.14.53" - esbuild-linux-arm64 "0.14.53" - esbuild-linux-mips64le "0.14.53" - esbuild-linux-ppc64le "0.14.53" - esbuild-linux-riscv64 "0.14.53" - esbuild-linux-s390x "0.14.53" - esbuild-netbsd-64 "0.14.53" - esbuild-openbsd-64 "0.14.53" - esbuild-sunos-64 "0.14.53" - esbuild-windows-32 "0.14.53" - esbuild-windows-64 "0.14.53" - esbuild-windows-arm64 "0.14.53" + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" escalade@^3.1.1: version "3.1.1" From 8ba450a63a6028c7a3c6b4878a785a82222b55fa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 18:24:51 +0000 Subject: [PATCH 237/377] fix(deps): update dependency graphiql to v1.11.3 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9eedada2af..c6e4bc9ff6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2793,10 +2793,10 @@ teeny-request "^8.0.0" uuid "^8.0.0" -"@graphiql/react@^0.8.0": - version "0.8.0" - resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.8.0.tgz#53a78fd837c02d03a335bd26fe00549caedf68f6" - integrity sha512-dk0XIkpqQ5s+38ARQPdMhPYjML0j9XZwhCyfMV+Bw3/i2IN+Z+N6iqg5PhaaKpGGveL33BHjoH612kfo9swjZg== +"@graphiql/react@^0.9.0": + version "0.9.0" + resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.9.0.tgz#8450d3ea6dbf096deb16c9b297ff2ed526e793f4" + integrity sha512-JwhHVFS4ZP5lCchaf31NMJ/MVxl//DGrt/WO9XVjtQoL4kkAWMnNOQzZmTAnbEfPwdQUhkMz+xL50Yum3QrIZg== dependencies: "@graphiql/toolkit" "^0.6.1" codemirror "^5.65.3" @@ -14660,11 +14660,11 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12, graphiql@^1.8.8: - version "1.11.2" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.2.tgz#32a6a42dbfbc769f0eda8fb871b73bcf05f0d0e7" - integrity sha512-2/6rjCCXCDa9YMqlJbgSLx2PkQY8X9Nk3V+5eG69IhR6OhvV2nT54NrhqAVoRlSkxJr7SvyQhf4IbcI+yFSgHw== + version "1.11.3" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.3.tgz#ed14117c1a9b1d93e66a9e5c23b135ba2bd15a6f" + integrity sha512-cvXYU0adFsvCIxbHMTcpi69jR5LZOG6tP00jnoSbgrYvQvGvIDGgRB5Dam+NmubVTqbjiC/SqF8mzh8rZp7AhQ== dependencies: - "@graphiql/react" "^0.8.0" + "@graphiql/react" "^0.9.0" "@graphiql/toolkit" "^0.6.1" entities "^2.0.0" graphql-language-service "^5.0.6" From ed1f425d39af8756a6eb62ab3165dee23665441a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 18:25:55 +0000 Subject: [PATCH 238/377] chore(deps): update dependency lerna to v5.4.0 Signed-off-by: Renovate Bot --- yarn.lock | 1936 ++++++++++++++++++++++++++--------------------------- 1 file changed, 958 insertions(+), 978 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9eedada2af..0d781207cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2680,12 +2680,7 @@ dependencies: 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== - -"@gar/promisify@^1.1.3": +"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": 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== @@ -4090,629 +4085,630 @@ resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== -"@lerna/add@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/add/-/add-5.0.0.tgz#0545e2eef157c142d82ba765467c27b36fe53ce8" - integrity sha512-KdIOQL+88iHU9zuAU8Be1AL4cOVmm77nlckylsNaVVTiomNipr/h7lStiBO52BoMkwKzNwOH6He5HGY0Yo7s2w== +"@lerna/add@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/add/-/add-5.4.0.tgz#a6182f5c2a5e8615cf19042099152a8a13eaa3e3" + integrity sha512-o4JiZgEzFL7QXC2hhhraSjfhd9y/YB/07KFjVApEUDpsE2g7hRPtmKMulTjVi8vTkzVuhG87t2ZfJ3HOywqvSQ== dependencies: - "@lerna/bootstrap" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/npm-conf" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/bootstrap" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/filter-options" "5.4.0" + "@lerna/npm-conf" "5.4.0" + "@lerna/validation-error" "5.4.0" dedent "^0.7.0" - npm-package-arg "^8.1.0" + npm-package-arg "8.1.1" p-map "^4.0.0" - pacote "^13.4.1" + pacote "^13.6.1" semver "^7.3.4" -"@lerna/bootstrap@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.0.0.tgz#624b67a4631c7455b98cfed4dbb2e38b27025a7a" - integrity sha512-2m1BxKbYwDABy+uE/Da3EQM61R58bI3YQ0o1rsFQq1u0ltL9CJxw1o0lMg84hwMsBb4D+kLIXLqetYlLVgbr0Q== +"@lerna/bootstrap@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.4.0.tgz#612a3f7d5b3a6e68990946912119180f98d5c642" + integrity sha512-XEusPF14qH0QVRkYwti59N8IG1yS0QvkqhSGxftDT+dbvbL8E3E73cwUVyb7/vgUefwEkw/Ya1yMytsJv3Hj+Q== dependencies: - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/has-npm-version" "5.0.0" - "@lerna/npm-install" "5.0.0" - "@lerna/package-graph" "5.0.0" - "@lerna/pulse-till-done" "5.0.0" - "@lerna/rimraf-dir" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/symlink-binary" "5.0.0" - "@lerna/symlink-dependencies" "5.0.0" - "@lerna/validation-error" "5.0.0" - "@npmcli/arborist" "5.2.0" + "@lerna/command" "5.4.0" + "@lerna/filter-options" "5.4.0" + "@lerna/has-npm-version" "5.4.0" + "@lerna/npm-install" "5.4.0" + "@lerna/package-graph" "5.4.0" + "@lerna/pulse-till-done" "5.4.0" + "@lerna/rimraf-dir" "5.4.0" + "@lerna/run-lifecycle" "5.4.0" + "@lerna/run-topologically" "5.4.0" + "@lerna/symlink-binary" "5.4.0" + "@lerna/symlink-dependencies" "5.4.0" + "@lerna/validation-error" "5.4.0" + "@npmcli/arborist" "5.3.0" dedent "^0.7.0" get-port "^5.1.1" multimatch "^5.0.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + npm-package-arg "8.1.1" + npmlog "^6.0.2" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" semver "^7.3.4" -"@lerna/changed@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/changed/-/changed-5.0.0.tgz#fb3cdd5f281683a461c3099cbcf0978e23b33140" - integrity sha512-A24MHipPGODmzQBH1uIMPPUUOc1Zm7Qe/eSYzm52bFHtVxWH0nIVXfunadoMX32NhzKQH3Sw8X2rWHPQSRoUvA== +"@lerna/changed@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/changed/-/changed-5.4.0.tgz#145b27a91b474f6bfd561cc06ab688c1c36fd659" + integrity sha512-ZxII7biEQFdbZG3scjacOP2/qQOuu0ob3OiPW/+Ci24aEG/j1bFGhBJdoNdfdD0sJ92q8TTums2BRXDib9GvzA== dependencies: - "@lerna/collect-updates" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/listable" "5.0.0" - "@lerna/output" "5.0.0" + "@lerna/collect-updates" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/listable" "5.4.0" + "@lerna/output" "5.4.0" -"@lerna/check-working-tree@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.0.0.tgz#e7b653b78c3bb96db7a00f6a74018e2bb88ec088" - integrity sha512-PnUMdpT2qS4o+vs+7l5fFIizstGdqSkhLG+Z9ZiY5OMtnGd+pmAFQFlbLSZSmdvQSOSobl9fhB1St8qhPD60xQ== +"@lerna/check-working-tree@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.4.0.tgz#9d0c3cfc3d3e1034b488e987dcb47f06715dde18" + integrity sha512-O3bcNnuZfOK8KHRQcwaSjAp/DHT/GD96sge/a7ZfnqKiKhyO94ZztznrOvCrb5Cuz4NShupD05PpyQe+sBuTLA== dependencies: - "@lerna/collect-uncommitted" "5.0.0" - "@lerna/describe-ref" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/collect-uncommitted" "5.4.0" + "@lerna/describe-ref" "5.4.0" + "@lerna/validation-error" "5.4.0" -"@lerna/child-process@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.0.0.tgz#1c7663d2910431f6c25543fd53998ae95b2dac19" - integrity sha512-cFVNkedrlU8XTt15EvUtQ84hqtV4oToQW/elKNv//mhCz06HY8Y+Ia6XevK2zrIhZjS6DT576F/7SmTk3vnpmg== +"@lerna/child-process@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.4.0.tgz#25ec73f76f4142845f07bd5fc694b291b94b642a" + integrity sha512-SPjlfuB6LesAG3NCaDalEnpsbrpEDf0RMYGC1Wj6xGmmVEvWai8cenxCNM5xhpixSGjEF6dmLVI1OHFS9JovUQ== dependencies: chalk "^4.1.0" execa "^5.0.0" strong-log-transformer "^2.1.0" -"@lerna/clean@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/clean/-/clean-5.0.0.tgz#2b5cf202ab3eca18a075b292c55e6641d18b1b8f" - integrity sha512-7B+0Nx6MEPmCfnEa1JFyZwJsC7qlGrikWXyLglLb/wcbapYVsuDauOl9AT1iOFoXKw82P77HWYUKWeD9DQgw/w== +"@lerna/clean@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/clean/-/clean-5.4.0.tgz#2ebab8b2980652f302ebd948b0d4bccc64bfad0e" + integrity sha512-prhpUQ4kTkB/uti2DSuqfgRjUA3bz6aBrfdA5VS5QW6oTU8+F69uWjitXNt2ph/cVUJ+js8VZdbU0wkUFQasKg== dependencies: - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/prompt" "5.0.0" - "@lerna/pulse-till-done" "5.0.0" - "@lerna/rimraf-dir" "5.0.0" + "@lerna/command" "5.4.0" + "@lerna/filter-options" "5.4.0" + "@lerna/prompt" "5.4.0" + "@lerna/pulse-till-done" "5.4.0" + "@lerna/rimraf-dir" "5.4.0" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" -"@lerna/cli@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/cli/-/cli-5.0.0.tgz#f440f6664aa6c22bb58e69aacfde655c831de2f9" - integrity sha512-g8Nifko8XNySOl8u2molSHVl+fk/E1e5FSn/W2ekeijmc3ezktp+xbPWofNq71N/d297+KPQpLBfwzXSo9ufIQ== +"@lerna/cli@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/cli/-/cli-5.4.0.tgz#c18a2afcb1f03466a96d8116aa28d54e06ede343" + integrity sha512-usvZ3yAaMBzb249UYZuqMRoT6VboBSzWG7iEvXVxZDoFgShHrZ8NJAOMJaStRyVkizci+PTK74FRgpX+hKOEHg== dependencies: - "@lerna/global-options" "5.0.0" + "@lerna/global-options" "5.4.0" dedent "^0.7.0" - npmlog "^4.1.2" + npmlog "^6.0.2" yargs "^16.2.0" -"@lerna/collect-uncommitted@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.0.0.tgz#2843f98995c8bcc1d783d1d9739122c79378f3c5" - integrity sha512-mga/2S9rK0TP5UCulWiCTrC/uKaiIlOro1n8R3oCw6eRw9eupCSRx5zGI7pdh8CPD82MDL7w0a6OTep3WBSBVA== +"@lerna/collect-uncommitted@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.4.0.tgz#783324309560133bd1572ca555aff197921f324e" + integrity sha512-uKnL81tsfasSzYxqTCybn0GqehKUid47QzTJkKV1IXzfHpYLd4LBztvkbZFM2QN9Avl+hWYbTntSF5Iecg2fAg== dependencies: - "@lerna/child-process" "5.0.0" + "@lerna/child-process" "5.4.0" chalk "^4.1.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/collect-updates@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.0.0.tgz#cce16b9e8136e1e7bc33fe0fb12b283e538fa658" - integrity sha512-X82i8SVgBXLCk8vbKWfQPRLTAXROCANL8Z/bU1l6n7yycsHKdjrrlNi1+KprFdfRsMvSm10R4qPNcl9jgsp/IA== +"@lerna/collect-updates@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.4.0.tgz#03725f55099ad61c598e2e2929684e11a1dc3a7d" + integrity sha512-J1YPygeqCJo9IKLg6G2YY0OJPNDz6/n4VgJTrkMQH3B3WyodXdmdSv4xKY1pG9Cy7mXzCsdNuZzvN6qM1OgErg== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/describe-ref" "5.0.0" + "@lerna/child-process" "5.4.0" + "@lerna/describe-ref" "5.4.0" minimatch "^3.0.4" - npmlog "^4.1.2" + npmlog "^6.0.2" slash "^3.0.0" -"@lerna/command@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/command/-/command-5.0.0.tgz#cdc9f32a6b1c7153fe7150d642d2a420a3d0797d" - integrity sha512-j7/apU5d/nhSc1qIZgcV03KyO5jz3y7cwSum3IuK8/XF6rKwt3FVnbue1V3l9sJ6IRJjsRGKyViB1IdP5nSX4Q== +"@lerna/command@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/command/-/command-5.4.0.tgz#53ee056304b5678b5a70f3cf4976e73c16425082" + integrity sha512-MR9zRWZJnr6wXcOJnuYjXScxiDuFt4jH+yZuqDf3EBQGIhfhSRoujtjVGmfe0/4P4TM4VdTqqangt63lclsLzw== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/package-graph" "5.0.0" - "@lerna/project" "5.0.0" - "@lerna/validation-error" "5.0.0" - "@lerna/write-log-file" "5.0.0" + "@lerna/child-process" "5.4.0" + "@lerna/package-graph" "5.4.0" + "@lerna/project" "5.4.0" + "@lerna/validation-error" "5.4.0" + "@lerna/write-log-file" "5.4.0" clone-deep "^4.0.1" dedent "^0.7.0" execa "^5.0.0" is-ci "^2.0.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/conventional-commits@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.0.0.tgz#7f9c16fda074c9ed897cb695f5ae23678dd441eb" - integrity sha512-tUCRTAycDCtSlCEI0hublq4uKHeV0UHpwIb3Fdt6iv2AoTSPBSX/Dwu/6VqguysOSEkkR4M2JCOLvJCl4IMxwg== +"@lerna/conventional-commits@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.4.0.tgz#12e31222b951837c3b8543cbe4c44247ac7b60df" + integrity sha512-rrFFIiKWhkyghDC+aGdfEw1F78MWB+KerpBO1689nRrVpXTTqV9ZKHpn0YeTGhi+T1e/igtdJRlNjRCaXkl79Q== dependencies: - "@lerna/validation-error" "5.0.0" + "@lerna/validation-error" "5.4.0" conventional-changelog-angular "^5.0.12" - conventional-changelog-core "^4.2.2" + conventional-changelog-core "^4.2.4" conventional-recommended-bump "^6.1.0" fs-extra "^9.1.0" get-stream "^6.0.0" - lodash.template "^4.5.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + npm-package-arg "8.1.1" + npmlog "^6.0.2" pify "^5.0.0" semver "^7.3.4" -"@lerna/create-symlink@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.0.0.tgz#eccef7f89fdc4d7cd904694d9e2eb0b582073b5e" - integrity sha512-nHYNacrh15Y0yEofVlUVu9dhf4JjIn9hY7v7rOUXzUeQ91iXY5Q3PVHkBeRUigyT5CWP5qozZwraCMwp+lDWYg== +"@lerna/create-symlink@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.4.0.tgz#8b96d4fdada6cf3726353b9fe380720e6e99889f" + integrity sha512-DQuxmDVYL4S/VAXD8x/8zKapvGm4zN2sYB0D9yc2hTFeM5O4P7AXO0lYBE8XayZN7r2rBNPDYttv8Lv2IvN74A== dependencies: - cmd-shim "^4.1.0" + cmd-shim "^5.0.0" fs-extra "^9.1.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/create@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/create/-/create-5.0.0.tgz#4aac3d1f2c1f6d7fadde49d3663b318fcdd39b06" - integrity sha512-sdFTVTLOVuhHpzIYhFAwK0Ry3p4d7uMe9ZG/Ii128/pB9kEEfCth+1WBq6mBpYZ5mOLLgxJbWalbiJFl0toQRw== +"@lerna/create@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/create/-/create-5.4.0.tgz#14dd702727a07ed20d3f7e9b69c8bcdb31da3602" + integrity sha512-yHFP7DQD33xRLojlofqe+qu07BvRpwf+09dTKFHtarXqoPRDRJJ0e2/MRCi3StJmOLJCw7Gut3k0rdnFr3No6g== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/npm-conf" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/child-process" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/npm-conf" "5.4.0" + "@lerna/validation-error" "5.4.0" dedent "^0.7.0" fs-extra "^9.1.0" globby "^11.0.2" - init-package-json "^2.0.2" - npm-package-arg "^8.1.0" + init-package-json "^3.0.2" + npm-package-arg "8.1.1" p-reduce "^2.1.0" - pacote "^13.4.1" + pacote "^13.6.1" pify "^5.0.0" semver "^7.3.4" slash "^3.0.0" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^3.0.0" + validate-npm-package-name "^4.0.0" whatwg-url "^8.4.0" yargs-parser "20.2.4" -"@lerna/describe-ref@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.0.0.tgz#f0676843642e8880133783a9f059e6cb4c027fe1" - integrity sha512-iLvMHp3nl4wcMR3/lVkz0ng7pAHfLQ7yvz2HsYBq7wllCcEzpchzPgyVzyvbpJ+Ke/MKjQTsrHE/yOGOH67GVw== +"@lerna/describe-ref@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.4.0.tgz#15bffe6ef0841db82dab795a21a91ba15cb1dc2f" + integrity sha512-OSy3U8bEm8EmPtoeoej4X02cUihqTJlG/JXyiJdEEMdWDwT3DLDLrBxo4/HAfB3hT5bSD96EabGgmM6GrVhiWw== dependencies: - "@lerna/child-process" "5.0.0" - npmlog "^4.1.2" + "@lerna/child-process" "5.4.0" + npmlog "^6.0.2" -"@lerna/diff@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/diff/-/diff-5.0.0.tgz#844333f5478fc4993c4389fee1e0cd8eff9114fe" - integrity sha512-S4XJ6i9oP77cSmJ3oRUJGMgrI+jOTmkYWur2nqgSdyJBE1J2eClgTJknb3WAHg2cHALT18WzFqNghFOGM+9dRA== +"@lerna/diff@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/diff/-/diff-5.4.0.tgz#54747d1c4ae30505500c35bc38124a1150683127" + integrity sha512-IxJltmhpkLy9Te6EV1fHu5Yx83HLMrNT2v2TIu+k/EdM/fW6wt+Pal34bsROjGEj70LPI64LWj/FKvdaKXe36A== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/validation-error" "5.0.0" - npmlog "^4.1.2" + "@lerna/child-process" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/validation-error" "5.4.0" + npmlog "^6.0.2" -"@lerna/exec@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/exec/-/exec-5.0.0.tgz#a59dd094e456ea46cfa8f713da0ea3334a7ec9ac" - integrity sha512-g5i+2RclCGWLsl88m11j99YM2Gqnwa2lxZ5tDeqqWZFno6Dlvop17Yl6/MFH42EgM2DQHUUCammvcLIAJ2XwEA== +"@lerna/exec@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/exec/-/exec-5.4.0.tgz#cee3bb7acaaee5a42aecff0bf6378a60aac09425" + integrity sha512-hgAR5oDMVJUuqN8Fg04ibnzC4cj4YZzIGOfSjYSYjuC/zE53fOSRwEdVDKz3+Yxlnqrz4XyxbOnOlYTFgk6DaA== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/profiler" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/child-process" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/filter-options" "5.4.0" + "@lerna/profiler" "5.4.0" + "@lerna/run-topologically" "5.4.0" + "@lerna/validation-error" "5.4.0" p-map "^4.0.0" -"@lerna/filter-options@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.0.0.tgz#1d2606e1d2ed106689b43cc5d41a77b239afb837" - integrity sha512-un73aYkXlzKlnDPx2AlqNW+ArCZ20XaX+Y6C0F+av9VZriiBsCgZTnflhih9fiSMnXjN5r9CA8YdWvZqa3oAcQ== +"@lerna/filter-options@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.4.0.tgz#c1f53a705c8256d599b7cf72b75b1e0945673ff6" + integrity sha512-qK8863UrVcgKJYoZ0dKs82uXIeHhntMoCcqWXOUa1zHP4Fwuz0nGhVGWIO2q4GC8A4HoeduN6vjrLr2d6rsEdw== dependencies: - "@lerna/collect-updates" "5.0.0" - "@lerna/filter-packages" "5.0.0" + "@lerna/collect-updates" "5.4.0" + "@lerna/filter-packages" "5.4.0" dedent "^0.7.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/filter-packages@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.0.0.tgz#9aae543ab5e45a1b0c3f7ad33e0686ceb8d92c88" - integrity sha512-+EIjVVaMPDZ05F/gZa+kcXjBOLXqEamcEIDr+2ZXRgJmnrLx9BBY1B7sBEFHg7JXbeOKS+fKtMGVveV0SzgH3Q== +"@lerna/filter-packages@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.4.0.tgz#4eff648b6a31f685593577c36c8b00db1a1e9c56" + integrity sha512-KAERXVJM5QCw0wyZnSQnHerY6u4q8h37r5yft0HJOSqxIMmkambrtrXplOQCpAxOB+CASQG6sfVB7F7wvI0nkQ== dependencies: - "@lerna/validation-error" "5.0.0" + "@lerna/validation-error" "5.4.0" multimatch "^5.0.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/get-npm-exec-opts@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.0.0.tgz#25c1cd7d2b6c1fe903cd144d9f6e2d5cae47429b" - integrity sha512-ZOg3kc5FXYA1kVFD2hfJOl64hNASWD6panwD0HlyzXgfKKTDRm/P/qtAqS8WGCzQWgEdx4wvsDe/58Lzzh6QzQ== +"@lerna/get-npm-exec-opts@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.4.0.tgz#424946fba5cccf60ca28de4b1991c5405d4029df" + integrity sha512-plBDyetGHaYObxKnL2gsCNRTn7lTXTFsA8/wiJl6VEJNeEwvZ0efFopY1qcwXx+Skfwi4whqmAojWyoLzVoCIA== dependencies: - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/get-packed@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.0.0.tgz#4de7f66184232c805dfca07b9a8c577f6ef02351" - integrity sha512-fks7Tg7DvcCZxRWPS3JAWVuLnwjPC/hLlNsdYmK9nN3+RtPhmYQgBjLSONcENw1E46t4Aph72lA9nLcYBLksqw== +"@lerna/get-packed@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.4.0.tgz#8d4eabdc4c92f7bf29724146b3af1ff02146841b" + integrity sha512-bgPZGx2hbbjxaY0sRNcmDjWGR8HEoU/ORXrFiPU/YS7Xp4Yuf8GixT5QrYFT/VdZOqDeaBtFxndVPbmtK6qFRA== dependencies: fs-extra "^9.1.0" - ssri "^8.0.1" + ssri "^9.0.1" tar "^6.1.0" -"@lerna/github-client@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.0.0.tgz#65c984a393b1cbe35c2a707059c645bb9a03395e" - integrity sha512-NoEyRkQ8XgBnrjRfC9ph1npfg1/4OdYG+r8lG/1WkJbdt1Wlym4VNZU2BYPMWwSQYMJuppoEr0LL2uuVcS4ZUw== +"@lerna/github-client@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.4.0.tgz#4de39f81c287c6138f1a75d55ede88591e0be846" + integrity sha512-zI/rR5+DHljRwvq1l1LWlola2mJrVkv+0/rIg8wVWfcosIbYQMeuWoJ4zKTZmbOuQqwFpM3vipSHNj8oyik/xA== dependencies: - "@lerna/child-process" "5.0.0" + "@lerna/child-process" "5.4.0" "@octokit/plugin-enterprise-rest" "^6.0.1" - "@octokit/rest" "^18.1.0" - git-url-parse "^11.4.4" - npmlog "^4.1.2" + "@octokit/rest" "^19.0.3" + git-url-parse "^12.0.0" + npmlog "^6.0.2" -"@lerna/gitlab-client@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.0.0.tgz#c4e3d16566a3b07908ee604ce681a09c418481de" - integrity sha512-WREAT7qzta9hxNxktTX0x1/sEMpBP+4Gc00QSJYXt+ZzxY0t5RUx/ZK5pQl+IDhtkajrvXT6fSfZjMxxyE8hhQ== +"@lerna/gitlab-client@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.4.0.tgz#7bd9915e06cfe188828f78a75da4168b9c7c8516" + integrity sha512-OHEnRgzzOfzCtpl+leXlh3jIJZ/mho69vNUEDfSviixTmZMbw4626TYU41FFjZZqmijxl2rYEyJCxIaTdIKdvg== dependencies: node-fetch "^2.6.1" - npmlog "^4.1.2" + npmlog "^6.0.2" whatwg-url "^8.4.0" -"@lerna/global-options@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.0.0.tgz#02505c9e468188e3a254c262d58739092de93d8d" - integrity sha512-PZYy/3mTZwtA9lNmHHRCc/Ty1W20qGJ/BdDIo4bw/Bk0AOcoBCLT9b3Mjijkl4AbC9+eSGk3flUYapCGVuS32Q== +"@lerna/global-options@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.4.0.tgz#fd1acc17258b021c966ec7ce1e06311e2f235f60" + integrity sha512-6YjlNNCyk/xjkdBkDkrrk5zBvT1lfyyXP6lyi2b3zcmtP7zMVkSL6Z+NUh857uFJsFYMMQ2SkGczQBmHfSSg7Q== -"@lerna/has-npm-version@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.0.0.tgz#ed62c6ef857f068209663aae9f156f06a93dc1bd" - integrity sha512-zJPgcml86nhJFJTpT+kjkcafuCFvK7PSq3oDC2KJxwB1bhlYwy+SKtAEypHSsHQ2DwP0YgPITcy1pvtHkie1SA== +"@lerna/has-npm-version@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.4.0.tgz#5e6567386d5c6b6c60e8c4c1f606eaa954604cbb" + integrity sha512-L9TTF82NgOmau8kGBhc0UnMdlyVkbQxlz1IbJEzQzJcc5oYB8ppHe4Wbm25D1p846U7wzZeRMxSC3sWO8ap+FA== dependencies: - "@lerna/child-process" "5.0.0" + "@lerna/child-process" "5.4.0" semver "^7.3.4" -"@lerna/import@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/import/-/import-5.0.0.tgz#11cd83ef0fe854c512146fd4165f33519364b97a" - integrity sha512-cD+Is7eV/I+ZU0Wlg+yAgKaZbOvfzA7kBj2Qu1HtxeLhc7joTR8PFW1gNjEsvrWOTiaHAtObbo1A+MKYQ/T12g== +"@lerna/import@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/import/-/import-5.4.0.tgz#a99bc13ead71fe4f123ff7b268645732a57236ae" + integrity sha512-UOwfZWvda+lMTDMt/pZmKBtbLKWnBOjrd0C7s7IPDNIdEYohV+LQEaDTuFFpwwFwRhr8RO2fLicWvlt4YJOccQ== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/prompt" "5.0.0" - "@lerna/pulse-till-done" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/child-process" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/prompt" "5.4.0" + "@lerna/pulse-till-done" "5.4.0" + "@lerna/validation-error" "5.4.0" dedent "^0.7.0" fs-extra "^9.1.0" p-map-series "^2.1.0" -"@lerna/info@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/info/-/info-5.0.0.tgz#649566474d0d133c22bb821f88e7d062a2beace5" - integrity sha512-k9TMK81apTjxxpnjfFOABKXndTtHBPgB8UO+I6zKhsfRqVb9FCz2MHOx8cQiSyolvNyGSQdSylSo4p7EBBomQQ== +"@lerna/info@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/info/-/info-5.4.0.tgz#0076a05ec8fda31d8dc19b8843b8c2b29d9ce538" + integrity sha512-MoNredUnlDjm12by7h5it3XLeHqqIhSjYnmjfQuIhB9r37L/grxEcZ+YLKVqvz3BGGFX342jEfi8uE3eACQUgg== dependencies: - "@lerna/command" "5.0.0" - "@lerna/output" "5.0.0" + "@lerna/command" "5.4.0" + "@lerna/output" "5.4.0" envinfo "^7.7.4" -"@lerna/init@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/init/-/init-5.0.0.tgz#e35d95a4882aafb4600abf9b32fd1a0056e73ed9" - integrity sha512-2n68x7AIqVa+Vev9xF3NV9ba0C599KYf7JsIrQ5ESv4593ftInJpwgMwjroLT3X/Chi4BK7y2/xGmrfFVwgILg== +"@lerna/init@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/init/-/init-5.4.0.tgz#13af001a5a13a92c6b761c0aebc511307d61b70f" + integrity sha512-lCfokfqFKL6Iqg8KDIlCSoNtcbvheUZ+AKwd9wHRPHn1xvI3BQRukkai83VcCShpsVqAkx1r8KjCO9f3I74K9Q== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" + "@lerna/child-process" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/project" "5.4.0" fs-extra "^9.1.0" p-map "^4.0.0" write-json-file "^4.3.0" -"@lerna/link@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/link/-/link-5.0.0.tgz#dbd5aefa0bb22f2fd9d61ee82009fb34eb946298" - integrity sha512-00YxQ06TVhQJthOjcuxCCJRjkAM+qM/8Lv0ckdCzBBCSr4RdAGBp6QcAX/gjLNasgmNpyiza3ADet7mCH7uodw== +"@lerna/link@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/link/-/link-5.4.0.tgz#eb92414ac78e3d4571965c1f1be9725eb3886a3b" + integrity sha512-nUdpVIq0WHkQ2bWyjd+Fg/0iAEIZpwqZidpJuvcvS8FhvCVUryF2zRtd4wSSfQpzuoTWxDzGg6Ka2QwKxWOq6w== dependencies: - "@lerna/command" "5.0.0" - "@lerna/package-graph" "5.0.0" - "@lerna/symlink-dependencies" "5.0.0" + "@lerna/command" "5.4.0" + "@lerna/package-graph" "5.4.0" + "@lerna/symlink-dependencies" "5.4.0" p-map "^4.0.0" slash "^3.0.0" -"@lerna/list@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/list/-/list-5.0.0.tgz#0a979dc9c24ca176c7b4b58de80cab2dac2dcb8a" - integrity sha512-+B0yFil2AFdiYO8hyU1bFbKXGBAUUQQ43/fp2XS2jBFCipLme4eTILL5gMKOhr2Xg9AsfYPXRMRer5VW7qTeeQ== +"@lerna/list@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/list/-/list-5.4.0.tgz#86c34925d71fcc87df69c3b3394afb8c8fe8f409" + integrity sha512-w+gqkcl9mSIAnImiGVJJUiJ4sJx2Ovko2heLQpcNzUsc39ilcvb5S1YTnfhneJH735EckbF1eXzG1I5V+znaBw== dependencies: - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/listable" "5.0.0" - "@lerna/output" "5.0.0" + "@lerna/command" "5.4.0" + "@lerna/filter-options" "5.4.0" + "@lerna/listable" "5.4.0" + "@lerna/output" "5.4.0" -"@lerna/listable@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/listable/-/listable-5.0.0.tgz#c1753d9375932b15c4c84cc767fffb3447b8f213" - integrity sha512-Rd5sE7KTbqA8u048qThH5IyBuJIwMcUnEObjFyJyKpc1SEWSumo4yAYmcEeN/9z62tcdud5wHYPSbVgfXJq37g== +"@lerna/listable@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/listable/-/listable-5.4.0.tgz#352cb301e7b7a5e52d32dfa795fab2e2986cacb5" + integrity sha512-ABhInXVY+i9PhCiMxH/4JZnsn5SYriAiCOzyZG+6PX4TSDt7wiE6QWI5tfEyBJmPLEvhxjIeOph0cVvcnxf/gg== dependencies: - "@lerna/query-graph" "5.0.0" + "@lerna/query-graph" "5.4.0" chalk "^4.1.0" - columnify "^1.5.4" + columnify "^1.6.0" -"@lerna/log-packed@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.0.0.tgz#afa35bb6a5736038d7dde039e09828ac1c4945a2" - integrity sha512-0TxKX+XnlEYj0du9U2kg3HEyIb/0QsM0Slt8utuCxALUnXRHTEKohjqVKsBdvh1QmJpnUbL5I+vfoYqno4Y42w== +"@lerna/log-packed@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.4.0.tgz#bd3cd24c700590286b7248c218139322e607c3df" + integrity sha512-2l9wrDDdG+vL+k8iIsQ+8EgLn3YnLMfAnK1TyHRaEFJyHWWPK+wCYln793s6RdOG0rJmCOdVwGvGoO3Dpp4jiw== dependencies: byte-size "^7.0.0" - columnify "^1.5.4" + columnify "^1.6.0" has-unicode "^2.0.1" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/npm-conf@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.0.0.tgz#1364270d231d0df5ac079a9a9733ba0dd7f8c2f9" - integrity sha512-KSftxtMNVhLol1JNwFFNgh5jiCG010pewM+uKeSrUe0BCB3lnidiEDzu2CCn8JYYfIXqAiou/pScUiOxVLpcAA== +"@lerna/npm-conf@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.4.0.tgz#d75896d46586ab10094a3760df9dc348a3918367" + integrity sha512-xCzrg8s8X/SGoELdtstjjVV471r3mF6r1gdQzdQ9Y+Gql78pOp2flGtERyhZlN40fDTsfR+MKpk9mI/3/+Wffg== dependencies: config-chain "^1.1.12" pify "^5.0.0" -"@lerna/npm-dist-tag@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.0.0.tgz#becd7fb0bd963357818c8d4fae955cc9f8885cba" - integrity sha512-ccUFhp9Wu/FHW5/5fL+vLiSTcUZXtKQ7c0RMXtNRzIdTXBxPBkVi1k5QAnBAAffsz6Owc/K++cb+/zQ/asrG3g== +"@lerna/npm-dist-tag@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.4.0.tgz#110dee7e06c6d9a1a477fd00b75777f9cc0bde7f" + integrity sha512-0MXkt6WhEI9pJOtFaQmKlkaBm9IZHx9KK6BtKlC1giwE/czur2ke19PUMmH+b078EtyhnwrsEq8VB4pMidmXpw== dependencies: - "@lerna/otplease" "5.0.0" - npm-package-arg "^8.1.0" - npm-registry-fetch "^9.0.0" - npmlog "^4.1.2" + "@lerna/otplease" "5.4.0" + npm-package-arg "8.1.1" + npm-registry-fetch "^13.3.0" + npmlog "^6.0.2" -"@lerna/npm-install@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.0.0.tgz#0ee1750bb26eae3c2b4d742d5c1f055e46d534df" - integrity sha512-72Jf05JCIdeSBWXAiNjd/y2AQH4Ojgas55ojV2sAcEYz2wgyR7wSpiI6fHBRlRP+3XPjV9MXKxI3ZwOnznQxqQ== +"@lerna/npm-install@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.4.0.tgz#1bf4b2c5f9eff7389d58fe21844d6c738efe82a8" + integrity sha512-scYWjKyb67Ov6VMyDFUUPzyGJWuD8vBgOAshzJMG1lGzfcUTOyAA4VJohOpJHVgNaRL3YjJa2AekqTzX42zygQ== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/get-npm-exec-opts" "5.0.0" + "@lerna/child-process" "5.4.0" + "@lerna/get-npm-exec-opts" "5.4.0" fs-extra "^9.1.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + npm-package-arg "8.1.1" + npmlog "^6.0.2" signal-exit "^3.0.3" write-pkg "^4.0.0" -"@lerna/npm-publish@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.0.0.tgz#a1a06e47e45e56999c85086a40f9b77f801b5a00" - integrity sha512-jnapZ2jRajSzshSfd1Y3rHH5R7QC+JJlYST04FBebIH3VePwDT7uAglDCI4um2THvxkW4420EzE4BUMUwKlnXA== +"@lerna/npm-publish@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.4.0.tgz#ccf81d1fc4007a6766dcde1cfaddb6a0a157c4ac" + integrity sha512-PQ49FWnHOXEWLwREzD3XYZAUUxssGqHLh/lC9etGC7xGjHreAcUM89GuuG8JiSdCEuNNnUXO6oCYjJKWpfWa5A== dependencies: - "@lerna/otplease" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" + "@lerna/otplease" "5.4.0" + "@lerna/run-lifecycle" "5.4.0" fs-extra "^9.1.0" - libnpmpublish "^4.0.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + libnpmpublish "^6.0.4" + npm-package-arg "8.1.1" + npmlog "^6.0.2" pify "^5.0.0" - read-package-json "^3.0.0" + read-package-json "^5.0.1" -"@lerna/npm-run-script@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.0.0.tgz#114374b89f228c9719bbfacf9f08d6aac2739fb2" - integrity sha512-qgGf0Wc/E2YxPwIiF8kC/OB9ffPf0/HVtPVkqrblVuNE9XVP80WilOH966PIDiXzwXaCo/cTswFoBeseccYRGw== +"@lerna/npm-run-script@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.4.0.tgz#efccba87b1abbca0ab831de3deaa604f3a75d48f" + integrity sha512-VkEmTioVTyzGKpKJ9fD5NYww5eoUAqWwvFeI5lCGN0eRd7AyQrdRu8cnHpg+bRW1qzE7GReDWdB6WKQ9gBxc4w== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/get-npm-exec-opts" "5.0.0" - npmlog "^4.1.2" + "@lerna/child-process" "5.4.0" + "@lerna/get-npm-exec-opts" "5.4.0" + npmlog "^6.0.2" -"@lerna/otplease@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.0.0.tgz#5b0419f64908d7ad840c2735e0284d67cd37095b" - integrity sha512-QLLkEy1DPN1XFRAAZDHxAD26MHFQDHfzB6KKSzRYxbHc6lH/YbDaMH1RloSWIm7Hwkxl/3NgpokgN4Lj5XFuzg== +"@lerna/otplease@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.4.0.tgz#791942b669f2d6b861fa505dc870fa2f5006b574" + integrity sha512-0chUZ+3CLirEzhXogKFFJ8AftZbrAEr2Fm2EErP77T5ml7eCwuvHgXkQvvHxYJnkO6bJ72cNPmsZeOx+2fhbow== dependencies: - "@lerna/prompt" "5.0.0" + "@lerna/prompt" "5.4.0" -"@lerna/output@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/output/-/output-5.0.0.tgz#f3712f0cad3e9ef73c803fe368f6a9ac20403868" - integrity sha512-/7sUJQWPcvnLudjVIdN7t9MlfBLuP4JCDAWgQMqZe+wpQRuKNyKQ5dLBH5NHU/ElJCjAwMPfWuk3mh3GuvuiGA== +"@lerna/output@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/output/-/output-5.4.0.tgz#9aec36e2424d58671c30034b1d932b335f3f8a5e" + integrity sha512-tnVjGDCyugbEvS1XNihwcLdOxGTGbHInnhKg9OtPgDX4dwv40Zliyrk1VyjJGwYiSoblznut9wQb5zXNOOmBQg== dependencies: - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/pack-directory@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.0.0.tgz#f277418545786ca68ca15647bab52ad29bd57f59" - integrity sha512-E1SNDS7xSWhJrTSmRzJK7DibneljrymviKcsZW3mRl4TmF4CpYJmNXCMlhEtKEy6ghnGQvnl3/4+eslHDJ5J/w== +"@lerna/pack-directory@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.4.0.tgz#6b07f1bc3e6d695870eacd1908cc7d7ab31ef546" + integrity sha512-Yx9RwPYlfjSynhFBdGqI0KV1orlj8h2W2y+uSWUkdKbBFeHDwO/eJ879i3ZWsY/aU+GhWZWiC+f4jG1wAEs+RQ== dependencies: - "@lerna/get-packed" "5.0.0" - "@lerna/package" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" - "@lerna/temp-write" "5.0.0" - npm-packlist "^2.1.4" - npmlog "^4.1.2" + "@lerna/get-packed" "5.4.0" + "@lerna/package" "5.4.0" + "@lerna/run-lifecycle" "5.4.0" + "@lerna/temp-write" "5.4.0" + npm-packlist "^5.1.1" + npmlog "^6.0.2" tar "^6.1.0" -"@lerna/package-graph@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.0.0.tgz#53e88ef46359ef7a2f6e3b7c5bab82302a10653f" - integrity sha512-Z3QeUQVjux0Blo64rA3/NivoLDlsQBjsZRIgGLbcQh7l7pJrqLK1WyNCBbPJ0KQNljQqUXthCKzdefnEWe37Ew== +"@lerna/package-graph@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.4.0.tgz#dc0fab8456fd9990d9efa606a7ce510806a4e94c" + integrity sha512-oBmwR5BVfjLpXVFQ7z37DbhQpQPWCm+KlrcRv+R1IQl3kaJEwIOx/ww9FPGOx3r1Uu9cEIrjCcWr6bjGLEcejw== dependencies: - "@lerna/prerelease-id-from-version" "5.0.0" - "@lerna/validation-error" "5.0.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + "@lerna/prerelease-id-from-version" "5.4.0" + "@lerna/validation-error" "5.4.0" + npm-package-arg "8.1.1" + npmlog "^6.0.2" semver "^7.3.4" -"@lerna/package@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/package/-/package-5.0.0.tgz#4beeb3a1e8eed6e7ae9cebca283c7684278cdd28" - integrity sha512-/JiUU88bhbYEUTzPqoGLGwrrdWWTIVMlBb1OPxCGNGDEqYYNySX+OTTSs3zGMcmJnRNI0UyQALiEd0sh3JFN5w== +"@lerna/package@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/package/-/package-5.4.0.tgz#98cc92ba74651045ac6ffa8df671eb266ef3241e" + integrity sha512-lfj4AmN7STzWR+ML5FKhVjnG/tBYBmUWFP2D0WP7jaBCtvA4YfhTRX8bnIPTB6QoYrJl72cPx7eTxGD/VO0ZKA== dependencies: load-json-file "^6.2.0" - npm-package-arg "^8.1.0" + npm-package-arg "8.1.1" write-pkg "^4.0.0" -"@lerna/prerelease-id-from-version@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.0.0.tgz#3edb90ba9ceace97708d03ff9f650d177f973184" - integrity sha512-bUZwyx6evRn2RxogOQXaiYxRK1U/1Mh/KLO4n49wUhqb8S8Vb9aG3+7lLOgg4ZugHpj9KAlD3YGEKvwYQiWzhg== +"@lerna/prerelease-id-from-version@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.4.0.tgz#0f7b548254c09a1e79716cac13c6b8ad9457240d" + integrity sha512-sbVnPq4dlY2VC3xKer5eBo9kevsQoddqQvLV4x+skeFkk50+faB9SH7J9n0zHm9PbxfrJX1TtL1EuxzHcFMKTg== dependencies: semver "^7.3.4" -"@lerna/profiler@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.0.0.tgz#e1b74d17dbd6172b5ce9c80426b336bf6ab2e8e9" - integrity sha512-hFX+ZtoH7BdDoGI+bqOYaSptJTFI58wNK9qq/pHwL5ksV7vOhxP2cQAuo1SjgBKHGl0Ex/9ZT080YVV4jP1ehw== +"@lerna/profiler@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.4.0.tgz#c300661a4692be6f3359530054f8ce32a0a0503c" + integrity sha512-0wo43ejOjQHeJ2cEU2Pp4//2lxjsi4ioQamkelu8YISRCC0ojGFB4ra22osj4/jRfstJ0DiaV8edrOht1TXJIA== dependencies: fs-extra "^9.1.0" - npmlog "^4.1.2" + npmlog "^6.0.2" upath "^2.0.1" -"@lerna/project@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/project/-/project-5.0.0.tgz#31672891236696b2a70226388de0300c6086d75f" - integrity sha512-+izHk7D/Di2b0s69AzKzAa/qBz32H9s67oN9aKntrjNylpY7iN5opU157l60Kh4TprYHU5bLisqzFLZsHHADGw== +"@lerna/project@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/project/-/project-5.4.0.tgz#bd1bbd5bfce6b05decda1e97e06f27bd098b64f9" + integrity sha512-lr8+EybiRNmS6ecDtFmXzEUNcOepbvku9oxBc47CtvXtCcLdDLG4bI9TXrN4lUO2vJajXTSlhN7sD1LVUkcYdg== dependencies: - "@lerna/package" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/package" "5.4.0" + "@lerna/validation-error" "5.4.0" cosmiconfig "^7.0.0" dedent "^0.7.0" dot-prop "^6.0.1" glob-parent "^5.1.1" globby "^11.0.2" load-json-file "^6.2.0" - npmlog "^4.1.2" + npmlog "^6.0.2" p-map "^4.0.0" resolve-from "^5.0.0" write-json-file "^4.3.0" -"@lerna/prompt@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.0.0.tgz#31d3d82ecd17e863f8b7cc7944accff4f3de3395" - integrity sha512-cq2k04kOPY1yuJNHJn4qfBDDrCi9PF4Q228JICa6bxaONRf/C/TRsEQXHVIdlax8B3l53LnlGv5GECwRuvkQbA== +"@lerna/prompt@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.4.0.tgz#719fdbcd37ad6adaa974cdaf7f3bad491ae673e0" + integrity sha512-Kuw/YpQLwrbKx9fp/wWXi8jiZ8mqmpE7UUVWcFNed0oSHrlUpIhRXPSSTEHsX983Iepj65YL1O6Zffr3t/vP/Q== dependencies: - inquirer "^7.3.3" - npmlog "^4.1.2" + inquirer "^8.2.4" + npmlog "^6.0.2" -"@lerna/publish@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/publish/-/publish-5.0.0.tgz#27c4c469e6abd5b52e977568d328632929e859b1" - integrity sha512-QEWFtN8fW1M+YXEQOWb2XBBCT137CrwHYK29ojMXW9HShvSZezf8Q/niH91nZ4kIhWdpOGz4w3rKopsumAM5SA== +"@lerna/publish@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/publish/-/publish-5.4.0.tgz#bb8d6f68a72fb889050e8043567f67d1fc933723" + integrity sha512-C+p3K6cKLML4L/7xkmPAafmBdPlltjZtsKuUKSKKnt/FrX4giv81Kp0FQ0mAps0JN1A++ni0AOJAxlBowZs1Pg== dependencies: - "@lerna/check-working-tree" "5.0.0" - "@lerna/child-process" "5.0.0" - "@lerna/collect-updates" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/describe-ref" "5.0.0" - "@lerna/log-packed" "5.0.0" - "@lerna/npm-conf" "5.0.0" - "@lerna/npm-dist-tag" "5.0.0" - "@lerna/npm-publish" "5.0.0" - "@lerna/otplease" "5.0.0" - "@lerna/output" "5.0.0" - "@lerna/pack-directory" "5.0.0" - "@lerna/prerelease-id-from-version" "5.0.0" - "@lerna/prompt" "5.0.0" - "@lerna/pulse-till-done" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/validation-error" "5.0.0" - "@lerna/version" "5.0.0" + "@lerna/check-working-tree" "5.4.0" + "@lerna/child-process" "5.4.0" + "@lerna/collect-updates" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/describe-ref" "5.4.0" + "@lerna/log-packed" "5.4.0" + "@lerna/npm-conf" "5.4.0" + "@lerna/npm-dist-tag" "5.4.0" + "@lerna/npm-publish" "5.4.0" + "@lerna/otplease" "5.4.0" + "@lerna/output" "5.4.0" + "@lerna/pack-directory" "5.4.0" + "@lerna/prerelease-id-from-version" "5.4.0" + "@lerna/prompt" "5.4.0" + "@lerna/pulse-till-done" "5.4.0" + "@lerna/run-lifecycle" "5.4.0" + "@lerna/run-topologically" "5.4.0" + "@lerna/validation-error" "5.4.0" + "@lerna/version" "5.4.0" fs-extra "^9.1.0" - libnpmaccess "^4.0.1" - npm-package-arg "^8.1.0" - npm-registry-fetch "^9.0.0" - npmlog "^4.1.2" + libnpmaccess "^6.0.3" + npm-package-arg "8.1.1" + npm-registry-fetch "^13.3.0" + npmlog "^6.0.2" p-map "^4.0.0" p-pipe "^3.1.0" - pacote "^13.4.1" + pacote "^13.6.1" semver "^7.3.4" -"@lerna/pulse-till-done@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.0.0.tgz#df3c32c2d7457362956d997da366f5c060953eef" - integrity sha512-qFeVybGIZbQSWKasWIzZmHsvCQMC/AwTz5B44a0zTt5eSNQuI65HRpKKUgmFFu/Jzd7u+yp7eP+NQ53gjOcQlQ== +"@lerna/pulse-till-done@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.4.0.tgz#5221927fa1acc25714fcb5c2cd70872770f3ed63" + integrity sha512-d3f8da0J+fZg/EXFVih1cdTfYCn74l1aJ6vEH18CdDlylOLONRgGWliMLnrQMssSVHu6AF1BSte27yfJ6sfOfw== dependencies: - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/query-graph@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.0.0.tgz#76c45f648915ef5c884c32c3d35daa3ebb53440b" - integrity sha512-C/HXssBI8DVsZ/7IDW6JG9xhoHtWywi3L5oZB9q84MBYpQ9otUv6zbB+K4JCj7w9WHcuFWe2T/mc9wsaFuvB5g== +"@lerna/query-graph@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.4.0.tgz#20f7dea4997aac4b685c1336ca731d07da9ccd04" + integrity sha512-CC6wi63C9r/S7mJ1ENsBGz1O76Rog1LRTBqiLUlVsJxVf+X+WboIVcouoESNDeudxJ0Fl0sFdvRVZ5Q2Bt7xKw== dependencies: - "@lerna/package-graph" "5.0.0" + "@lerna/package-graph" "5.4.0" -"@lerna/resolve-symlink@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.0.0.tgz#edff89908e90a390791ab762305d34aa95e7bdbe" - integrity sha512-O1EMQh3O3nKjLyI2guCCaxmi9xzZXpiMZhrz2ki5ENEDB2N1+f7cZ2THT0lEOIkLRuADI6hrzoN1obJ+TTk+KQ== +"@lerna/resolve-symlink@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.4.0.tgz#ce88674ea1d049cc750755939a5e1303b1beded5" + integrity sha512-shPld+YY4lf7teHkxTBBUjTZ7RNvqALZ8Nc5y1xvuHmrornGqwDeFZGbu2OZgc409HNWUheZHLluSrUIP/mn0Q== dependencies: fs-extra "^9.1.0" - npmlog "^4.1.2" - read-cmd-shim "^2.0.0" + npmlog "^6.0.2" + read-cmd-shim "^3.0.0" -"@lerna/rimraf-dir@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.0.0.tgz#9e7689610415e6d68c9e766a462c8acfdbf04b9a" - integrity sha512-hWJg/13CiSUrWWEek3B/A1mkvBbcPvG5z69/Ugyerdpzlw44ubf02MAZ0/kXPJjkICI2hMrS07YotQ60LdYpCw== +"@lerna/rimraf-dir@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.4.0.tgz#6e81edb5722dd9003d2ef3c9639bc9287234f2d4" + integrity sha512-QGFlQUcdQaUAs3mXMOvbb4WU0tuinTDVoH+1ztIJf5vj/NAHWTH/H0KxPGIJJUODtyuaNCufU7LDXkQMOORGyQ== dependencies: - "@lerna/child-process" "5.0.0" - npmlog "^4.1.2" + "@lerna/child-process" "5.4.0" + npmlog "^6.0.2" path-exists "^4.0.0" rimraf "^3.0.2" -"@lerna/run-lifecycle@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.0.0.tgz#0f62c2faebc19e4ee247bdfa1e05b2a9f51b0637" - integrity sha512-36mAm9rC5DSliFShI0Y4ICjgrJXdIIVt7VW9rdbdJ8/XYjRHDzhGPB9Sc1neJOVlGL4DmaArvh5tGgo62KPJYQ== +"@lerna/run-lifecycle@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.4.0.tgz#c42bf12c44c4b4df96b20db19b3934e2db6d5abd" + integrity sha512-d+XO8X5Kiuv+w65wrU8thrObJwgODqA12xLW7kCLnh20njTWimOfjq/xsbSbSwRr5es8uHtK7Vqns+nBVSTeEw== dependencies: - "@lerna/npm-conf" "5.0.0" - "@npmcli/run-script" "^3.0.2" - npmlog "^4.1.2" - -"@lerna/run-topologically@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.0.0.tgz#0b0156e3ebe2bf768b9ba1339e02e947e70d1dd1" - integrity sha512-B2s1N/+r3sfPOLRA2svNk+C52JpXQleMuGap0yhOx5mZzR1M2Lo4vpe9Ody4hCvXQjfdLx/U342fxVmgugUtfQ== - dependencies: - "@lerna/query-graph" "5.0.0" + "@lerna/npm-conf" "5.4.0" + "@npmcli/run-script" "^4.1.7" + npmlog "^6.0.2" p-queue "^6.6.2" -"@lerna/run@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/run/-/run-5.0.0.tgz#3af69d1a787866cf85072a0ae9571b9c3bf262e7" - integrity sha512-8nBZstqKSO+7wHlKk1g+iexSYRVVNJq/u5ZbAzBiHNrABtqA6/0G7q9vsAEMsnPZ8ARAUYpwvbfKTipjpWH0VA== +"@lerna/run-topologically@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.4.0.tgz#f0a3254553022fd8812a16cd25a260e97f211af7" + integrity sha512-wwelSpQT/ZDornu0+idYKfY1q7ggIOMiXrGq9nDshbtgPwme/CMEr5SPur80oR5Z6Pc2Fm7cHtxI2je7YOuqKA== dependencies: - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/npm-run-script" "5.0.0" - "@lerna/output" "5.0.0" - "@lerna/profiler" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/timer" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/query-graph" "5.4.0" + p-queue "^6.6.2" + +"@lerna/run@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/run/-/run-5.4.0.tgz#6373fdbe950d24f56305dd89946f9966ab80113b" + integrity sha512-UgdsV3dvdmSLoQIrh9Wxb5kiTbwrQP7dN5MOADfH+DhO+/pktBsp8KtLr1g+y+nNyHc2LRkAL+E/KozLATbKSA== + dependencies: + "@lerna/command" "5.4.0" + "@lerna/filter-options" "5.4.0" + "@lerna/npm-run-script" "5.4.0" + "@lerna/output" "5.4.0" + "@lerna/profiler" "5.4.0" + "@lerna/run-topologically" "5.4.0" + "@lerna/timer" "5.4.0" + "@lerna/validation-error" "5.4.0" p-map "^4.0.0" -"@lerna/symlink-binary@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.0.0.tgz#f9da5673ed3a44570fa4d2e691759f82bd7ad057" - integrity sha512-uYyiiNjkdL1tWf8MDXIIyCa/a2gmYaUxagqMgEZ4wRtOk+PDypDwMUFVop/EQtUWZqG5CAJBJYOztG3DdapTbA== +"@lerna/symlink-binary@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.4.0.tgz#33dfe2ba92ed3295c3a08710c9964dedde493d2a" + integrity sha512-DqwgjBywI8HgBaQYJjHzLkJ6IWspcL8rb8zgo4O/HSC7NJDTq3ir9S1HkzixxszL/G4Zp6mfqj0AGfzLYhjKLA== dependencies: - "@lerna/create-symlink" "5.0.0" - "@lerna/package" "5.0.0" + "@lerna/create-symlink" "5.4.0" + "@lerna/package" "5.4.0" fs-extra "^9.1.0" p-map "^4.0.0" -"@lerna/symlink-dependencies@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.0.0.tgz#878b0f52737f82bb7014e13afda8efc606fc071c" - integrity sha512-wlZGOOB87XMy278hpF4fOwGNnjTXf1vJ/cFHIdKsJAiDipyhtnuCiJLBDPh4NzEGb02o4rhaqt8Nl5yWRu9CNA== +"@lerna/symlink-dependencies@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.4.0.tgz#49d616b23750583fb6ffb0b30c07e23397948ba9" + integrity sha512-iKM4dykV0NHCsXEchgEsxtWur1OQ2glLXmJb02QHPsFdqLaAgl0F77+dVPfN16I743lgf52sz2rqIcVo7VeJrg== dependencies: - "@lerna/create-symlink" "5.0.0" - "@lerna/resolve-symlink" "5.0.0" - "@lerna/symlink-binary" "5.0.0" + "@lerna/create-symlink" "5.4.0" + "@lerna/resolve-symlink" "5.4.0" + "@lerna/symlink-binary" "5.4.0" fs-extra "^9.1.0" p-map "^4.0.0" p-map-series "^2.1.0" -"@lerna/temp-write@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.0.0.tgz#44f8c7c82f498e15db33c166d063be117b819162" - integrity sha512-JOkRR6xyASuBy1udyS/VD52Wgywnz7cSKppD+QKIDseNzTq27I9mNmb702BSXNXIdD19lLVQ7q6WoAlpnelnZg== +"@lerna/temp-write@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.4.0.tgz#6aa4db0019e45a74f8d4e8ca06644e2a86d93202" + integrity sha512-dojKAYCWhOmUw4fnJpruGfgBA9RMBW5mVkKJ5HcB2uruJza92ffV9SRADe5bnrIZDu4/mh/6lPU0+rVHvJhWsA== dependencies: graceful-fs "^4.1.15" is-stream "^2.0.0" @@ -4720,42 +4716,42 @@ temp-dir "^1.0.0" uuid "^8.3.2" -"@lerna/timer@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/timer/-/timer-5.0.0.tgz#ab8fba29f90de21b0eb02406916269122deb2e41" - integrity sha512-p2vevkpB6V/b0aR8VyMLDfg0Arp9VvMxcZOEu+IfZ9XKTtnbwjWPHKUOS34x/VGa6bnOIWjE046ixWymOs/fTw== +"@lerna/timer@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/timer/-/timer-5.4.0.tgz#0915ec1f22c6b16157fef91c2364b464d41773bb" + integrity sha512-Ow070AbPVIYO5H1m0B85VGrQtYPa47s4cbA9gj9iU6VBVnw/F7tDN0e/QfGhYgb4atwc046WoZmUQYyD7w9l/g== -"@lerna/validation-error@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.0.0.tgz#3d3557023e3eb2fd3d8fc9c89f7352a1b6e5bd3e" - integrity sha512-fu/MhqRXiRQM2cirP/HoSkfwc5XtJ21G60WHv74RnanKBqWEZAUALWa3MQN2sYhVV/FpDW3GLkO008IW5NWzdg== +"@lerna/validation-error@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.4.0.tgz#ede63fccdb7ef8666fefb47151a475fd976afb34" + integrity sha512-H/CiOgMlZO0QlGbVGk1iVKDbtWKV0gUse9XwP7N15qroCJU2d6u0XUJS5eCTNQ/JrLdFCtEdzg3uPOHbpIOykw== dependencies: - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/version@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/version/-/version-5.0.0.tgz#36a808e8b4458febd58a6b76852f2ce30e740ca1" - integrity sha512-M8KvdyG5kR/d3wgg5S46Q2YMf0L9iw9MiumTvlDP4ckysTt+04kS74Vp4+aClgPM4xaoI5OuMrs6wy5ICcd3Pw== +"@lerna/version@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/version/-/version-5.4.0.tgz#61ef5032e5c73ee271f2c97d925503c92d37db73" + integrity sha512-SZZuSYkmMb/QKDCMM2IBxX2O5RN7O18ZWi75SCRQ+MZHXt6Yl4VC/l16TBtM8Nlf3ZmBP20sIWbm5UqD9f3FjQ== dependencies: - "@lerna/check-working-tree" "5.0.0" - "@lerna/child-process" "5.0.0" - "@lerna/collect-updates" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/conventional-commits" "5.0.0" - "@lerna/github-client" "5.0.0" - "@lerna/gitlab-client" "5.0.0" - "@lerna/output" "5.0.0" - "@lerna/prerelease-id-from-version" "5.0.0" - "@lerna/prompt" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/temp-write" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/check-working-tree" "5.4.0" + "@lerna/child-process" "5.4.0" + "@lerna/collect-updates" "5.4.0" + "@lerna/command" "5.4.0" + "@lerna/conventional-commits" "5.4.0" + "@lerna/github-client" "5.4.0" + "@lerna/gitlab-client" "5.4.0" + "@lerna/output" "5.4.0" + "@lerna/prerelease-id-from-version" "5.4.0" + "@lerna/prompt" "5.4.0" + "@lerna/run-lifecycle" "5.4.0" + "@lerna/run-topologically" "5.4.0" + "@lerna/temp-write" "5.4.0" + "@lerna/validation-error" "5.4.0" chalk "^4.1.0" dedent "^0.7.0" load-json-file "^6.2.0" minimatch "^3.0.4" - npmlog "^4.1.2" + npmlog "^6.0.2" p-map "^4.0.0" p-pipe "^3.1.0" p-reduce "^2.1.0" @@ -4764,13 +4760,13 @@ slash "^3.0.0" write-json-file "^4.3.0" -"@lerna/write-log-file@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.0.0.tgz#ad3d33d6153b962beef48442ab6472233b5d5197" - integrity sha512-kpPNxe9xm36QbCWY7DwO96Na6FpCHzZinJtw6ttBHslIcdR38lZuCp+/2KfJcVsRIPNOsp1VvgP7EZIKiBhgjw== +"@lerna/write-log-file@5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.4.0.tgz#cb207187ce86e6c4fb46e971d2ea355c7ca53d20" + integrity sha512-Zj2rRG5HasQNOaVmOaSSAn6wZ4esJSJ/fI/IYK1yCvx9dMq5X0BAiVBWijXW7V1xlwJY0TDeI82p36HS09dFLQ== dependencies: - npmlog "^4.1.2" - write-file-atomic "^3.0.3" + npmlog "^6.0.2" + write-file-atomic "^4.0.1" "@lezer/common@^1.0.0": version "1.0.0" @@ -5119,31 +5115,31 @@ tslib "2.3.1" uuid "8.3.2" -"@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@5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.2.0.tgz#ee40dfe1f81ae1524819ee39c8f3e7022b0d6269" - integrity sha512-zWV7scFGL0SmpvfQyIWnMFbU/0YgtMNyvJiJwR98kyjUSntJGWFFR0O600d5W+TrDcTg0GyDbY+HdzGEg+GXLg== +"@npmcli/arborist@5.3.0": + version "5.3.0" + resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.3.0.tgz#321d9424677bfc08569e98a5ac445ee781f32053" + integrity sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/installed-package-contents" "^1.0.7" @@ -5153,7 +5149,7 @@ "@npmcli/name-from-folder" "^1.0.1" "@npmcli/node-gyp" "^2.0.0" "@npmcli/package-json" "^2.0.0" - "@npmcli/run-script" "^3.0.0" + "@npmcli/run-script" "^4.1.3" bin-links "^3.0.0" cacache "^16.0.6" common-ancestor-path "^1.0.1" @@ -5167,7 +5163,7 @@ npm-pick-manifest "^7.0.0" npm-registry-fetch "^13.0.0" npmlog "^6.0.2" - pacote "^13.0.5" + pacote "^13.6.1" parse-conflict-json "^2.0.1" proc-log "^2.0.0" promise-all-reject-late "^1.0.0" @@ -5218,23 +5214,18 @@ treeverse "^1.0.4" 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== - "@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/fs@^2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109" - integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== + version "2.1.1" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.1.tgz#c0c480b03450d8b9fc086816a50cb682668a48bf" + integrity sha512-1Q0uzx6c/NVNGszePbr5Gc2riSU1zLpNlo/1YWntH+eaPmMgBssAW0qXofCVkpdj3ce4swZtlDYQu+NKiYcptg== dependencies: "@gar/promisify" "^1.1.3" semver "^7.3.5" @@ -5287,9 +5278,9 @@ read-package-json-fast "^2.0.1" "@npmcli/map-workspaces@^2.0.3": - version "2.0.3" - resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz#2d3c75119ee53246e9aa75bc469a55281cd5f08f" - integrity sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q== + version "2.0.4" + resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" + integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== dependencies: "@npmcli/name-from-folder" "^1.0.1" glob "^8.0.1" @@ -5307,23 +5298,16 @@ semver "^7.3.2" "@npmcli/metavuln-calculator@^3.0.1": - version "3.1.0" - resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.0.tgz#b1c2f0991c4f2d992b1615a54d4358c05efc3702" - integrity sha512-Q5fbQqGDlYqk7kWrbg6E2j/mtqQjZop0ZE6735wYA1tYNHguIDjAuWs+kFb5rJCkLIlXllfapvsyotYKiZOTBA== + version "3.1.1" + resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" + integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== dependencies: cacache "^16.0.0" json-parse-even-better-errors "^2.3.1" pacote "^13.0.3" semver "^7.3.5" -"@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== @@ -5392,15 +5376,30 @@ node-gyp "^8.2.0" read-package-json-fast "^2.0.1" -"@npmcli/run-script@^3.0.0", "@npmcli/run-script@^3.0.1", "@npmcli/run-script@^3.0.2": - version "3.0.3" - resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.3.tgz#66afa6e0c4c3484056195f295fa6c1d1a45ddf58" - integrity sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q== +"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.1.7": + version "4.2.0" + resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.0.tgz#2c25758f80831ba138afe25225d456e89acedac3" + integrity sha512-e/QgLg7j2wSJp1/7JRl0GC8c7PMX+uYlA/1Tb+IDOLdSM4T7K1VQ9mm9IGU3WRtY5vEIObpqCLb3aCNCug18DA== dependencies: "@npmcli/node-gyp" "^2.0.0" "@npmcli/promise-spawn" "^3.0.0" - node-gyp "^8.4.1" + node-gyp "^9.0.0" read-package-json-fast "^2.0.3" + which "^2.0.2" + +"@nrwl/cli@14.5.4": + version "14.5.4" + resolved "https://registry.npmjs.org/@nrwl/cli/-/cli-14.5.4.tgz#86ac4fbcd1bf079b67c420376cf696b68fcc1200" + integrity sha512-UYr14hxeYV8p/zt6D6z33hljZJQROJAVxSC+mm72fyVvy88Gt0sQNLfMmOARXur0p/73PSLM0jJ2Sr7Ftsuu+A== + dependencies: + nx "14.5.4" + +"@nrwl/tao@14.5.4": + version "14.5.4" + resolved "https://registry.npmjs.org/@nrwl/tao/-/tao-14.5.4.tgz#a67097d424bcbf7073a1944ea1a0209c4f4f859c" + integrity sha512-a2GCuSE8WghjehuU3GVO63KZEnZXXQiqEg137yN/Na+PxwSu68XeaX53SLyzRskTV120YwBBy1YCTNzAZxxsjg== + dependencies: + nx "14.5.4" "@nuxtjs/opencollective@0.3.2": version "0.3.2" @@ -5753,7 +5752,7 @@ node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@^18.1.0", "@octokit/rest@^18.5.3": +"@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== @@ -5877,6 +5876,14 @@ resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== +"@parcel/watcher@2.0.4": + version "2.0.4" + resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" + integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg== + dependencies: + node-addon-api "^3.2.1" + node-gyp-build "^4.3.0" + "@peculiar/asn1-schema@^2.1.6": version "2.2.0" resolved "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.2.0.tgz#d8a54527685c8dee518e6448137349444310ad64" @@ -7179,7 +7186,7 @@ "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/jsonwebtoken@^8.3.3", "@types/jsonwebtoken@^8.5.0": version "8.5.0" @@ -8398,7 +8405,7 @@ acorn@^8.8.0: add-stream@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== address@^1.0.1, address@^1.1.2: version "1.1.2" @@ -8417,19 +8424,19 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@^4.1.3, agentkeepalive@^4.1.4, agentkeepalive@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz#616ce94ccb41d1a39a45d203d8076fe98713062d" - integrity sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw== +agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== dependencies: debug "^4.1.0" depd "^1.1.2" humanize-ms "^1.2.1" -agentkeepalive@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== +agentkeepalive@^4.1.4, agentkeepalive@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz#616ce94ccb41d1a39a45d203d8076fe98713062d" + integrity sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw== dependencies: debug "^4.1.0" depd "^1.1.2" @@ -8742,9 +8749,9 @@ are-we-there-yet@^2.0.0: readable-stream "^3.6.0" are-we-there-yet@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" - integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== + version "3.0.1" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== dependencies: delegates "^1.0.0" readable-stream "^3.6.0" @@ -8835,7 +8842,7 @@ array-flatten@^2.1.2: array-ify@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== array-includes@^3.1.2, array-includes@^3.1.4: version "3.1.4" @@ -9453,21 +9460,21 @@ bignumber.js@^9.0.0: integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== bin-links@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bin-links/-/bin-links-3.0.0.tgz#8273063638919f6ba4fbe890de9438c1b3adf0b7" - integrity sha512-fC7kPWcEkAWBgCKxmAMqZldlIeHsXwQy9JXzrppAVQiukGiDKxmYesJcBKWu6UMwx/5GOfo10wtK/4zy+Xt/mg== + version "3.0.1" + resolved "https://registry.npmjs.org/bin-links/-/bin-links-3.0.1.tgz#cc70ffb481988b22c527d3e6e454787876987a49" + integrity sha512-9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ== dependencies: - cmd-shim "^4.0.1" + cmd-shim "^5.0.0" mkdirp-infer-owner "^2.0.0" npm-normalize-package-bin "^1.0.0" - read-cmd-shim "^2.0.0" + read-cmd-shim "^3.0.0" rimraf "^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" @@ -9818,7 +9825,7 @@ builtin-status-codes@^3.0.0: builtins@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== builtins@^5.0.0: version "5.0.1" @@ -9840,9 +9847,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" @@ -10067,6 +10074,14 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" @@ -10182,7 +10197,7 @@ check-types@^11.1.1: resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== -chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.2, chokidar@^3.5.3: +chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -10276,17 +10291,22 @@ clean-stack@^2.0.0: resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-cursor@^3.1.0: +cli-cursor@3.1.0, cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" +cli-spinners@2.6.1: + 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-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.7.0" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== cli-table3@~0.6.1: version "0.6.1" @@ -10407,10 +10427,10 @@ cluster-key-slot@^1.1.0: resolved "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== -cmd-shim@^4.0.1, cmd-shim@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" - integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== +cmd-shim@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" + integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== dependencies: mkdirp-infer-owner "^2.0.0" @@ -10580,12 +10600,12 @@ colorspace@1.1.x: color "3.0.x" 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= +columnify@^1.6.0: + 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: @@ -10758,7 +10778,7 @@ compute-lcm@^1.1.0, compute-lcm@^1.1.2: concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^2.0.0: version "2.0.0" @@ -10807,9 +10827,9 @@ concurrently@^7.0.0: yargs "^17.3.1" 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" @@ -10873,14 +10893,14 @@ 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" -conventional-changelog-core@^4.2.2: +conventional-changelog-core@^4.2.4: version "4.2.4" resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== @@ -10929,9 +10949,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" @@ -10939,7 +10959,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" @@ -11030,11 +11049,16 @@ core-js@^3.4.1, core-js@^3.6.5: resolved "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" integrity sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg== -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" @@ -11836,7 +11860,7 @@ debug@~4.1.0: debuglog@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== decamelize-keys@^1.1.0: version "1.1.0" @@ -11890,7 +11914,7 @@ decompress-response@^6.0.0: dedent@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== deep-extend@0.6.0, deep-extend@^0.6.0: version "0.6.0" @@ -11988,7 +12012,7 @@ delayed-stream@~1.0.0: delegates@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== denque@^2.0.1: version "2.0.1" @@ -12041,7 +12065,7 @@ destroy@1.2.0: detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== detect-indent@^6.0.0: version "6.1.0" @@ -12086,7 +12110,7 @@ devtools-protocol@0.0.1019158: resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz#4b08d06108a784a2134313149626ba55f030a86f" integrity sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ== -dezalgo@1.0.3, dezalgo@^1.0.0: +dezalgo@1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= @@ -12094,6 +12118,14 @@ dezalgo@1.0.3, dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" +dezalgo@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" + diff-sequences@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" @@ -12314,6 +12346,11 @@ dotenv@^16.0.0: resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== +dotenv@~10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + drange@^1.0.2: version "1.1.1" resolved "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz#b2aecec2aab82fcef11dbbd7b9e32b83f8f6c0b8" @@ -12324,16 +12361,16 @@ dset@^3.1.2: resolved "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== -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: version "0.1.2" resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + duplexify@^4.0.0, duplexify@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" @@ -12513,7 +12550,7 @@ enhanced-resolve@^5.10.0: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.0, enquirer@^2.3.6: +enquirer@^2.3.0, enquirer@^2.3.6, 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== @@ -12536,14 +12573,14 @@ entities@^4.3.0: integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== 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" @@ -13571,6 +13608,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.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -13635,9 +13683,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" @@ -13692,7 +13740,7 @@ fecha@^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@^3.0.0, figures@^3.2.0: +figures@3.2.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== @@ -13866,6 +13914,11 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatstr@^1.0.12: version "1.0.12" resolved "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" @@ -14069,7 +14122,7 @@ fs-extra@10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.0.1: +fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.0.1, fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -14121,7 +14174,7 @@ fs-monkey@1.0.3: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" @@ -14168,21 +14221,6 @@ gauge@^3.0.0: strip-ansi "^6.0.1" 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== - dependencies: - ansi-regex "^5.0.1" - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - gauge@^4.0.3: version "4.0.4" resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" @@ -14372,9 +14410,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" @@ -14385,7 +14423,7 @@ git-raw-commits@^2.0.8: git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== dependencies: gitconfiglocal "^1.0.0" pify "^2.3.0" @@ -14398,14 +14436,6 @@ git-semver-tags@^4.1.1: meow "^8.0.0" 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== - dependencies: - is-ssh "^1.3.0" - parse-url "^5.0.0" - git-up@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/git-up/-/git-up-6.0.0.tgz#dbd6e4eee270338be847a0601e6d0763c90b74db" @@ -14414,13 +14444,6 @@ git-up@^6.0.0: is-ssh "^1.4.0" parse-url "^7.0.2" -git-url-parse@^11.4.4: - version "11.6.0" - resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== - dependencies: - git-up "^4.0.0" - git-url-parse@^12.0.0: version "12.0.0" resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-12.0.0.tgz#4ba70bc1e99138321c57e3765aaf7428e5abb793" @@ -14431,7 +14454,7 @@ git-url-parse@^12.0.0: gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== dependencies: ini "^1.3.2" @@ -14459,6 +14482,18 @@ glob-to-regexp@^0.4.1: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@7.1.4: + version "7.1.4" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -14484,16 +14519,15 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl path-is-absolute "^1.0.0" glob@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz#00308f5c035aa0b2a447cd37ead267ddff1577d3" - integrity sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow== + version "8.0.3" + resolved "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" global-agent@^3.0.0: version "3.0.0" @@ -14644,16 +14678,16 @@ got@^11.8.3: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.9" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: version "4.2.10" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.9" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -15273,7 +15307,7 @@ humanize-duration@^3.25.1, humanize-duration@^3.26.0, humanize-duration@^3.27.0, humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== dependencies: ms "^2.0.0" @@ -15333,13 +15367,6 @@ ignore-by-default@^1.0.1: resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 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== - dependencies: - minimatch "^3.0.4" - ignore-walk@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" @@ -15359,7 +15386,7 @@ ignore@^3.3.5: resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^5.1.4, ignore@^5.2.0: +ignore@^5.0.4, ignore@^5.1.4, ignore@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -15396,7 +15423,7 @@ import-cwd@^3.0.0: dependencies: import-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.1.0: 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== @@ -15404,6 +15431,14 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.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== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-from@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" @@ -15422,9 +15457,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" @@ -15432,7 +15467,7 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indefinite-observable@^2.0.1: version "2.0.1" @@ -15464,7 +15499,7 @@ infer-owner@^1.0.4: inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -15494,19 +15529,18 @@ ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 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== +init-package-json@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" + integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== dependencies: - glob "^7.1.1" - npm-package-arg "^8.1.0" + npm-package-arg "^9.0.1" promzard "^0.3.0" - read "~1.0.1" - read-package-json "^3.0.0" - semver "^7.3.2" + read "^1.0.7" + read-package-json "^5.0.0" + semver "^7.3.5" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^3.0.0" + validate-npm-package-name "^4.0.0" inline-style-parser@0.1.1: version "0.1.1" @@ -15540,26 +15574,7 @@ inquirer@8.2.2: strip-ansi "^6.0.0" through "^2.3.6" -inquirer@^7.3.3: - version "7.3.3" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -inquirer@^8.0.0, inquirer@^8.2.0: +inquirer@^8.0.0, inquirer@^8.2.0, inquirer@^8.2.4: version "8.2.4" resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== @@ -15639,10 +15654,10 @@ ioredis@^5.1.0: redis-parser "^3.0.0" standard-as-callback "^2.1.0" -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== ipaddr.js@1.9.1: version "1.9.1" @@ -15787,14 +15802,7 @@ is-core-module@^2.1.0, is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-core-module@^2.8.0, is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-core-module@^2.9.0: +is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1, is-core-module@^2.9.0: version "2.10.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== @@ -15878,7 +15886,7 @@ is-extendable@^1.0.1: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -15950,7 +15958,7 @@ is-interactive@^1.0.0: is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== is-lower-case@^2.0.2: version "2.0.2" @@ -16016,7 +16024,7 @@ is-path-inside@^3.0.2: is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-obj@^2.0.0: version "2.1.0" @@ -16062,11 +16070,6 @@ is-primitive@^3.0.1: resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz#98c4db1abff185485a657fc2905052b940524d05" integrity sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w== -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== - is-promise@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" @@ -16123,13 +16126,6 @@ is-shared-array-buffer@^1.0.1, is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -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== - dependencies: - protocols "^1.1.0" - is-ssh@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" @@ -16181,7 +16177,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: is-text-path@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== dependencies: text-extensions "^1.0.0" @@ -17216,7 +17212,7 @@ json5@^2.1.2, json5@^2.1.3, json5@^2.2.0, json5@^2.2.1: resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== -jsonc-parser@^3.0.0: +jsonc-parser@3.0.0, jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== @@ -17245,7 +17241,7 @@ jsonify@~0.0.0: jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== jsonpath-plus@^0.19.0: version "0.19.0" @@ -17400,15 +17396,15 @@ jsx-ast-utils@^3.3.2: array-includes "^3.1.5" object.assign "^4.1.2" -just-diff-apply@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-4.0.1.tgz#da89c5a4ccb14aa8873c70e2c3b6695cef45dab5" - integrity sha512-AKOkzB5P6FkfP21UlZVX/OPXx/sC2GagpLX9cBxqHqDuRjwmZ/AJRKSNrB9jHPpRW1W1ONs6gly1gW46t055nQ== +just-diff-apply@^5.2.0: + version "5.4.1" + resolved "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" + integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== just-diff@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/just-diff/-/just-diff-5.0.1.tgz#db8fe1cfeea1156f2374bfb289826dca28e7e390" - integrity sha512-X00TokkRIDotUIf3EV4xUm6ELc/IkqhS/vPSHdWnsM5y0HoNMfEqrazizI7g78lpHvnRSRt/PFfKtRqJCOGIuQ== + version "5.1.1" + resolved "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202" + integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ== just-extend@^4.0.2: version "4.2.1" @@ -17614,28 +17610,29 @@ leasot@^12.0.0: text-table "^0.2.0" lerna@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/lerna/-/lerna-5.0.0.tgz#077e35d41fcead5ea223af1862dc25475e1aaf2a" - integrity sha512-dUYmJ7H9k/xHtwKpQWLTNUa1jnFUiW4o4K2LFkRchlIijoIUT4yK/RprIxNvYCrLrEaOdZryvY5UZvSHI2tBxA== + version "5.4.0" + resolved "https://registry.npmjs.org/lerna/-/lerna-5.4.0.tgz#0b3c2310146fa9480ade9c6978c7693ad5c39fe1" + integrity sha512-y1gRvW5oFo+xumYQCDadDj8r4R4o6fpmuNc94b2h8HRoiCnHZWIlMvym4m+R7kSDh0CuuYRTB2wPjUrHmQXL7w== dependencies: - "@lerna/add" "5.0.0" - "@lerna/bootstrap" "5.0.0" - "@lerna/changed" "5.0.0" - "@lerna/clean" "5.0.0" - "@lerna/cli" "5.0.0" - "@lerna/create" "5.0.0" - "@lerna/diff" "5.0.0" - "@lerna/exec" "5.0.0" - "@lerna/import" "5.0.0" - "@lerna/info" "5.0.0" - "@lerna/init" "5.0.0" - "@lerna/link" "5.0.0" - "@lerna/list" "5.0.0" - "@lerna/publish" "5.0.0" - "@lerna/run" "5.0.0" - "@lerna/version" "5.0.0" + "@lerna/add" "5.4.0" + "@lerna/bootstrap" "5.4.0" + "@lerna/changed" "5.4.0" + "@lerna/clean" "5.4.0" + "@lerna/cli" "5.4.0" + "@lerna/create" "5.4.0" + "@lerna/diff" "5.4.0" + "@lerna/exec" "5.4.0" + "@lerna/import" "5.4.0" + "@lerna/info" "5.4.0" + "@lerna/init" "5.4.0" + "@lerna/link" "5.4.0" + "@lerna/list" "5.4.0" + "@lerna/publish" "5.4.0" + "@lerna/run" "5.4.0" + "@lerna/version" "5.4.0" import-local "^3.0.2" - npmlog "^4.1.2" + npmlog "^6.0.2" + nx ">=14.5.4 < 16" leven@2.1.0: version "2.1.0" @@ -17668,26 +17665,26 @@ li@^1.3.0: resolved "https://registry.npmjs.org/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b" 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== +libnpmaccess@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-6.0.3.tgz#473cc3e4aadb2bc713419d92e45d23b070d8cded" + integrity sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg== dependencies: aproba "^2.0.0" minipass "^3.1.1" - npm-package-arg "^8.0.0" - npm-registry-fetch "^9.0.0" + npm-package-arg "^9.0.1" + npm-registry-fetch "^13.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== +libnpmpublish@^6.0.4: + version "6.0.4" + resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.4.tgz#adb41ec6b0c307d6f603746a4d929dcefb8f1a0b" + integrity sha512-lvAEYW8mB8QblL6Q/PI/wMzKNvIrF7Kpujf/4fGS/32a2i3jzUXi04TNyIBcK6dQJ34IgywfaKGh+Jq4HYPFmg== dependencies: - 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.0" + normalize-package-data "^4.0.0" + npm-package-arg "^9.0.1" + npm-registry-fetch "^13.0.0" + semver "^7.3.7" + ssri "^9.0.0" lilconfig@2.0.5: version "2.0.5" @@ -17786,7 +17783,7 @@ load-json-file@^1.0.0: load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -17844,7 +17841,7 @@ loader-utils@^3.2.0: locate-path@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -17876,11 +17873,6 @@ lodash-es@^4.17.21: resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - lodash.assign@^4.1.0, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -17974,7 +17966,7 @@ lodash.isinteger@^4.0.4: lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== lodash.isnil@^4.0.0: version "4.0.0" @@ -18036,21 +18028,6 @@ lodash.startcase@^4.4.0: resolved "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" @@ -18176,7 +18153,7 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.10.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: +lru-cache@^7.10.1: version "7.10.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz#db577f42a94c168f676b638d15da8fb073448cab" integrity sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A== @@ -18186,6 +18163,11 @@ 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-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: + version "7.13.2" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.2.tgz#bb5d3f1deea3f3a7a35c1c44345566a612e09cd0" + integrity sha512-VJL3nIpA79TodY/ctmZEfhASgqekbT574/c4j3jn4bKXbSCnTTCH/KltZyvL2GlV+tGSMtsWyem8DCX7qKTMBA== + lunr@^2.3.9: version "2.3.9" resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" @@ -18272,10 +18254,10 @@ make-fetch-happen@^10.0.1: socks-proxy-agent "^6.1.1" ssri "^8.0.1" -make-fetch-happen@^10.0.6: - version "10.1.7" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz#b1402cb3c9fad92b380ff3a863cdae5414a42f76" - integrity sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q== +make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: + version "10.2.0" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.0.tgz#0bde3914f2f82750b5d48c6d2294d2c74f985e5b" + integrity sha512-OnEfCLofQVJ5zgKwGk55GaqosqKjaR6khQlJY3dBAA+hM25Bc5CmX5rKUfVut+rYA3uidA7zb7AvcglU87rPRg== dependencies: agentkeepalive "^4.2.1" cacache "^16.1.0" @@ -18294,27 +18276,6 @@ make-fetch-happen@^10.0.6: socks-proxy-agent "^7.0.0" ssri "^9.0.0" -make-fetch-happen@^8.0.9: - version "8.0.14" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" - integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== - dependencies: - agentkeepalive "^4.1.3" - cacache "^15.0.5" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - promise-retry "^2.0.1" - socks-proxy-agent "^5.0.0" - ssri "^8.0.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" @@ -18665,12 +18626,7 @@ 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.4.1: +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== @@ -19100,6 +19056,13 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@3.0.5: + version "3.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" + integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== + dependencies: + brace-expansion "^1.1.7" + minimatch@4.2.1: version "4.2.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" @@ -19149,7 +19112,7 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.3.0, minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: +minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== @@ -19201,9 +19164,9 @@ minipass-sized@^1.0.3: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: - version "3.1.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.4" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== dependencies: yallist "^4.0.0" @@ -19578,6 +19541,11 @@ node-abort-controller@^3.0.1: resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e" integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw== +node-addon-api@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + node-cache@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d" @@ -19609,7 +19577,12 @@ node-forge@^1, node-forge@^1.3.1: resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-gyp@^8.2.0, node-gyp@^8.4.1: +node-gyp-build@^4.3.0: + version "4.5.0" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + +node-gyp@^8.2.0: version "8.4.1" resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== @@ -19625,6 +19598,22 @@ node-gyp@^8.2.0, node-gyp@^8.4.1: tar "^6.1.2" which "^2.0.2" +node-gyp@^9.0.0: + version "9.1.0" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.1.0.tgz#c8d8e590678ea1f7b8097511dedf41fc126648f8" + integrity sha512-HkmN0ZpQJU7FLbJauJTHkHlSVAXlNGDAzH/VYFZGDOnFyn/Na3GlNJfkudmufOdS6/jNFhy88ObzL7ERz9es1g== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^10.0.3" + nopt "^5.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -19715,13 +19704,13 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: 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== + 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-package-data@^4.0.0: @@ -19746,11 +19735,6 @@ 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@^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" @@ -19782,7 +19766,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.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" + integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg== + dependencies: + hosted-git-info "^3.0.6" + semver "^7.0.0" + validate-npm-package-name "^3.0.0" + +npm-package-arg@^8.0.1, 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== @@ -19792,24 +19785,15 @@ 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-package-arg@^9.0.0, npm-package-arg@^9.0.1: - version "9.0.2" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.0.2.tgz#f3ef7b1b3b02e82564af2d5228b4c36567dcd389" - integrity sha512-v/miORuX8cndiOheW8p2moNuPJ7QhcFh9WGlTorruG8hXSA23vMTEp5hTCmDxic0nD8KHhj/NQgFuySD3GYY3g== + version "9.1.0" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz#a60e9f1e7c03e4e3e4e994ea87fff8b90b522987" + integrity sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw== dependencies: hosted-git-info "^5.0.0" + proc-log "^2.0.1" semver "^7.3.5" validate-npm-package-name "^4.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== - dependencies: - glob "^7.1.6" - ignore-walk "^3.0.3" - npm-bundled "^1.1.1" - npm-normalize-package-bin "^1.0.1" - npm-packlist@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" @@ -19820,7 +19804,7 @@ npm-packlist@^3.0.0: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -npm-packlist@^5.0.0, npm-packlist@^5.1.0: +npm-packlist@^5.0.0, npm-packlist@^5.1.0, npm-packlist@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz#79bcaf22a26b6c30aa4dd66b976d69cc286800e0" integrity sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw== @@ -19862,10 +19846,10 @@ npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: minizlib "^2.1.2" npm-package-arg "^8.1.5" -npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: - version "13.1.1" - resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz#26dc4b26d0a545886e807748032ba2aefaaae96b" - integrity sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w== +npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.0: + version "13.3.0" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.0.tgz#0ce10fa4a699a1e70685ecf41bbfb4150d74231b" + integrity sha512-10LJQ/1+VhKrZjIuY9I/+gQTvumqqlgnsCufoXETHAPFTS3+M+Z5CFhZRDHGavmJ6rOye3UvNga88vl8n1r6gg== dependencies: make-fetch-happen "^10.0.6" minipass "^3.1.6" @@ -19875,20 +19859,6 @@ npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: npm-package-arg "^9.0.1" proc-log "^2.0.0" -npm-registry-fetch@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz#86f3feb4ce00313bc0b8f1f8f69daae6face1661" - integrity sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA== - dependencies: - "@npmcli/ci-detect" "^1.0.0" - lru-cache "^6.0.0" - make-fetch-happen "^8.0.9" - 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-run-path@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -19930,17 +19900,7 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -npmlog@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz#06f1344a174c06e8de9c6c70834cfba2964bba17" - integrity sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.0" - set-blocking "^2.0.0" - -npmlog@^6.0.2: +npmlog@^6.0.0, npmlog@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== @@ -19981,6 +19941,42 @@ nwsapi@^2.2.0: resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== +nx@14.5.4, "nx@>=14.5.4 < 16": + version "14.5.4" + resolved "https://registry.npmjs.org/nx/-/nx-14.5.4.tgz#58b6e8ee798733a6ab9aff2a19180c371482fa10" + integrity sha512-xv1nTaQP6kqVDE4PXcB1tLlgzNAPUHE/2vlqSLgxjNb6colKf0vrEZhVTjhnbqBeJiTb33gUx50bBXkurCkN5w== + dependencies: + "@nrwl/cli" "14.5.4" + "@nrwl/tao" "14.5.4" + "@parcel/watcher" "2.0.4" + chalk "4.1.0" + chokidar "^3.5.1" + cli-cursor "3.1.0" + cli-spinners "2.6.1" + cliui "^7.0.2" + dotenv "~10.0.0" + enquirer "~2.3.6" + fast-glob "3.2.7" + figures "3.2.0" + flat "^5.0.2" + fs-extra "^10.1.0" + glob "7.1.4" + ignore "^5.0.4" + js-yaml "4.1.0" + jsonc-parser "3.0.0" + minimatch "3.0.5" + npm-run-path "^4.0.1" + open "^8.4.0" + semver "7.3.4" + string-width "^4.2.3" + tar-stream "~2.2.0" + tmp "~0.2.1" + tsconfig-paths "^3.9.0" + tslib "^2.3.0" + v8-compile-cache "2.3.0" + yargs "^17.4.0" + yargs-parser "21.0.1" + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -20298,7 +20294,7 @@ p-filter@^2.1.0: p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-is-promise@^3.0.0: version "3.0.0" @@ -20343,7 +20339,7 @@ p-limit@^4.0.0: p-locate@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" @@ -20429,7 +20425,7 @@ p-transform@^1.3.0: p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: version "2.2.0" @@ -20473,15 +20469,15 @@ pacote@^12.0.0, pacote@^12.0.2: ssri "^8.0.1" tar "^6.1.0" -pacote@^13.0.3, pacote@^13.0.5, pacote@^13.4.1: - version "13.6.0" - resolved "https://registry.npmjs.org/pacote/-/pacote-13.6.0.tgz#79ea3d3ae5a2b29e2994dcf18d75494e8d888032" - integrity sha512-zHmuCwG4+QKnj47LFlW3LmArwKoglx2k5xtADiMCivVWPgNRP5QyLDGOIjGjwOe61lhl1rO63m/VxT16pEHLWg== +pacote@^13.0.3, pacote@^13.6.1: + version "13.6.1" + resolved "https://registry.npmjs.org/pacote/-/pacote-13.6.1.tgz#ac6cbd9032b4c16e5c1e0c60138dfe44e4cc589d" + integrity sha512-L+2BI1ougAPsFjXRyBhcKmfT016NscRFLv6Pz5EiNf1CCFJFU0pSKKQwsZTyAQB+sTuUL4TyFyp6J1Ork3dOqw== dependencies: "@npmcli/git" "^3.0.0" "@npmcli/installed-package-contents" "^1.0.7" "@npmcli/promise-spawn" "^3.0.0" - "@npmcli/run-script" "^3.0.1" + "@npmcli/run-script" "^4.1.0" cacache "^16.0.0" chownr "^2.0.0" fs-minipass "^2.1.0" @@ -20556,13 +20552,13 @@ parse-bmfont-xml@^1.1.4: xml2js "^0.4.5" parse-conflict-json@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.1.tgz#76647dd072e6068bcaff20be6ccea68a18e1fb58" - integrity sha512-Y7nYw+QaSGBto1LB9lgwOR05Rtz5SbuTf+Oe7HJ6SYQ/DHsvRjQ8O03oWdJbvkt6GzDWospgyZbGmjDYL0sDgA== + version "2.0.2" + resolved "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" + integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== dependencies: json-parse-even-better-errors "^2.3.1" just-diff "^5.0.1" - just-diff-apply "^4.0.1" + just-diff-apply "^5.2.0" parse-entities@^2.0.0: version "2.0.0" @@ -20612,7 +20608,7 @@ parse-json@^2.2.0: parse-json@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -20632,14 +20628,6 @@ parse-package-name@^0.1.0: resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" 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== - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - parse-path@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/parse-path/-/parse-path-5.0.0.tgz#f933152f3c6d34f4cf36cfc3d07b138ac113649d" @@ -20647,16 +20635,6 @@ parse-path@^5.0.0: dependencies: protocols "^2.0.0" -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 "^3.3.0" - parse-path "^4.0.0" - protocols "^1.4.0" - parse-url@^7.0.2: version "7.0.2" resolved "https://registry.npmjs.org/parse-url/-/parse-url-7.0.2.tgz#d21232417199b8d371c6aec0cedf1406fd6393f0" @@ -20834,7 +20812,7 @@ path-exists@^2.0.0: path-exists@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -20844,7 +20822,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@1.0.2, path-is-inside@^1.0.2: version "1.0.2" @@ -21058,7 +21036,7 @@ pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: pify@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" @@ -21608,7 +21586,7 @@ proc-log@^1.0.0: resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" integrity sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg== -proc-log@^2.0.0: +proc-log@^2.0.0, proc-log@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== @@ -21653,7 +21631,7 @@ promise-call-limit@^1.0.1: promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^2.0.1: version "2.0.1" @@ -21686,7 +21664,7 @@ prompts@^2.0.1, prompts@^2.4.2: promzard@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== dependencies: read "1" @@ -21726,7 +21704,7 @@ property-information@^6.0.0: 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= + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== proto3-json-serializer@^1.0.0: version "1.0.0" @@ -21773,11 +21751,6 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.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== - protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" @@ -21900,7 +21873,7 @@ pvutils@^1.1.3: q@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qs@6.10.3, 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" @@ -21949,6 +21922,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" @@ -22463,10 +22441,10 @@ react@^17.0.2: loose-envify "^1.1.0" object-assign "^4.1.1" -read-cmd-shim@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" - integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== +read-cmd-shim@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155" + integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog== 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" @@ -22476,17 +22454,7 @@ read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json- json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -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== - 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@^5.0.0: +read-package-json@^5.0.0, read-package-json@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26" integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg== @@ -22507,7 +22475,7 @@ read-pkg-up@^1.0.1: read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== dependencies: find-up "^2.0.0" read-pkg "^3.0.0" @@ -22533,7 +22501,7 @@ read-pkg@^1.0.0: read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" @@ -22559,10 +22527,10 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" -read@1, read@~1.0.1: +read@1, read@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" @@ -23091,7 +23059,7 @@ resolve.exports@^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.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0: +resolve@^1.1.6, resolve@^1.14.2, 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== @@ -23100,7 +23068,7 @@ resolve@^1.1.6, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.10.0: +resolve@^1.10.0, resolve@^1.17.0: version "1.22.1" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -23182,7 +23150,7 @@ retry@0.13.1: retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== reusify@^1.0.4: version "1.0.4" @@ -23335,37 +23303,37 @@ rtl-css-js@^1.14.0: "@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.1.0: version "0.1.1" resolved "https://registry.npmjs.org/run-script-webpack-plugin/-/run-script-webpack-plugin-0.1.1.tgz#dad3114be32eb864d2160306e4d9c52a2c1cfd59" integrity sha512-PrxBRLv1K9itDKMlootSCyGhdTU+KbKGJ2wF6/k0eyo6M0YGPC58HYbS/J/QsDiwM0t7G99WcuCqto0J7omOXA== -rxjs@7.5.5, rxjs@^7.1.0, rxjs@^7.5.1, rxjs@^7.5.5: +rxjs@7.5.5, rxjs@^7.1.0, rxjs@^7.5.1: version "7.5.5" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== dependencies: tslib "^2.1.0" -rxjs@^6.6.0, rxjs@^6.6.3: +rxjs@^6.6.3: version "6.6.7" resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -rxjs@^7.0.0: +rxjs@^7.0.0, rxjs@^7.5.5: version "7.5.6" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== @@ -23538,6 +23506,13 @@ semver@7.0.0, semver@~7.0.0: resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@7.3.4: + version "7.3.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -23644,7 +23619,7 @@ serve-static@1.15.0: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-cookie-parser@^2.4.6: version "2.4.8" @@ -23980,16 +23955,16 @@ sockjs@^0.3.24: 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== +socks-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== dependencies: - agent-base "6" - debug "4" - socks "^2.3.3" + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" -socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: +socks-proxy-agent@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== @@ -24007,12 +23982,12 @@ socks-proxy-agent@^7.0.0: debug "^4.3.3" socks "^2.6.2" -socks@^2.3.3, socks@^2.6.1, socks@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== +socks@^2.6.1, socks@^2.6.2: + version "2.7.0" + resolved "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz#f9225acdb841e874dca25f870e9130990f3913d0" + integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== dependencies: - ip "^1.1.5" + ip "^2.0.0" smart-buffer "^4.2.0" sonic-boom@^0.7.5: @@ -24026,7 +24001,7 @@ sonic-boom@^0.7.5: sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== dependencies: is-plain-obj "^1.0.0" @@ -24269,7 +24244,7 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" -ssri@^9.0.0: +ssri@^9.0.0, ssri@^9.0.1: version "9.0.1" resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== @@ -24916,7 +24891,7 @@ tar-fs@~2.0.1: pump "^3.0.0" tar-stream "^2.0.0" -tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0: +tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0, tar-stream@~2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -24990,7 +24965,7 @@ teeny-request@^8.0.0: temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== temp@^0.8.4: version "0.8.4" @@ -25323,7 +25298,7 @@ tr46@^2.1.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== traverse@^0.6.6, traverse@~0.6.6: version "0.6.6" @@ -25350,11 +25325,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" @@ -25431,7 +25401,7 @@ ts-node@^9: source-map-support "^0.5.17" yn "3.1.1" -tsconfig-paths@^3.14.1: +tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: version "3.14.1" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== @@ -25456,7 +25426,7 @@ tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.4.0, tslib@~2.4.0: +tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@~2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -25589,7 +25559,7 @@ typedarray-to-buffer@^3.1.5: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript-json-schema@^0.54.0: version "0.54.0" @@ -25626,9 +25596,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.16.3" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz#94c7a63337ee31227a18d03b8a3041c210fd1f1d" + integrity sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw== uid-safe@~2.1.5: version "2.1.5" @@ -26092,6 +26062,11 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +v8-compile-cache@2.3.0: + 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-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" @@ -26117,7 +26092,7 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: validate-npm-package-name@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== dependencies: builtins "^1.0.3" @@ -26313,7 +26288,7 @@ wbuf@^1.1.0, wbuf@^1.7.3: wcwidth@>=1.0.1, wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" @@ -26350,7 +26325,7 @@ webcrypto-core@^1.7.4: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^5.0.0: version "5.0.0" @@ -26495,7 +26470,7 @@ whatwg-mimetype@^3.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -26617,7 +26592,7 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wrap-ansi@^2.0.0: version "2.1.0" @@ -26648,7 +26623,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: version "2.4.3" @@ -26659,7 +26634,7 @@ write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: +write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -26669,7 +26644,7 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.0: +write-file-atomic@^4.0.0, write-file-atomic@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== @@ -26893,11 +26868,16 @@ yaml@^2.0.0, yaml@^2.1.1: resolved "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== -yargs-parser@20.2.4, 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== +yargs-parser@21.0.1: + version "21.0.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -26906,7 +26886,7 @@ 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.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== @@ -26967,7 +26947,7 @@ yargs@^17.0.0, yargs@^17.2.1: y18n "^5.0.5" yargs-parser "^21.0.0" -yargs@^17.1.1, yargs@^17.3.1: +yargs@^17.1.1, yargs@^17.3.1, yargs@^17.4.0: version "17.5.1" resolved "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== From d351ebdba879341010499b0eedabd22e97f998f2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 19:09:48 +0000 Subject: [PATCH 239/377] fix(deps): update dependency @octokit/webhooks to v10.1.0 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0d781207cf..f73f115c35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5812,19 +5812,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" integrity sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA== -"@octokit/webhooks-types@6.2.4": - version "6.2.4" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.2.4.tgz#fe386d1e4749ff93bb143907b9673eb1e4f01a30" - integrity sha512-MlumL1ClswnrebjNWmUFiHjEqpRl2T3Eh6j6R9mP2SNK7SjYw4tXGeCKHOyZiNpLjc5/1+P39BxwLN28zNn8iQ== +"@octokit/webhooks-types@6.3.0": + version "6.3.0" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.0.tgz#ccacafc08d4cfdc8bb430dc72df2d087bc392169" + integrity sha512-gawosm1WoJvtiDTBlyAARdQYQWH6D6Pcu/ZdVmxLb1SPiqJaMYPzrKY9VkWA9T4PhzyrMoGXBNesQULBb73LRw== "@octokit/webhooks@^10.0.0": - version "10.0.9" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.0.9.tgz#0b11925cf34abb62293af55273ed2c63d7e11e3a" - integrity sha512-KcUWo8HnZ7QOjYGUNYkNpd7TSj8Ck0Q1FzEeMyiMQg52K2sv/Lc/rfW2iJQLxpSrDhXfFTVQ75S10YjWdIj4kA== + version "10.1.0" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.0.tgz#250fd07188f77a60644885a8d3a9920241e92905" + integrity sha512-NtuIsmXR8ZiojLJwOBwDILDw1V7zRqijg9ZsAeIKQjvMJ2HOASAzYsuLnf3rK3B4FCEw92S5uws9EZfIpQdEBw== dependencies: "@octokit/request-error" "^3.0.0" "@octokit/webhooks-methods" "^3.0.0" - "@octokit/webhooks-types" "6.2.4" + "@octokit/webhooks-types" "6.3.0" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3": From cea0b360dd91ac417a36f79855a4fb424faa0268 Mon Sep 17 00:00:00 2001 From: Jeff Feng Date: Mon, 8 Aug 2022 13:42:40 -0400 Subject: [PATCH 240/377] Fixing URL for Tekton plugin icon Changed iconUrl in the yaml so that the icon for this plugin will display on the /plugins page. Signed-off-by: Jeff Feng --- microsite/data/plugins/tekton-pipelines.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/data/plugins/tekton-pipelines.yaml b/microsite/data/plugins/tekton-pipelines.yaml index 241f5aa61d..e53418037d 100644 --- a/microsite/data/plugins/tekton-pipelines.yaml +++ b/microsite/data/plugins/tekton-pipelines.yaml @@ -5,5 +5,5 @@ authorUrl: https://github.com/jquad-group category: CI description: View the status of the Tekton PipelineRun resources. documentation: https://github.com/jquad-group/backstage-jquad#readme -iconUrl: https://github.com/jquad-group/backstage-jquad/blob/main/img/tekton-horizontal-color.png +iconUrl: https://raw.githubusercontent.com/jquad-group/backstage-jquad/main/img/tekton-horizontal-color.png npmPackageName: '@jquad-group/plugin-tekton-pipelines' From 2f41a04f03310ed9396f4cc85a93462be88a2a45 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 23:06:58 +0000 Subject: [PATCH 241/377] fix(deps): update dependency @octokit/webhooks to v10.1.1 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81df56d1f6..7233e3e894 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5812,19 +5812,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" integrity sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA== -"@octokit/webhooks-types@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.0.tgz#ccacafc08d4cfdc8bb430dc72df2d087bc392169" - integrity sha512-gawosm1WoJvtiDTBlyAARdQYQWH6D6Pcu/ZdVmxLb1SPiqJaMYPzrKY9VkWA9T4PhzyrMoGXBNesQULBb73LRw== +"@octokit/webhooks-types@6.3.1": + version "6.3.1" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.1.tgz#af0c31c81ccc3818de01df1977463b78c7c02b4f" + integrity sha512-pHjIWGLDldWKuuax5ZDzQeTSnHN6/9RbDaXYEtHwlbW5SPFwTwy3xhJ552qJH6kHP0M3k5t5JVpa0f6fR9MooQ== "@octokit/webhooks@^10.0.0": - version "10.1.0" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.0.tgz#250fd07188f77a60644885a8d3a9920241e92905" - integrity sha512-NtuIsmXR8ZiojLJwOBwDILDw1V7zRqijg9ZsAeIKQjvMJ2HOASAzYsuLnf3rK3B4FCEw92S5uws9EZfIpQdEBw== + version "10.1.1" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.1.tgz#8fdbddd2b0ee9c53ddabb47c346032fcc46fd5ff" + integrity sha512-/PhAXTA5M47sM/LxFXfTQ8WUEFsNQog29VfcxYCtsJtRz3NoaDAirH4gT6/Z81BrC8Vw3JA7mF+yFUN7RmxWGw== dependencies: "@octokit/request-error" "^3.0.0" "@octokit/webhooks-methods" "^3.0.0" - "@octokit/webhooks-types" "6.3.0" + "@octokit/webhooks-types" "6.3.1" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3": From 77e88ae4a1d484a21a42e5e1115ab2f26fe71733 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 23:07:57 +0000 Subject: [PATCH 242/377] fix(deps): update dependency eslint-plugin-jest to v26.8.1 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81df56d1f6..06fd5e550c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12941,9 +12941,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.14.1" eslint-plugin-jest@^26.1.2: - version "26.8.0" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.0.tgz#32471a6af11dbcb7d0ccf83e8edc83d256fd34a3" - integrity sha512-IyGhk+PpDgIA99OBPHo+l2aTtt8yAeB1IgPwXOQZSzi8ag/t1MsLZBN2MKL1sj6ahlkaxbkhlm7ll+NPcMcjaQ== + version "26.8.1" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.1.tgz#f870a9912f6fe65e16e181cbb368229cd5889c65" + integrity sha512-0+OSTIPjIIfl9heUxZyuU1gDEMW2sLvoVBGwiCIp+iEqUYt0Yqr5M5BjAyVShJaisICmCALdVv0nd1UDX/QaYw== dependencies: "@typescript-eslint/utils" "^5.10.0" From ba68a6581f6805849d0ec7cd5ee67613b2ccba3b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 00:01:16 +0000 Subject: [PATCH 243/377] fix(deps): update dependency @microsoft/microsoft-graph-types to v2.23.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c23b594c54..f792a3852c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5010,9 +5010,9 @@ typescript "~4.6.3" "@microsoft/microsoft-graph-types@^2.6.0": - version "2.22.0" - resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.22.0.tgz#7ceb222311770ed5b240d627b657d25b3979964e" - integrity sha512-iKc5L036hc/wu13DX5kGf//3/WqTAErAPTyYKG6zT3vG070xXaaP7PInODznfyZduhiOvavmrRlQb34ajeDTUA== + version "2.23.0" + resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.23.0.tgz#075cd5bbd523a414bb98ab97fb2207bcccbfa532" + integrity sha512-4TwjVg/A28K5Df1br17gRmv7Z0iWqYArdUo77xPz+bEtMpDD1hwmKUNj7O7a8r3sN7WIC2nKp6Atb6LXTr1LEA== "@microsoft/tsdoc-config@~0.16.1": version "0.16.1" From 4ff622e84f62dd6b4f3b503dffe56b7dd13dfa83 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 02:45:12 +0000 Subject: [PATCH 244/377] fix(deps): update typescript-eslint monorepo to v5.33.0 Signed-off-by: Renovate Bot --- yarn.lock | 90 +++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/yarn.lock b/yarn.lock index c23b594c54..19917ba5eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7948,13 +7948,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.32.0.tgz#e27e38cffa4a61226327c874a7be965e9a861624" - integrity sha512-CHLuz5Uz7bHP2WgVlvoZGhf0BvFakBJKAD/43Ty0emn4wXWv5k01ND0C0fHcl/Im8Td2y/7h44E9pca9qAu2ew== + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.0.tgz#059798888720ec52ffa96c5f868e31a8f70fa3ec" + integrity sha512-jHvZNSW2WZ31OPJ3enhLrEKvAZNyAFWZ6rx9tUwaessTc4sx9KmgMNhVcqVAl1ETnT5rU5fpXTLmY9YvC1DCNg== dependencies: - "@typescript-eslint/scope-manager" "5.32.0" - "@typescript-eslint/type-utils" "5.32.0" - "@typescript-eslint/utils" "5.32.0" + "@typescript-eslint/scope-manager" "5.33.0" + "@typescript-eslint/type-utils" "5.33.0" + "@typescript-eslint/utils" "5.33.0" debug "^4.3.4" functional-red-black-tree "^1.0.1" ignore "^5.2.0" @@ -7975,13 +7975,13 @@ eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.32.0.tgz#1de243443bc6186fb153b9e395b842e46877ca5d" - integrity sha512-IxRtsehdGV9GFQ35IGm5oKKR2OGcazUoiNBxhRV160iF9FoyuXxjY+rIqs1gfnd+4eL98OjeGnMpE7RF/NBb3A== + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.0.tgz#26ec3235b74f0667414613727cb98f9b69dc5383" + integrity sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w== dependencies: - "@typescript-eslint/scope-manager" "5.32.0" - "@typescript-eslint/types" "5.32.0" - "@typescript-eslint/typescript-estree" "5.32.0" + "@typescript-eslint/scope-manager" "5.33.0" + "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/typescript-estree" "5.33.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.20.0": @@ -7992,13 +7992,13 @@ "@typescript-eslint/types" "5.20.0" "@typescript-eslint/visitor-keys" "5.20.0" -"@typescript-eslint/scope-manager@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.32.0.tgz#763386e963a8def470580cc36cf9228864190b95" - integrity sha512-KyAE+tUON0D7tNz92p1uetRqVJiiAkeluvwvZOqBmW9z2XApmk5WSMV9FrzOroAcVxJZB3GfUwVKr98Dr/OjOg== +"@typescript-eslint/scope-manager@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.0.tgz#509d7fa540a2c58f66bdcfcf278a3fa79002e18d" + integrity sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw== dependencies: - "@typescript-eslint/types" "5.32.0" - "@typescript-eslint/visitor-keys" "5.32.0" + "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/visitor-keys" "5.33.0" "@typescript-eslint/scope-manager@5.9.0": version "5.9.0" @@ -8008,12 +8008,12 @@ "@typescript-eslint/types" "5.9.0" "@typescript-eslint/visitor-keys" "5.9.0" -"@typescript-eslint/type-utils@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.32.0.tgz#45a14506fe3fb908600b4cef2f70778f7b5cdc79" - integrity sha512-0gSsIhFDduBz3QcHJIp3qRCvVYbqzHg8D6bHFsDMrm0rURYDj+skBK2zmYebdCp+4nrd9VWd13egvhYFJj/wZg== +"@typescript-eslint/type-utils@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.0.tgz#92ad1fba973c078d23767ce2d8d5a601baaa9338" + integrity sha512-2zB8uEn7hEH2pBeyk3NpzX1p3lF9dKrEbnXq1F7YkpZ6hlyqb2yZujqgRGqXgRBTHWIUG3NGx/WeZk224UKlIA== dependencies: - "@typescript-eslint/utils" "5.32.0" + "@typescript-eslint/utils" "5.33.0" debug "^4.3.4" tsutils "^3.21.0" @@ -8022,10 +8022,10 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== -"@typescript-eslint/types@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.32.0.tgz#484273021eeeae87ddb288f39586ef5efeb6dcd8" - integrity sha512-EBUKs68DOcT/EjGfzywp+f8wG9Zw6gj6BjWu7KV/IYllqKJFPlZlLSYw/PTvVyiRw50t6wVbgv4p9uE2h6sZrQ== +"@typescript-eslint/types@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.0.tgz#d41c584831805554b063791338b0220b613a275b" + integrity sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw== "@typescript-eslint/types@5.9.0": version "5.9.0" @@ -8045,13 +8045,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.32.0.tgz#282943f34babf07a4afa7b0ff347a8e7b6030d12" - integrity sha512-ZVAUkvPk3ITGtCLU5J4atCw9RTxK+SRc6hXqLtllC2sGSeMFWN+YwbiJR9CFrSFJ3w4SJfcWtDwNb/DmUIHdhg== +"@typescript-eslint/typescript-estree@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.0.tgz#02d9c9ade6f4897c09e3508c27de53ad6bfa54cf" + integrity sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ== dependencies: - "@typescript-eslint/types" "5.32.0" - "@typescript-eslint/visitor-keys" "5.32.0" + "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/visitor-keys" "5.33.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -8071,15 +8071,15 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.32.0.tgz#eccb6b672b94516f1afc6508d05173c45924840c" - integrity sha512-W7lYIAI5Zlc5K082dGR27Fczjb3Q57ECcXefKU/f0ajM5ToM0P+N9NmJWip8GmGu/g6QISNT+K6KYB+iSHjXCQ== +"@typescript-eslint/utils@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.0.tgz#46797461ce3146e21c095d79518cc0f8ec574038" + integrity sha512-JxOAnXt9oZjXLIiXb5ZIcZXiwVHCkqZgof0O8KPgz7C7y0HS42gi75PdPlqh1Tf109M0fyUw45Ao6JLo7S5AHw== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.32.0" - "@typescript-eslint/types" "5.32.0" - "@typescript-eslint/typescript-estree" "5.32.0" + "@typescript-eslint/scope-manager" "5.33.0" + "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/typescript-estree" "5.33.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -8103,12 +8103,12 @@ "@typescript-eslint/types" "5.20.0" eslint-visitor-keys "^3.0.0" -"@typescript-eslint/visitor-keys@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.32.0.tgz#b9715d0b11fdb5dd10fd0c42ff13987470525394" - integrity sha512-S54xOHZgfThiZ38/ZGTgB2rqx51CMJ5MCfVT2IplK4Q7hgzGfe0nLzLCcenDnc/cSjP568hdeKfeDcBgqNHD/g== +"@typescript-eslint/visitor-keys@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.0.tgz#fbcbb074e460c11046e067bc3384b5d66b555484" + integrity sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw== dependencies: - "@typescript-eslint/types" "5.32.0" + "@typescript-eslint/types" "5.33.0" eslint-visitor-keys "^3.3.0" "@typescript-eslint/visitor-keys@5.9.0": From 3ec7128e83b6826d4f9ccc2b68c1e50897409f1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 07:37:35 +0000 Subject: [PATCH 245/377] fix(deps): update dependency eslint-plugin-jest to v26.8.2 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c23b594c54..b1810dff33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12941,9 +12941,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.14.1" eslint-plugin-jest@^26.1.2: - version "26.8.1" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.1.tgz#f870a9912f6fe65e16e181cbb368229cd5889c65" - integrity sha512-0+OSTIPjIIfl9heUxZyuU1gDEMW2sLvoVBGwiCIp+iEqUYt0Yqr5M5BjAyVShJaisICmCALdVv0nd1UDX/QaYw== + version "26.8.2" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.2.tgz#42a1248a5ade2bc589eb0f9c4e0608dd89b18cf3" + integrity sha512-67oh0FKaku9y48OpLzL3uK9ckrgLb83Sp5gxxTbtOGDw9lq6D8jw/Psj/9CipkbK406I2M7mvx1q+pv/MdbvxA== dependencies: "@typescript-eslint/utils" "^5.10.0" From b80050657e1c8e5210231165f95bf1c073921140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 9 Aug 2022 11:42:15 +0200 Subject: [PATCH 246/377] use the right msw version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- plugins/catalog-backend-module-bitbucket-server/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 621f7cd87b..52192357f4 100644 --- a/plugins/catalog-backend-module-bitbucket-server/package.json +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -46,7 +46,7 @@ "devDependencies": { "@backstage/backend-test-utils": "^0.1.27-next.0", "@backstage/cli": "^0.18.1-next.0", - "msw": "^0.35.0" + "msw": "^0.44.0" }, "files": [ "dist", From 8a564ab5851da8ee1fcfc28b42a2be03d687171d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 9 Aug 2022 09:56:01 +0000 Subject: [PATCH 247/377] Version Packages (next) --- .changeset/pre.json | 24 +- docs/releases/v1.5.0-next.2-changelog.md | 791 ++++++++++++++++++ package.json | 2 +- packages/app-defaults/CHANGELOG.md | 7 + packages/app-defaults/package.json | 6 +- packages/app/CHANGELOG.md | 52 ++ packages/app/package.json | 94 +-- packages/cli/CHANGELOG.md | 6 + packages/cli/package.json | 6 +- packages/core-components/CHANGELOG.md | 6 + packages/core-components/package.json | 4 +- packages/create-app/CHANGELOG.md | 15 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 10 + packages/dev-utils/package.json | 12 +- packages/integration-react/CHANGELOG.md | 7 + packages/integration-react/package.json | 8 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 13 + .../techdocs-cli-embedded-app/package.json | 18 +- packages/techdocs-cli/CHANGELOG.md | 6 + packages/techdocs-cli/package.json | 4 +- plugins/adr/CHANGELOG.md | 10 + plugins/adr/package.json | 14 +- plugins/airbrake/CHANGELOG.md | 9 + plugins/airbrake/package.json | 14 +- plugins/allure/CHANGELOG.md | 8 + plugins/allure/package.json | 10 +- plugins/analytics-module-ga/CHANGELOG.md | 7 + plugins/analytics-module-ga/package.json | 8 +- plugins/apache-airflow/CHANGELOG.md | 7 + plugins/apache-airflow/package.json | 8 +- plugins/api-docs/CHANGELOG.md | 9 + plugins/api-docs/package.json | 12 +- plugins/apollo-explorer/CHANGELOG.md | 7 + plugins/apollo-explorer/package.json | 8 +- plugins/auth-backend/CHANGELOG.md | 6 + plugins/auth-backend/package.json | 4 +- plugins/azure-devops/CHANGELOG.md | 8 + plugins/azure-devops/package.json | 10 +- plugins/badges/CHANGELOG.md | 8 + plugins/badges/package.json | 10 +- plugins/bazaar/CHANGELOG.md | 10 + plugins/bazaar/package.json | 14 +- plugins/bitrise/CHANGELOG.md | 8 + plugins/bitrise/package.json | 10 +- .../CHANGELOG.md | 57 ++ .../package.json | 6 +- .../CHANGELOG.md | 8 + .../package.json | 6 +- .../CHANGELOG.md | 21 + .../package.json | 6 +- plugins/catalog-backend/CHANGELOG.md | 6 + plugins/catalog-backend/package.json | 4 +- plugins/catalog-graph/CHANGELOG.md | 8 + plugins/catalog-graph/package.json | 12 +- plugins/catalog-import/CHANGELOG.md | 9 + plugins/catalog-import/package.json | 12 +- plugins/catalog-react/CHANGELOG.md | 8 + plugins/catalog-react/package.json | 6 +- plugins/catalog/CHANGELOG.md | 10 + plugins/catalog/package.json | 14 +- plugins/circleci/CHANGELOG.md | 8 + plugins/circleci/package.json | 10 +- plugins/cloudbuild/CHANGELOG.md | 8 + plugins/cloudbuild/package.json | 10 +- plugins/code-climate/CHANGELOG.md | 8 + plugins/code-climate/package.json | 10 +- plugins/code-coverage/CHANGELOG.md | 8 + plugins/code-coverage/package.json | 10 +- plugins/codescene/CHANGELOG.md | 7 + plugins/codescene/package.json | 8 +- plugins/config-schema/CHANGELOG.md | 7 + plugins/config-schema/package.json | 8 +- plugins/cost-insights-common/CHANGELOG.md | 6 + plugins/cost-insights-common/package.json | 4 +- plugins/cost-insights/CHANGELOG.md | 10 + plugins/cost-insights/package.json | 10 +- plugins/dynatrace/CHANGELOG.md | 7 + plugins/dynatrace/package.json | 8 +- plugins/example-todo-list/CHANGELOG.md | 7 + plugins/example-todo-list/package.json | 8 +- plugins/explore/CHANGELOG.md | 8 + plugins/explore/package.json | 10 +- plugins/firehydrant/CHANGELOG.md | 8 + plugins/firehydrant/package.json | 10 +- plugins/fossa/CHANGELOG.md | 8 + plugins/fossa/package.json | 10 +- plugins/gcalendar/CHANGELOG.md | 7 + plugins/gcalendar/package.json | 8 +- plugins/gcp-projects/CHANGELOG.md | 7 + plugins/gcp-projects/package.json | 8 +- 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/github-issues/CHANGELOG.md | 14 + plugins/github-issues/package.json | 10 +- .../github-pull-requests-board/CHANGELOG.md | 8 + .../github-pull-requests-board/package.json | 10 +- plugins/gitops-profiles/CHANGELOG.md | 7 + plugins/gitops-profiles/package.json | 8 +- plugins/gocd/CHANGELOG.md | 8 + plugins/gocd/package.json | 10 +- plugins/graphiql/CHANGELOG.md | 7 + plugins/graphiql/package.json | 8 +- plugins/home/CHANGELOG.md | 9 + plugins/home/package.json | 12 +- plugins/ilert/CHANGELOG.md | 8 + plugins/ilert/package.json | 10 +- plugins/jenkins/CHANGELOG.md | 8 + plugins/jenkins/package.json | 10 +- plugins/kafka/CHANGELOG.md | 8 + plugins/kafka/package.json | 10 +- plugins/kubernetes-backend/CHANGELOG.md | 6 + plugins/kubernetes-backend/package.json | 4 +- plugins/kubernetes/CHANGELOG.md | 9 + plugins/kubernetes/package.json | 10 +- plugins/lighthouse/CHANGELOG.md | 8 + plugins/lighthouse/package.json | 10 +- plugins/newrelic-dashboard/CHANGELOG.md | 8 + plugins/newrelic-dashboard/package.json | 10 +- plugins/newrelic/CHANGELOG.md | 7 + plugins/newrelic/package.json | 8 +- plugins/org/CHANGELOG.md | 8 + plugins/org/package.json | 10 +- plugins/pagerduty/CHANGELOG.md | 8 + plugins/pagerduty/package.json | 10 +- plugins/periskop/CHANGELOG.md | 8 + plugins/periskop/package.json | 10 +- plugins/rollbar/CHANGELOG.md | 8 + plugins/rollbar/package.json | 10 +- plugins/scaffolder-backend/CHANGELOG.md | 11 + plugins/scaffolder-backend/package.json | 6 +- plugins/scaffolder/CHANGELOG.md | 9 + plugins/scaffolder/package.json | 14 +- plugins/search-react/CHANGELOG.md | 7 + plugins/search-react/package.json | 4 +- plugins/search/CHANGELOG.md | 9 + plugins/search/package.json | 12 +- plugins/sentry/CHANGELOG.md | 8 + plugins/sentry/package.json | 10 +- plugins/shortcuts/CHANGELOG.md | 7 + plugins/shortcuts/package.json | 8 +- plugins/sonarqube/CHANGELOG.md | 8 + plugins/sonarqube/package.json | 10 +- plugins/splunk-on-call/CHANGELOG.md | 8 + plugins/splunk-on-call/package.json | 10 +- plugins/stack-overflow/CHANGELOG.md | 8 + plugins/stack-overflow/package.json | 10 +- plugins/tech-insights/CHANGELOG.md | 8 + plugins/tech-insights/package.json | 10 +- plugins/tech-radar/CHANGELOG.md | 7 + plugins/tech-radar/package.json | 8 +- .../techdocs-addons-test-utils/CHANGELOG.md | 12 + .../techdocs-addons-test-utils/package.json | 18 +- .../CHANGELOG.md | 9 + .../package.json | 14 +- plugins/techdocs-react/CHANGELOG.md | 7 + plugins/techdocs-react/package.json | 4 +- plugins/techdocs/CHANGELOG.md | 12 + plugins/techdocs/package.json | 16 +- plugins/todo/CHANGELOG.md | 8 + plugins/todo/package.json | 10 +- plugins/user-settings/CHANGELOG.md | 7 + plugins/user-settings/package.json | 8 +- plugins/vault/CHANGELOG.md | 8 + plugins/vault/package.json | 10 +- plugins/xcmetrics/CHANGELOG.md | 7 + plugins/xcmetrics/package.json | 8 +- 171 files changed, 2037 insertions(+), 435 deletions(-) create mode 100644 docs/releases/v1.5.0-next.2-changelog.md create mode 100644 plugins/github-issues/CHANGELOG.md diff --git a/.changeset/pre.json b/.changeset/pre.json index f20db5bacb..aeefcf1fef 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -166,11 +166,14 @@ "@backstage/plugin-vault-backend": "0.2.0", "@backstage/plugin-xcmetrics": "0.2.27", "@internal/plugin-catalog-customized": "0.0.0", - "@backstage/plugin-sonarqube-backend": "0.0.0" + "@backstage/plugin-sonarqube-backend": "0.0.0", + "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.0.0", + "@backstage/plugin-github-issues": "0.0.0" }, "changesets": [ "big-mirrors-play", "calm-clocks-drum", + "cool-months-tickle", "create-app-1658824524", "create-app-1659429685", "dull-owls-grab", @@ -182,12 +185,16 @@ "famous-bikes-brush", "fast-panthers-fold", "few-berries-deny", + "flat-zebras-draw", "forty-lobsters-guess", "fresh-hounds-argue", "friendly-sheep-flash", + "green-laws-greet", + "hot-crabs-wonder", "itchy-mice-kiss", "khaki-meals-hammer", "little-laws-heal", + "long-pumpkins-walk", "loud-panthers-arrive", "lovely-walls-brush", "mean-ants-hang", @@ -198,22 +205,35 @@ "odd-adults-smash", "odd-tomatoes-juggle", "olive-tips-camp", + "plenty-timers-flow", + "popular-starfishes-bow", "pretty-gifts-do", "purple-apricots-build", "red-turtles-melt", "renovate-15030f1", + "renovate-5b3cf8c", "renovate-5b7b62b", "renovate-5ba3a71", + "renovate-5f2abaa", + "rich-readers-return", "rotten-moles-give", "short-trains-roll", + "silver-carpets-grin", "silver-poets-push", "strange-crabs-confess", "strange-moles-design", + "stupid-carpets-remain", + "tall-mugs-press", + "tasty-falcons-press", "techdocs-eagles-stare", "ten-roses-walk", "thick-readers-invite", + "three-parents-love", + "tricky-ligers-move", "twenty-humans-visit", "violet-mayflies-mix", - "violet-trees-play" + "violet-trees-play", + "weak-shrimps-deny", + "wicked-knives-wink" ] } diff --git a/docs/releases/v1.5.0-next.2-changelog.md b/docs/releases/v1.5.0-next.2-changelog.md new file mode 100644 index 0000000000..4a17a46a24 --- /dev/null +++ b/docs/releases/v1.5.0-next.2-changelog.md @@ -0,0 +1,791 @@ +# Release v1.5.0-next.2 + +## @backstage/core-components@0.11.0-next.2 + +### Minor Changes + +- d0eefc499a: Made the `to` prop of `Button` and `Link` more strict, only supporting plain strings. It used to be the case that this prop was unexpectedly too liberal, making it look like we supported the complex `react-router-dom` object form of the parameter as well, which led to unexpected results at runtime. + +## @techdocs/cli@1.2.0-next.2 + +### Minor Changes + +- 855952db53: Added CLI option `--docker-option` to allow passing additional options to the `docker run` command executed my `serve` and `serve:mkdocs`. + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.0-next.0 + +### Minor Changes + +- f7607f9d85: Add new plugin catalog-backend-module-bitbucket-server which adds the `BitbucketServerEntityProvider`. + + The entity provider is meant as a replacement for the `BitbucketDiscoveryProcessor` to be used with Bitbucket Server (Bitbucket Cloud already has a replacement). + + **Before:** + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addProcessor( + BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }), + ); + ``` + + ```yaml + # app-config.yaml + catalog: + locations: + - type: bitbucket-discovery + target: 'https://bitbucket.mycompany.com/projects/*/repos/*/catalog-info.yaml + ``` + + **After:** + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addEntityProvider( + BitbucketServerEntityProvider.fromConfig(env.config, { + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + }), + ); + ``` + + ```yaml + # app-config.yaml + catalog: + providers: + bitbucketServer: + yourProviderId: # identifies your ingested dataset + catalogPath: /catalog-info.yaml # default value + filters: # optional + projectKey: '.*' # optional; RegExp + repoSlug: '.*' # optional; RegExp + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.3.1-next.2 + +## @backstage/plugin-github-issues@0.1.0-next.0 + +### Minor Changes + +- ffd5e47fb5: New plugin for displaying GitHub Issues added + +### Patch Changes + +- b522f49403: Updated dependency `@spotify/prettier-config` to `^14.0.0`. +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-scaffolder-backend@1.5.0-next.2 + +### Minor Changes + +- 692d5d3405: Added `reviewers` and `teamReviewers` parameters to `publish:github:pull-request` action to add reviewers on the pull request created by the action + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.3.1-next.2 + +## @backstage/app-defaults@1.0.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/cli@0.18.1-next.1 + +### Patch Changes + +- fd68d6f138: Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults. + +## @backstage/create-app@0.4.30-next.2 + +### Patch Changes + +- 0174a0a022: Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`. + + To apply this change to your Backstage installation make the following change to your `app-config.yaml` + + ```diff + cors: + origin: http://localhost:3000 + - methods: [GET, POST, PUT, DELETE] + + methods: [GET, POST, PUT, DELETE, PATCH, HEAD] + ``` + +## @backstage/dev-utils@1.0.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/app-defaults@1.0.5-next.1 + - @backstage/integration-react@1.1.3-next.1 + +## @backstage/integration-react@1.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-adr@0.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-search-react@1.0.1-next.1 + +## @backstage/plugin-airbrake@0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/dev-utils@1.0.5-next.1 + +## @backstage/plugin-allure@0.1.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-analytics-module-ga@0.1.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-apache-airflow@0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-api-docs@0.8.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-catalog@1.5.0-next.2 + +## @backstage/plugin-apollo-explorer@0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-auth-backend@0.15.1-next.1 + +### Patch Changes + +- 2d7d6028e1: Updated dependency `@google-cloud/firestore` to `^6.0.0`. + +## @backstage/plugin-azure-devops@0.1.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-badges@0.2.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-bazaar@0.1.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/cli@0.18.1-next.1 + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-catalog@1.5.0-next.2 + +## @backstage/plugin-bitrise@0.1.35-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-catalog@1.5.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-search-react@1.0.1-next.1 + +## @backstage/plugin-catalog-backend@1.3.1-next.2 + +### Patch Changes + +- 059ae348b4: Use the non-deprecated form of table.unique in knex + +## @backstage/plugin-catalog-backend-module-github@0.1.6-next.2 + +### Patch Changes + +- 97f0a37378: Improved support for wildcards in `catalogPath` +- Updated dependencies + - @backstage/plugin-catalog-backend@1.3.1-next.2 + +## @backstage/plugin-catalog-backend-module-gitlab@0.1.6-next.1 + +### Patch Changes + +- 24979413a4: Enhancing GitLab provider with filtering projects by pattern RegExp + + ```yaml + providers: + gitlab: + stg: + host: gitlab.stg.company.io + branch: main + projectPattern: 'john/' # new option + entityFilename: template.yaml + ``` + + With the aforementioned parameter you can filter projects, and keep only who belongs to the namespace "john". + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.3.1-next.2 + +## @backstage/plugin-catalog-graph@0.2.20-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-catalog-import@0.8.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + +## @backstage/plugin-catalog-react@1.1.3-next.2 + +### Patch Changes + +- 44e691a7f9: Modify description column to not use auto width. +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-circleci@0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-cloudbuild@0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-code-climate@0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-code-coverage@0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-codescene@0.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-config-schema@0.1.31-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-cost-insights@0.11.30-next.1 + +### Patch Changes + +- b746eca638: Make `products` field optional in the config +- daf4b33e34: Add name property to Group +- Updated dependencies + - @backstage/plugin-cost-insights-common@0.1.1-next.0 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-cost-insights-common@0.1.1-next.0 + +### Patch Changes + +- daf4b33e34: Add name property to Group + +## @backstage/plugin-dynatrace@0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-explore@0.3.39-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-firehydrant@0.1.25-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-fossa@0.2.40-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-gcalendar@0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-gcp-projects@0.3.27-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-git-release-manager@0.3.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-github-actions@0.5.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-github-deployments@0.1.39-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + +## @backstage/plugin-github-pull-requests-board@0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-gitops-profiles@0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-gocd@0.1.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-graphiql@0.2.40-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-home@0.4.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-stack-overflow@0.1.4-next.1 + +## @backstage/plugin-ilert@0.1.34-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-jenkins@0.7.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-kafka@0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-kubernetes@0.7.1-next.2 + +### Patch Changes + +- f563b86a5b: Adds namespace column to Kubernetes error reporting table +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-kubernetes-backend@0.7.1-next.1 + +### Patch Changes + +- 0cd87cf30d: Added a new `customResources` field to the ClusterDetails interface, in order to specify (override) custom resources per cluster + +## @backstage/plugin-lighthouse@0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-newrelic@0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-newrelic-dashboard@0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-org@0.5.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-pagerduty@0.5.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-periskop@0.1.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-rollbar@0.4.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-scaffolder@1.5.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + +## @backstage/plugin-search@1.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-search-react@1.0.1-next.1 + +## @backstage/plugin-search-react@1.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-sentry@0.4.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-shortcuts@0.3.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-sonarqube@0.4.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-splunk-on-call@0.3.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-stack-overflow@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-home@0.4.24-next.2 + +## @backstage/plugin-tech-insights@0.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-tech-radar@0.5.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-techdocs@1.3.1-next.2 + +### Patch Changes + +- 8acb22205c: Scroll techdocs navigation into focus and expand any nested navigation items. +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-search-react@1.0.1-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs@1.3.1-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-catalog@1.5.0-next.2 + - @backstage/plugin-search-react@1.0.1-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + +## @backstage/plugin-techdocs-react@1.0.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-todo@0.2.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-user-settings@0.4.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-vault@0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + +## @backstage/plugin-xcmetrics@0.2.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + +## example-app@0.2.74-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes@0.7.1-next.2 + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/plugin-cost-insights@0.11.30-next.1 + - @backstage/cli@0.18.1-next.1 + - @backstage/plugin-techdocs@1.3.1-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/app-defaults@1.0.5-next.1 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-airbrake@0.3.8-next.1 + - @backstage/plugin-apache-airflow@0.2.1-next.1 + - @backstage/plugin-api-docs@0.8.8-next.2 + - @backstage/plugin-azure-devops@0.1.24-next.1 + - @backstage/plugin-badges@0.2.32-next.1 + - @backstage/plugin-catalog-graph@0.2.20-next.1 + - @backstage/plugin-catalog-import@0.8.11-next.1 + - @backstage/plugin-circleci@0.3.8-next.1 + - @backstage/plugin-cloudbuild@0.3.8-next.1 + - @backstage/plugin-code-coverage@0.2.1-next.1 + - @backstage/plugin-dynatrace@0.1.2-next.1 + - @backstage/plugin-explore@0.3.39-next.1 + - @backstage/plugin-gcalendar@0.3.4-next.1 + - @backstage/plugin-gcp-projects@0.3.27-next.1 + - @backstage/plugin-github-actions@0.5.8-next.1 + - @backstage/plugin-gocd@0.1.14-next.1 + - @backstage/plugin-graphiql@0.2.40-next.1 + - @backstage/plugin-home@0.4.24-next.2 + - @backstage/plugin-jenkins@0.7.7-next.2 + - @backstage/plugin-kafka@0.3.8-next.1 + - @backstage/plugin-lighthouse@0.3.8-next.1 + - @backstage/plugin-newrelic@0.3.26-next.1 + - @backstage/plugin-newrelic-dashboard@0.2.1-next.1 + - @backstage/plugin-org@0.5.8-next.1 + - @backstage/plugin-pagerduty@0.5.1-next.1 + - @backstage/plugin-rollbar@0.4.8-next.1 + - @backstage/plugin-scaffolder@1.5.0-next.2 + - @backstage/plugin-search@1.0.1-next.1 + - @backstage/plugin-search-react@1.0.1-next.1 + - @backstage/plugin-sentry@0.4.1-next.1 + - @backstage/plugin-shortcuts@0.3.0-next.1 + - @backstage/plugin-stack-overflow@0.1.4-next.1 + - @backstage/plugin-tech-insights@0.2.4-next.1 + - @backstage/plugin-tech-radar@0.5.15-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.2 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + - @backstage/plugin-todo@0.2.10-next.1 + - @backstage/plugin-user-settings@0.4.7-next.1 + +## techdocs-cli-embedded-app@0.2.73-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.18.1-next.1 + - @backstage/plugin-techdocs@1.3.1-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/app-defaults@1.0.5-next.1 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-catalog@1.5.0-next.2 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + +## @internal/plugin-todo-list@1.0.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 diff --git a/package.json b/package.json index 23e847f49f..324b2e811c 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.5.0-next.1", + "version": "1.5.0-next.2", "dependencies": { "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.17.11", diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 8d7b236eb5..1307046de3 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/app-defaults +## 1.0.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 1.0.5-next.0 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index f941aeb5a9..ecb89a5871 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.5-next.0", + "version": "1.0.5-next.1", "private": false, "publishConfig": { "access": "public", @@ -33,7 +33,7 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/plugin-permission-react": "^0.4.4-next.0", @@ -46,7 +46,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 002ea41927..5f5cd2c5f5 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,57 @@ # example-app +## 0.2.74-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes@0.7.1-next.2 + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/plugin-cost-insights@0.11.30-next.1 + - @backstage/cli@0.18.1-next.1 + - @backstage/plugin-techdocs@1.3.1-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/app-defaults@1.0.5-next.1 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-airbrake@0.3.8-next.1 + - @backstage/plugin-apache-airflow@0.2.1-next.1 + - @backstage/plugin-api-docs@0.8.8-next.2 + - @backstage/plugin-azure-devops@0.1.24-next.1 + - @backstage/plugin-badges@0.2.32-next.1 + - @backstage/plugin-catalog-graph@0.2.20-next.1 + - @backstage/plugin-catalog-import@0.8.11-next.1 + - @backstage/plugin-circleci@0.3.8-next.1 + - @backstage/plugin-cloudbuild@0.3.8-next.1 + - @backstage/plugin-code-coverage@0.2.1-next.1 + - @backstage/plugin-dynatrace@0.1.2-next.1 + - @backstage/plugin-explore@0.3.39-next.1 + - @backstage/plugin-gcalendar@0.3.4-next.1 + - @backstage/plugin-gcp-projects@0.3.27-next.1 + - @backstage/plugin-github-actions@0.5.8-next.1 + - @backstage/plugin-gocd@0.1.14-next.1 + - @backstage/plugin-graphiql@0.2.40-next.1 + - @backstage/plugin-home@0.4.24-next.2 + - @backstage/plugin-jenkins@0.7.7-next.2 + - @backstage/plugin-kafka@0.3.8-next.1 + - @backstage/plugin-lighthouse@0.3.8-next.1 + - @backstage/plugin-newrelic@0.3.26-next.1 + - @backstage/plugin-newrelic-dashboard@0.2.1-next.1 + - @backstage/plugin-org@0.5.8-next.1 + - @backstage/plugin-pagerduty@0.5.1-next.1 + - @backstage/plugin-rollbar@0.4.8-next.1 + - @backstage/plugin-scaffolder@1.5.0-next.2 + - @backstage/plugin-search@1.0.1-next.1 + - @backstage/plugin-search-react@1.0.1-next.1 + - @backstage/plugin-sentry@0.4.1-next.1 + - @backstage/plugin-shortcuts@0.3.0-next.1 + - @backstage/plugin-stack-overflow@0.1.4-next.1 + - @backstage/plugin-tech-insights@0.2.4-next.1 + - @backstage/plugin-tech-radar@0.5.15-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.2 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + - @backstage/plugin-todo@0.2.10-next.1 + - @backstage/plugin-user-settings@0.4.7-next.1 + ## 0.2.74-next.1 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 8fdbce600d..2e97049094 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,65 +1,65 @@ { "name": "example-app", - "version": "0.2.74-next.1", + "version": "0.2.74-next.2", "private": true, "backstage": { "role": "frontend" }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.5-next.0", + "@backstage/app-defaults": "^1.0.5-next.1", "@backstage/catalog-model": "^1.1.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/config": "^1.0.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-airbrake": "^0.3.8-next.0", - "@backstage/plugin-api-docs": "^0.8.8-next.1", - "@backstage/plugin-azure-devops": "^0.1.24-next.0", - "@backstage/plugin-apache-airflow": "^0.2.1-next.0", - "@backstage/plugin-badges": "^0.2.32-next.0", + "@backstage/integration-react": "^1.1.3-next.1", + "@backstage/plugin-airbrake": "^0.3.8-next.1", + "@backstage/plugin-api-docs": "^0.8.8-next.2", + "@backstage/plugin-azure-devops": "^0.1.24-next.1", + "@backstage/plugin-apache-airflow": "^0.2.1-next.1", + "@backstage/plugin-badges": "^0.2.32-next.1", "@backstage/plugin-catalog-common": "^1.0.5-next.0", - "@backstage/plugin-catalog-graph": "^0.2.20-next.0", - "@backstage/plugin-catalog-import": "^0.8.11-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", - "@backstage/plugin-circleci": "^0.3.8-next.0", - "@backstage/plugin-cloudbuild": "^0.3.8-next.0", - "@backstage/plugin-code-coverage": "^0.2.1-next.0", - "@backstage/plugin-cost-insights": "^0.11.30-next.0", - "@backstage/plugin-dynatrace": "^0.1.2-next.0", - "@backstage/plugin-explore": "^0.3.39-next.0", - "@backstage/plugin-gcalendar": "^0.3.4-next.0", - "@backstage/plugin-gcp-projects": "^0.3.27-next.0", - "@backstage/plugin-github-actions": "^0.5.8-next.0", - "@backstage/plugin-gocd": "^0.1.14-next.0", - "@backstage/plugin-graphiql": "^0.2.40-next.0", - "@backstage/plugin-home": "^0.4.24-next.1", - "@backstage/plugin-jenkins": "^0.7.7-next.1", - "@backstage/plugin-kafka": "^0.3.8-next.0", - "@backstage/plugin-kubernetes": "^0.7.1-next.1", - "@backstage/plugin-lighthouse": "^0.3.8-next.0", - "@backstage/plugin-newrelic": "^0.3.26-next.0", - "@backstage/plugin-newrelic-dashboard": "^0.2.1-next.0", - "@backstage/plugin-org": "^0.5.8-next.0", - "@backstage/plugin-pagerduty": "0.5.1-next.0", + "@backstage/plugin-catalog-graph": "^0.2.20-next.1", + "@backstage/plugin-catalog-import": "^0.8.11-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-circleci": "^0.3.8-next.1", + "@backstage/plugin-cloudbuild": "^0.3.8-next.1", + "@backstage/plugin-code-coverage": "^0.2.1-next.1", + "@backstage/plugin-cost-insights": "^0.11.30-next.1", + "@backstage/plugin-dynatrace": "^0.1.2-next.1", + "@backstage/plugin-explore": "^0.3.39-next.1", + "@backstage/plugin-gcalendar": "^0.3.4-next.1", + "@backstage/plugin-gcp-projects": "^0.3.27-next.1", + "@backstage/plugin-github-actions": "^0.5.8-next.1", + "@backstage/plugin-gocd": "^0.1.14-next.1", + "@backstage/plugin-graphiql": "^0.2.40-next.1", + "@backstage/plugin-home": "^0.4.24-next.2", + "@backstage/plugin-jenkins": "^0.7.7-next.2", + "@backstage/plugin-kafka": "^0.3.8-next.1", + "@backstage/plugin-kubernetes": "^0.7.1-next.2", + "@backstage/plugin-lighthouse": "^0.3.8-next.1", + "@backstage/plugin-newrelic": "^0.3.26-next.1", + "@backstage/plugin-newrelic-dashboard": "^0.2.1-next.1", + "@backstage/plugin-org": "^0.5.8-next.1", + "@backstage/plugin-pagerduty": "0.5.1-next.1", "@backstage/plugin-permission-react": "^0.4.4-next.0", - "@backstage/plugin-rollbar": "^0.4.8-next.0", - "@backstage/plugin-scaffolder": "^1.5.0-next.1", - "@backstage/plugin-search": "^1.0.1-next.0", + "@backstage/plugin-rollbar": "^0.4.8-next.1", + "@backstage/plugin-scaffolder": "^1.5.0-next.2", + "@backstage/plugin-search": "^1.0.1-next.1", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.0", - "@backstage/plugin-sentry": "^0.4.1-next.0", - "@backstage/plugin-shortcuts": "^0.3.0-next.0", - "@backstage/plugin-stack-overflow": "^0.1.4-next.0", - "@backstage/plugin-tech-insights": "^0.2.4-next.0", - "@backstage/plugin-tech-radar": "^0.5.15-next.0", - "@backstage/plugin-techdocs": "^1.3.1-next.1", - "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.3-next.1", - "@backstage/plugin-techdocs-react": "^1.0.3-next.1", - "@backstage/plugin-todo": "^0.2.10-next.0", - "@backstage/plugin-user-settings": "^0.4.7-next.0", + "@backstage/plugin-search-react": "^1.0.1-next.1", + "@backstage/plugin-sentry": "^0.4.1-next.1", + "@backstage/plugin-shortcuts": "^0.3.0-next.1", + "@backstage/plugin-stack-overflow": "^0.1.4-next.1", + "@backstage/plugin-tech-insights": "^0.2.4-next.1", + "@backstage/plugin-tech-radar": "^0.5.15-next.1", + "@backstage/plugin-techdocs": "^1.3.1-next.2", + "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.3-next.2", + "@backstage/plugin-techdocs-react": "^1.0.3-next.2", + "@backstage/plugin-todo": "^0.2.10-next.1", + "@backstage/plugin-user-settings": "^0.4.7-next.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index f2e1af08e1..b8b8b4a66b 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/cli +## 0.18.1-next.1 + +### Patch Changes + +- fd68d6f138: Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults. + ## 0.18.1-next.0 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index e8108f5f7d..b3b2835f0c 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.18.1-next.0", + "version": "0.18.1-next.1", "private": false, "publishConfig": { "access": "public" @@ -129,9 +129,9 @@ "@backstage/backend-common": "^0.15.0-next.0", "@backstage/config": "^1.0.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", "@types/diff": "^5.0.0", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 35dd20153d..95881c5f7f 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/core-components +## 0.11.0-next.2 + +### Minor Changes + +- d0eefc499a: Made the `to` prop of `Button` and `Link` more strict, only supporting plain strings. It used to be the case that this prop was unexpectedly too liberal, making it look like we supported the complex `react-router-dom` object form of the parameter as well, which led to unexpected results at runtime. + ## 0.10.1-next.1 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index e8aae8d2fa..62c0a90179 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.10.1-next.1", + "version": "0.11.0-next.2", "private": false, "publishConfig": { "access": "public", @@ -80,7 +80,7 @@ }, "devDependencies": { "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index d3180a9332..675bcb7eed 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/create-app +## 0.4.30-next.2 + +### Patch Changes + +- 0174a0a022: Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`. + + To apply this change to your Backstage installation make the following change to your `app-config.yaml` + + ```diff + cors: + origin: http://localhost:3000 + - methods: [GET, POST, PUT, DELETE] + + methods: [GET, POST, PUT, DELETE, PATCH, HEAD] + ``` + ## 0.4.30-next.1 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 8b5daf3030..681650022b 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.30-next.1", + "version": "0.4.30-next.2", "private": false, "publishConfig": { "access": "public" diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index c6a51cc55b..cc0459d05a 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/dev-utils +## 1.0.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/app-defaults@1.0.5-next.1 + - @backstage/integration-react@1.1.3-next.1 + ## 1.0.5-next.0 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 0e5bce2f02..37155f0837 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "1.0.5-next.0", + "version": "1.0.5-next.1", "private": false, "publishConfig": { "access": "public", @@ -33,13 +33,13 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/app-defaults": "^1.0.5-next.0", + "@backstage/app-defaults": "^1.0.5-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/catalog-model": "^1.1.0", - "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/integration-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/test-utils": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -59,7 +59,7 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@types/jest": "^26.0.7", "@types/node": "^16.0.0" }, diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 0114c5fb0b..1a90e277d0 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/integration-react +## 1.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 1.1.3-next.0 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index f4d9e3a0d1..ac74dd63fd 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.1.3-next.0", + "version": "1.1.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,7 +25,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.0", "@backstage/theme": "^0.2.16", @@ -38,8 +38,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/cli": "^0.18.1-next.1", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 1b05441c42..5aad4f8d33 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,18 @@ # techdocs-cli-embedded-app +## 0.2.73-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.18.1-next.1 + - @backstage/plugin-techdocs@1.3.1-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/app-defaults@1.0.5-next.1 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-catalog@1.5.0-next.2 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + ## 0.2.73-next.0 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 9d294b5c04..f5af90160f 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.73-next.0", + "version": "0.2.73-next.1", "private": true, "backstage": { "role": "frontend" }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.5-next.0", + "@backstage/app-defaults": "^1.0.5-next.1", "@backstage/catalog-model": "^1.1.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/config": "^1.0.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.0", - "@backstage/plugin-techdocs": "^1.3.1-next.0", - "@backstage/plugin-techdocs-react": "^1.0.3-next.0", + "@backstage/integration-react": "^1.1.3-next.1", + "@backstage/plugin-catalog": "^1.5.0-next.2", + "@backstage/plugin-techdocs": "^1.3.1-next.2", + "@backstage/plugin-techdocs-react": "^1.0.3-next.2", "@backstage/test-utils": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.11.0", @@ -30,7 +30,7 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index feda80db73..53296a72d1 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,11 @@ # @techdocs/cli +## 1.2.0-next.2 + +### Minor Changes + +- 855952db53: Added CLI option `--docker-option` to allow passing additional options to the `docker run` command executed my `serve` and `serve:mkdocs`. + ## 1.1.4-next.1 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index c47270ed70..7df37b08fc 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "Utility CLI for managing TechDocs sites in Backstage.", - "version": "1.1.4-next.1", + "version": "1.2.0-next.2", "private": false, "publishConfig": { "access": "public" @@ -37,7 +37,7 @@ "techdocs-cli": "bin/techdocs-cli" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@types/commander": "^2.12.2", "@types/fs-extra": "^9.0.6", "@types/http-proxy": "^1.17.4", diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md index 12feb4e6cd..0ba1d96995 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-adr +## 0.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-search-react@1.0.1-next.1 + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 4fd6c399cd..e9c2f05e0f 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "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,13 +22,13 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration-react": "^1.1.3-next.0", + "@backstage/integration-react": "^1.1.3-next.1", "@backstage/plugin-adr-common": "^0.1.3-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.0", + "@backstage/plugin-search-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -44,9 +44,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index fefe587abe..db6227fbc6 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-airbrake +## 0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/dev-utils@1.0.5-next.1 + ## 0.3.8-next.0 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index b4744d0f80..cd8149c4b3 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.8-next.0", + "version": "0.3.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,10 +24,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/test-utils": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/app-defaults": "^1.0.5-next.0", - "@backstage/cli": "^0.18.1-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/app-defaults": "^1.0.5-next.1", + "@backstage/cli": "^0.18.1-next.1", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md index 62a17f240b..6e891020f4 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-allure +## 0.1.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.24-next.0 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index cf32d42566..918cb165a6 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-allure", "description": "A Backstage plugin that integrates with Allure", - "version": "0.1.24-next.0", + "version": "0.1.24-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,9 +26,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@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.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md index 6ea8760a2b..6f07805377 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-analytics-module-ga +## 0.1.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.1.19-next.0 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 99c159b474..e11b0b3be1 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-ga", - "version": "0.1.19-next.0", + "version": "0.1.19-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,7 +25,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -38,9 +38,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md index eeea48e192..e504184203 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-apache-airflow +## 0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.2.1-next.0 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 9b72ec0b20..433a340a6b 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apache-airflow", - "version": "0.2.1-next.0", + "version": "0.2.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -36,9 +36,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index fbde937344..fb0d41b7c1 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-api-docs +## 0.8.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-catalog@1.5.0-next.2 + ## 0.8.8-next.1 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index bac0fd8e39..d1210c9646 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.8-next.1", + "version": "0.8.8-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,10 +35,10 @@ "dependencies": { "@asyncapi/react-component": "1.0.0-next.40", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.1", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", + "@backstage/plugin-catalog": "^1.5.0-next.2", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -57,9 +57,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/apollo-explorer/CHANGELOG.md b/plugins/apollo-explorer/CHANGELOG.md index abc2865c01..c0623c981c 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-apollo-explorer +## 0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.1.1-next.0 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index 67e6394adf..b26391eb2c 100644 --- a/plugins/apollo-explorer/package.json +++ b/plugins/apollo-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apollo-explorer", - "version": "0.1.1-next.0", + "version": "0.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,7 +22,7 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", @@ -36,9 +36,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index fda3eb1a6c..bc6460a1dd 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-auth-backend +## 0.15.1-next.1 + +### Patch Changes + +- 2d7d6028e1: Updated dependency `@google-cloud/firestore` to `^6.0.0`. + ## 0.15.1-next.0 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 09e5549810..70300fd81a 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.15.1-next.0", + "version": "0.15.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -77,7 +77,7 @@ }, "devDependencies": { "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/express-session": "^1.17.2", diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md index baed6b3958..01430bc032 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-azure-devops +## 0.1.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.24-next.0 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index c0f4f89354..6766b48608 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.1.24-next.0", + "version": "0.1.24-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,11 +31,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/plugin-azure-devops-common": "^0.2.4", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index 67ca470268..9da02587f3 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-badges +## 0.2.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.2.32-next.0 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index 4c93e4474a..e8bb6c3714 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges", "description": "A Backstage plugin that generates README badges for your entities", - "version": "0.2.32-next.0", + "version": "0.2.32-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,10 +31,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,9 +46,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index d99afa93ec..d19601a60a 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-bazaar +## 0.1.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/cli@0.18.1-next.1 + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-catalog@1.5.0-next.2 + ## 0.1.23-next.0 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 9ddb42d9e8..d16a3b3192 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.1.23-next.0", + "version": "0.1.23-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,11 +26,11 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/cli": "^0.18.1-next.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/cli": "^0.18.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog": "^1.5.0-next.2", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -47,8 +47,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/cli": "^0.18.1-next.1", + "@backstage/dev-utils": "^1.0.5-next.1", "@testing-library/jest-dom": "^5.10.1", "cross-fetch": "^3.1.5" }, diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index 0f4f2cb893..ce6706f368 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-bitrise +## 0.1.35-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.35-next.0 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index f6e2b5bebf..60f74d3cf3 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitrise", "description": "A Backstage plugin that integrates towards Bitrise", - "version": "0.1.35-next.0", + "version": "0.1.35-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,9 +25,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index 721ebf9ec1..11a6e70e0b 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1 +1,58 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server + +## 0.1.0-next.0 + +### Minor Changes + +- f7607f9d85: Add new plugin catalog-backend-module-bitbucket-server which adds the `BitbucketServerEntityProvider`. + + The entity provider is meant as a replacement for the `BitbucketDiscoveryProcessor` to be used with Bitbucket Server (Bitbucket Cloud already has a replacement). + + **Before:** + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addProcessor( + BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }), + ); + ``` + + ```yaml + # app-config.yaml + catalog: + locations: + - type: bitbucket-discovery + target: 'https://bitbucket.mycompany.com/projects/*/repos/*/catalog-info.yaml + ``` + + **After:** + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addEntityProvider( + BitbucketServerEntityProvider.fromConfig(env.config, { + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + }), + ); + ``` + + ```yaml + # app-config.yaml + catalog: + providers: + bitbucketServer: + yourProviderId: # identifies your ingested dataset + catalogPath: /catalog-info.yaml # default value + filters: # optional + projectKey: '.*' # optional; RegExp + repoSlug: '.*' # optional; RegExp + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.3.1-next.2 diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 52192357f4..646a31e53f 100644 --- a/plugins/catalog-backend-module-bitbucket-server/package.json +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-server", - "version": "0.0.0", + "version": "0.1.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,14 +38,14 @@ "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/plugin-catalog-backend": "^1.3.1-next.2", "cross-fetch": "^3.1.5", "uuid": "^8.0.0", "winston": "^3.2.1" }, "devDependencies": { "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "msw": "^0.44.0" }, "files": [ diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index 7403016bf1..2cabe628db 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-github +## 0.1.6-next.2 + +### Patch Changes + +- 97f0a37378: Improved support for wildcards in `catalogPath` +- Updated dependencies + - @backstage/plugin-catalog-backend@1.3.1-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 53ef808262..29405e38c2 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -39,7 +39,7 @@ "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.1", - "@backstage/plugin-catalog-backend": "^1.3.1-next.1", + "@backstage/plugin-catalog-backend": "^1.3.1-next.2", "@backstage/types": "^1.0.0", "@octokit/graphql": "^5.0.0", "lodash": "^4.17.21", @@ -50,7 +50,7 @@ }, "devDependencies": { "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-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 d123fb01bc..ad9259067f 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.1.6-next.1 + +### Patch Changes + +- 24979413a4: Enhancing GitLab provider with filtering projects by pattern RegExp + + ```yaml + providers: + gitlab: + stg: + host: gitlab.stg.company.io + branch: main + projectPattern: 'john/' # new option + entityFilename: template.yaml + ``` + + With the aforementioned parameter you can filter projects, and keep only who belongs to the namespace "john". + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.3.1-next.2 + ## 0.1.6-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 2e30380f0f..431dd69c3c 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.6-next.0", + "version": "0.1.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -39,7 +39,7 @@ "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/plugin-catalog-backend": "^1.3.1-next.2", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", "msw": "^0.44.0", @@ -49,7 +49,7 @@ }, "devDependencies": { "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@types/lodash": "^4.14.151", "@types/uuid": "^8.0.0" }, diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index f7a42d0bf5..f17e7f85cc 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-catalog-backend +## 1.3.1-next.2 + +### Patch Changes + +- 059ae348b4: Use the non-deprecated form of table.unique in knex + ## 1.3.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 63ef5bc397..6cbdd55387 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.3.1-next.1", + "version": "1.3.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -71,7 +71,7 @@ }, "devDependencies": { "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/plugin-permission-common": "^0.6.3", "@backstage/plugin-search-backend-node": "1.0.1-next.0", "@types/core-js": "^2.5.4", diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 6df82d987c..d0bb340559 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-graph +## 0.2.20-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.2.20-next.0 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index a46d8b5ec3..5dde4c10aa 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.20-next.0", + "version": "0.2.20-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,9 +26,9 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@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.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", + "@backstage/plugin-catalog": "^1.5.0-next.2", "@backstage/test-utils": "^1.1.3-next.0", "@backstage/types": "^1.0.0", "@testing-library/jest-dom": "^5.10.1", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 18f74d447f..38394bb798 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-import +## 0.8.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + ## 0.8.11-next.0 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 61e2ecc2a6..7e48bd8c77 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.11-next.0", + "version": "0.8.11-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,12 +37,12 @@ "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/integration-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -60,9 +60,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index f9a6b39e96..27af75bfbf 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-react +## 1.1.3-next.2 + +### Patch Changes + +- 44e691a7f9: Modify description column to not use auto width. +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 1.1.3-next.1 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index b5ebf51c78..f778924647 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.1.3-next.1", + "version": "1.1.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,7 +36,7 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.1", @@ -63,7 +63,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/plugin-catalog-common": "^1.0.5-next.0", "@backstage/plugin-scaffolder-common": "^1.1.2", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index ac7c8bb06f..efcc843095 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog +## 1.5.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-search-react@1.0.1-next.1 + ## 1.5.0-next.1 ### Minor Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 04d9b98701..78365d305f 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.5.0-next.1", + "version": "1.5.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,14 +36,14 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/integration-react": "^1.1.3-next.0", + "@backstage/integration-react": "^1.1.3-next.1", "@backstage/plugin-catalog-common": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.0", + "@backstage/plugin-search-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", @@ -61,9 +61,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/plugin-permission-react": "^0.4.4-next.0", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index 36e078b38d..32b13f71d9 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-circleci +## 0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.3.8-next.0 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index a4add36d06..29c8826022 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-circleci", "description": "A Backstage plugin that integrates towards Circle CI", - "version": "0.3.8-next.0", + "version": "0.3.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -55,9 +55,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index ef60bc0855..d9afe72a02 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-cloudbuild +## 0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.3.8-next.0 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index d6ffd896a1..76d4a7e4a3 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cloudbuild", "description": "A Backstage plugin that integrates towards Google Cloud Build", - "version": "0.3.8-next.0", + "version": "0.3.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,9 +35,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -52,9 +52,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md index 5addc18681..b679f10e8c 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-code-climate +## 0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.8-next.0 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 53c2d0f9e0..a8821da11f 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-code-climate", - "version": "0.1.8-next.0", + "version": "0.1.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,9 +24,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,8 +40,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/cli": "^0.18.1-next.1", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index 7c4b2f8541..aedf29b796 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-code-coverage +## 0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.2.1-next.0 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index d5adc75d4f..15eab12436 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage", "description": "A Backstage plugin that helps you keep track of your code coverage", - "version": "0.2.1-next.0", + "version": "0.2.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,10 +26,10 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,9 +46,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md index 9a859ca0dc..d4d4d899ca 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-codescene +## 0.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 519839b9c9..a90ad0f31d 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.3-next.0", + "version": "0.1.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", @@ -38,9 +38,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 12a6a1f4e8..b3d61041f5 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-config-schema +## 0.1.31-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.1.31-next.0 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 9a04af2abf..560b7e5b36 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-config-schema", "description": "A Backstage plugin that lets you browse the configuration schema of your app", - "version": "0.1.31-next.0", + "version": "0.1.31-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,7 +25,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", @@ -41,9 +41,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/cost-insights-common/CHANGELOG.md b/plugins/cost-insights-common/CHANGELOG.md index c96555d6af..41102c5229 100644 --- a/plugins/cost-insights-common/CHANGELOG.md +++ b/plugins/cost-insights-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-cost-insights-common +## 0.1.1-next.0 + +### Patch Changes + +- daf4b33e34: Add name property to Group + ## 0.1.0 ### Minor Changes diff --git a/plugins/cost-insights-common/package.json b/plugins/cost-insights-common/package.json index b06b7032e0..8a0d597243 100644 --- a/plugins/cost-insights-common/package.json +++ b/plugins/cost-insights-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights-common", "description": "Common functionalities for the cost-insights plugin", - "version": "0.1.0", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,7 +34,7 @@ }, "dependencies": {}, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1-next.1" }, "files": [ "dist" diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index cf24d21df7..52e3730795 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-cost-insights +## 0.11.30-next.1 + +### Patch Changes + +- b746eca638: Make `products` field optional in the config +- daf4b33e34: Add name property to Group +- Updated dependencies + - @backstage/plugin-cost-insights-common@0.1.1-next.0 + - @backstage/core-components@0.11.0-next.2 + ## 0.11.30-next.0 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index dadf992c5d..05c736a234 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights", "description": "A Backstage plugin that helps you keep track of your cloud spend", - "version": "0.11.30-next.0", + "version": "0.11.30-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-cost-insights-common": "^0.1.0", + "@backstage/plugin-cost-insights-common": "^0.1.1-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -61,9 +61,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md index 6148b15877..33bf8dddd0 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-dynatrace +## 0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index 673a9d07bc..e2ac3f0aaa 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "0.1.2-next.0", + "version": "0.1.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", @@ -37,9 +37,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index e1d74010ec..821cd49d46 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/plugin-todo-list +## 1.0.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 1.0.4-next.0 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 4fdaf42140..79920a97b1 100644 --- a/plugins/example-todo-list/package.json +++ b/plugins/example-todo-list/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list", - "version": "1.0.4-next.0", + "version": "1.0.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -36,9 +36,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md index d3663aa82c..7fdae5d5ae 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-explore +## 0.3.39-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.3.39-next.0 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 9d10bb182c..782d36504f 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore", "description": "A Backstage plugin for building an exploration page of your software ecosystem", - "version": "0.3.39-next.0", + "version": "0.3.39-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,9 +35,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-explore-react": "^0.0.20-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index e52b331db8..c1c5155008 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-firehydrant +## 0.1.25-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.25-next.0 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 4cfaa1be32..0932896f17 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-firehydrant", "description": "A Backstage plugin that integrates towards FireHydrant", - "version": "0.1.25-next.0", + "version": "0.1.25-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,9 +25,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -39,9 +39,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index 67b0e32bba..409e4a2f25 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-fossa +## 0.2.40-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.2.40-next.0 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index e0946d30a3..4a094615ff 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-fossa", "description": "A Backstage plugin that integrates towards FOSSA", - "version": "0.2.40-next.0", + "version": "0.2.40-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,10 +36,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md index 5b171e4e56..dd07805e18 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-gcalendar +## 0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.3.4-next.0 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index e55268a4eb..7f711beecf 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.4-next.0", + "version": "0.3.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,7 +22,7 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md index 1e5e274bc8..a1cb764e11 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-gcp-projects +## 0.3.27-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.3.27-next.0 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 824fbd80ed..1470873a86 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gcp-projects", "description": "A Backstage plugin that helps you manage projects in GCP", - "version": "0.3.27-next.0", + "version": "0.3.27-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/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -47,9 +47,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md index 1a5bb54447..13345e1e5b 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.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.3.21-next.0 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 83710dc5e1..a0a6f9f486 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.21-next.0", + "version": "0.3.21-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.0", "@backstage/theme": "^0.2.16", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index 0732f6bfb7..05faee61df 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-github-actions +## 0.5.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.5.8-next.0 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 57a4789f3e..fb30598057 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.8-next.0", + "version": "0.5.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,10 +37,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -55,9 +55,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 436e329263..dad77b8944 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-github-deployments +## 0.1.39-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + ## 0.1.39-next.0 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 504b65fff4..15a9343632 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.39-next.0", + "version": "0.1.39-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,12 +25,12 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/integration-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md new file mode 100644 index 0000000000..ff9d0860aa --- /dev/null +++ b/plugins/github-issues/CHANGELOG.md @@ -0,0 +1,14 @@ +# @backstage/plugin-github-issues + +## 0.1.0-next.0 + +### Minor Changes + +- ffd5e47fb5: New plugin for displaying GitHub Issues added + +### Patch Changes + +- b522f49403: Updated dependency `@spotify/prettier-config` to `^14.0.0`. +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 35f6a1aa55..109c825994 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-issues", - "version": "0.0.0", + "version": "0.1.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,10 +24,10 @@ "prettier": "@spotify/prettier-config", "dependencies": { "@backstage/catalog-model": "^1.0.3", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md index 985380782f..e797a79a9b 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index ba19ccf68b..566e8e5942 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-pull-requests-board", "description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team", - "version": "0.1.2-next.0", + "version": "0.1.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,10 +36,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,8 +49,8 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/cli": "^0.18.1-next.1", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md index ff5dee0460..e3f526e483 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-gitops-profiles +## 0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.3.26-next.0 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 19cd4fdeab..e6d87d83da 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gitops-profiles", "description": "A Backstage plugin that helps you manage GitOps profiles", - "version": "0.3.26-next.0", + "version": "0.3.26-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,7 +35,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -48,9 +48,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index de55f23583..c946ac8c5b 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-gocd +## 0.1.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.14-next.0 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index e36653daf4..e3dd9c7498 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gocd", "description": "A Backstage plugin that integrates towards GoCD", - "version": "0.1.14-next.0", + "version": "0.1.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,10 +32,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md index 5206051fc6..cd9eefb43e 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-graphiql +## 0.2.40-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.2.40-next.0 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 1938ef108e..a23c349946 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.2.40-next.0", + "version": "0.2.40-next.1", "private": false, "publishConfig": { "access": "public", @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 6c25055568..f4535043c0 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-home +## 0.4.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-stack-overflow@0.1.4-next.1 + ## 0.4.24-next.1 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index dbace1bcf6..11e8a75c05 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.24-next.1", + "version": "0.4.24-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,10 +36,10 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", - "@backstage/plugin-stack-overflow": "^0.1.4-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-stack-overflow": "^0.1.4-next.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index 1aeb85d6b6..114b09d5b0 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-ilert +## 0.1.34-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.34-next.0 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index f1e03ad8ae..22e7f14d15 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-ilert", "description": "A Backstage plugin that integrates towards iLert", - "version": "0.1.34-next.0", + "version": "0.1.34-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,10 +25,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index 245dc67b92..299e56ba30 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-jenkins +## 0.7.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.7.7-next.1 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 6ff8f60c16..c4fbdf3e98 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins", "description": "A Backstage plugin that integrates towards Jenkins", - "version": "0.7.7-next.1", + "version": "0.7.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,10 +36,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-jenkins-common": "^0.1.7-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -54,9 +54,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index 5e50d58a98..217ada3545 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-kafka +## 0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.3.8-next.0 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 9beedf324a..341fda9a64 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka", "description": "A Backstage plugin that integrates towards Kafka", - "version": "0.3.8-next.0", + "version": "0.3.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -27,9 +27,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -41,9 +41,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index 7468feadd5..9270a90ed8 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-kubernetes-backend +## 0.7.1-next.1 + +### Patch Changes + +- 0cd87cf30d: Added a new `customResources` field to the ClusterDetails interface, in order to specify (override) custom resources per cluster + ## 0.7.1-next.0 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 1f36ee0fc3..36305e51c9 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-backend", "description": "A Backstage backend plugin that integrates towards Kubernetes", - "version": "0.7.1-next.0", + "version": "0.7.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -63,7 +63,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@types/aws4": "^1.5.1", "aws-sdk-mock": "^5.2.1", "supertest": "^6.1.3" diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 736395425d..f0beee0ae8 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-kubernetes +## 0.7.1-next.2 + +### Patch Changes + +- f563b86a5b: Adds namespace column to Kubernetes error reporting table +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.7.1-next.1 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index efcb553d9b..f7706ef7aa 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.7.1-next.1", + "version": "0.7.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-kubernetes-common": "^0.4.0", "@backstage/theme": "^0.2.16", "@kubernetes/client-node": "^0.17.0", @@ -57,9 +57,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index afe71853b4..f1892b1331 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-lighthouse +## 0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.3.8-next.0 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 89ba839759..96ab8c8e4a 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse", "description": "A Backstage plugin that integrates towards Lighthouse", - "version": "0.3.8-next.0", + "version": "0.3.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,9 +37,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -51,9 +51,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index d027680170..7fc68f473f 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.2.1-next.0 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index 645e1eec5a..9acc2db59b 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic-dashboard", - "version": "0.2.1-next.0", + "version": "0.2.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,18 +24,18 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@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.18.1-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/cli": "^0.18.1-next.1", + "@backstage/dev-utils": "^1.0.5-next.1", "@testing-library/jest-dom": "^5.10.1", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5" diff --git a/plugins/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md index 8e9359798f..b083be62af 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-newrelic +## 0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.3.26-next.0 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 1103a1290b..7a8b91a8a3 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-newrelic", "description": "A Backstage plugin that integrates towards New Relic", - "version": "0.3.26-next.0", + "version": "0.3.26-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,7 +35,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -47,9 +47,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 96b650bdd4..6f3f92cbbd 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-org +## 0.5.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.5.8-next.0 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index 44459af351..9ea320c8f0 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.8-next.0", + "version": "0.5.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,9 +30,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,9 +49,9 @@ }, "devDependencies": { "@backstage/catalog-client": "^1.0.4", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 7ae0109110..0183241c6c 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-pagerduty +## 0.5.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.5.1-next.0 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 9842bdee62..743fad192e 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-pagerduty", "description": "A Backstage plugin that integrates towards PagerDuty", - "version": "0.5.1-next.0", + "version": "0.5.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,10 +35,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md index ce916eb035..f8a7d28341 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-periskop +## 0.1.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.6-next.0 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 132074afff..ce736fda5c 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.6-next.0", + "version": "0.1.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,10 +26,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -42,9 +42,9 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md index 6ad6ef4fb5..59ab29e1c9 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-rollbar +## 0.4.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.4.8-next.0 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index b8211cd17f..81e37f7f4c 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar", "description": "A Backstage plugin that integrates towards Rollbar", - "version": "0.4.8-next.0", + "version": "0.4.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index 07cb50bd5f..7610ccfe49 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-backend +## 1.5.0-next.2 + +### Minor Changes + +- 692d5d3405: Added `reviewers` and `teamReviewers` parameters to `publish:github:pull-request` action to add reviewers on the pull request created by the action + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.3.1-next.2 + ## 1.5.0-next.1 ### Minor Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 27a22f99cf..7fc9211701 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.5.0-next.1", + "version": "1.5.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -41,7 +41,7 @@ "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.1", - "@backstage/plugin-catalog-backend": "^1.3.1-next.1", + "@backstage/plugin-catalog-backend": "^1.3.1-next.2", "@backstage/plugin-scaffolder-common": "^1.1.2", "@backstage/backend-plugin-api": "^0.1.1-next.0", "@backstage/plugin-catalog-node": "^1.0.1-next.0", @@ -80,7 +80,7 @@ }, "devDependencies": { "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-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/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index d69a811811..e96832d732 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder +## 1.5.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + ## 1.5.0-next.1 ### Minor Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 2c2c667c65..164d7172bf 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.5.0-next.1", + "version": "1.5.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,13 +38,13 @@ "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.1", - "@backstage/integration-react": "^1.1.3-next.0", + "@backstage/integration-react": "^1.1.3-next.1", "@backstage/plugin-catalog-common": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-permission-react": "^0.4.4-next.0", "@backstage/plugin-scaffolder-common": "^1.1.2", "@backstage/theme": "^0.2.16", @@ -80,10 +80,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.1", + "@backstage/dev-utils": "^1.0.5-next.1", + "@backstage/plugin-catalog": "^1.5.0-next.2", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index 1c5bc6b2ed..9cf04b88e8 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-search-react +## 1.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index e57816582a..78d039bd8d 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ }, "dependencies": { "@backstage/plugin-search-common": "^1.0.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/version-bridge": "^1.0.1", "@backstage/theme": "^0.2.16", diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index f37169a212..459d34b8e9 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search +## 1.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-search-react@1.0.1-next.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index db3bd9e16d..5743248132 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search", "description": "The Backstage plugin that provides your backstage app with search", - "version": "1.0.1-next.0", + "version": "1.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,12 +35,12 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.0", + "@backstage/plugin-search-react": "^1.0.1-next.1", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", "@backstage/version-bridge": "^1.0.1", @@ -57,9 +57,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index f8f8887ac1..7948162ffd 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-sentry +## 0.4.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.4.1-next.0 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index c36019b179..e9d13f6ad6 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sentry", "description": "A Backstage plugin that integrates towards Sentry", - "version": "0.4.1-next.0", + "version": "0.4.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-table/core": "^3.1.0", "@material-ui/core": "^4.12.2", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/shortcuts/CHANGELOG.md b/plugins/shortcuts/CHANGELOG.md index ddaddfc537..b8a5982006 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-shortcuts +## 0.3.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.3.0-next.0 ### Minor Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index b8b2a8c442..af912276dc 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-shortcuts", "description": "A Backstage plugin that provides a shortcuts feature to the sidebar", - "version": "0.3.0-next.0", + "version": "0.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", @@ -42,9 +42,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index 94bb723bcb..e79c4322fe 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-sonarqube +## 0.4.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.4.0-next.1 ### Minor Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 4d53258bdf..1ec39ec194 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.4.0-next.1", + "version": "0.4.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,9 +37,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index 35cf497a0e..139e6f4884 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-splunk-on-call +## 0.3.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.3.32-next.0 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index f8d588bac0..33d0db4983 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-splunk-on-call", "description": "A Backstage plugin that integrates towards Splunk On-Call", - "version": "0.3.32-next.0", + "version": "0.3.32-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,9 +35,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -51,9 +51,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md index 0a38c211a7..3aa92d3dd6 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-stack-overflow +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + - @backstage/plugin-home@0.4.24-next.2 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 4ca025c346..2367c2c769 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow", - "version": "0.1.4-next.0", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,9 +24,9 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-home": "^0.4.24-next.0", + "@backstage/plugin-home": "^0.4.24-next.2", "@backstage/plugin-search-common": "^1.0.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -42,9 +42,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md index c18f60c696..5c4864405e 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-insights +## 0.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.2.4-next.0 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 5660ff8118..3488f28f2d 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights", - "version": "0.2.4-next.0", + "version": "0.2.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,10 +29,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-tech-insights-common": "^0.2.6-next.0", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", @@ -47,9 +47,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index 77a6efb764..8d2bd23ed6 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-tech-radar +## 0.5.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.5.15-next.0 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 5b05ba3313..5267acfd55 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.15-next.0", + "version": "0.5.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,7 +34,7 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 5dd3c9da8c..9ee8c381a8 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs@1.3.1-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-catalog@1.5.0-next.2 + - @backstage/plugin-search-react@1.0.1-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + ## 1.0.3-next.0 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 217ed5a935..0cddc8c93c 100644 --- a/plugins/techdocs-addons-test-utils/package.json +++ b/plugins/techdocs-addons-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-addons-test-utils", - "version": "1.0.3-next.0", + "version": "1.0.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,14 +32,14 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.0", - "@backstage/plugin-search-react": "^1.0.1-next.0", - "@backstage/plugin-techdocs": "^1.3.1-next.0", - "@backstage/plugin-techdocs-react": "^1.0.3-next.0", + "@backstage/integration-react": "^1.1.3-next.1", + "@backstage/plugin-catalog": "^1.5.0-next.2", + "@backstage/plugin-search-react": "^1.0.1-next.1", + "@backstage/plugin-techdocs": "^1.3.1-next.2", + "@backstage/plugin-techdocs-react": "^1.0.3-next.2", "@backstage/test-utils": "^1.1.3-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", @@ -56,8 +56,8 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/cli": "^0.18.1-next.1", + "@backstage/dev-utils": "^1.0.5-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index 929c851751..f0b9d1578a 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.0.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + ## 1.0.3-next.1 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 61a2b11ea8..5f84ee45c3 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", "description": "Plugin module for contributed TechDocs Addons", - "version": "1.0.3-next.1", + "version": "1.0.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,11 +34,11 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration": "^1.3.0-next.1", - "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-techdocs-react": "^1.0.3-next.1", + "@backstage/integration-react": "^1.1.3-next.1", + "@backstage/plugin-techdocs-react": "^1.0.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", @@ -51,10 +51,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", - "@backstage/plugin-techdocs-addons-test-utils": "^1.0.3-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", + "@backstage/plugin-techdocs-addons-test-utils": "^1.0.3-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index e70f55ac8a..1c88d774e8 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-techdocs-react +## 1.0.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 1.0.3-next.1 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index a6dbfa85d7..446a77752a 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-react", "description": "Shared frontend utilities for TechDocs and Addons", - "version": "1.0.3-next.1", + "version": "1.0.3-next.2", "private": false, "publishConfig": { "access": "public", @@ -37,7 +37,7 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/version-bridge": "^1.0.1", "@material-ui/core": "^4.12.2", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 8d5c5a8d2e..283245bb18 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs +## 1.3.1-next.2 + +### Patch Changes + +- 8acb22205c: Scroll techdocs navigation into focus and expand any nested navigation items. +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + - @backstage/integration-react@1.1.3-next.1 + - @backstage/plugin-search-react@1.0.1-next.1 + - @backstage/plugin-techdocs-react@1.0.3-next.2 + ## 1.3.1-next.1 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index fe1ad97bbf..f8e363e821 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.3.1-next.1", + "version": "1.3.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,15 +37,15 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.1", - "@backstage/integration-react": "^1.1.3-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.1", + "@backstage/integration-react": "^1.1.3-next.1", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.0", - "@backstage/plugin-techdocs-react": "^1.0.3-next.1", + "@backstage/plugin-search-react": "^1.0.1-next.1", + "@backstage/plugin-techdocs-react": "^1.0.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -67,9 +67,9 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index b77a46c738..cdc529308c 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-todo +## 0.2.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.2.10-next.0 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index a025c3c136..817a1c5327 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo", "description": "A Backstage plugin that lets you browse TODO comments in your source code", - "version": "0.2.10-next.0", + "version": "0.2.10-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,10 +31,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -45,9 +45,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index c563afaa2f..a87cdfb9c4 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-user-settings +## 0.4.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.4.7-next.0 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 05ceb6f5f5..46a82fbdd0 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings", "description": "A Backstage plugin that provides a settings page", - "version": "0.4.7-next.0", + "version": "0.4.7-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/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -48,9 +48,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md index a5f1820f6d..56523c0d23 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-vault +## 0.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.1.3-next.2 + - @backstage/core-components@0.11.0-next.2 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 9bb3b86bd2..9aed61d6d4 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault", "description": "A Backstage plugin that integrates towards Vault", - "version": "0.1.2-next.0", + "version": "0.1.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,10 +35,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.10.1-next.0", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md index 1b16f43e8d..40e7385089 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-xcmetrics +## 0.2.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0-next.2 + ## 0.2.28-next.0 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 68b8c834eb..bd13f5f4af 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-xcmetrics", "description": "A Backstage plugin that shows XCode build metrics for your components", - "version": "0.2.28-next.0", + "version": "0.2.28-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.10.1-next.1", + "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1-next.1", "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", + "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", From 92e226025a582d79fb9e02416cd4ad2bae7a91c6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 13:43:32 +0200 Subject: [PATCH 248/377] Revert "chore(deps): update dependency lerna to v5.4.0" Signed-off-by: Patrik Oldsberg --- yarn.lock | 1936 +++++++++++++++++++++++++++-------------------------- 1 file changed, 978 insertions(+), 958 deletions(-) diff --git a/yarn.lock b/yarn.lock index c23b594c54..734206b1a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2680,7 +2680,12 @@ dependencies: yaml-ast-parser "0.0.43" -"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": +"@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== + +"@gar/promisify@^1.1.3": 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== @@ -4085,630 +4090,629 @@ resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== -"@lerna/add@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/add/-/add-5.4.0.tgz#a6182f5c2a5e8615cf19042099152a8a13eaa3e3" - integrity sha512-o4JiZgEzFL7QXC2hhhraSjfhd9y/YB/07KFjVApEUDpsE2g7hRPtmKMulTjVi8vTkzVuhG87t2ZfJ3HOywqvSQ== +"@lerna/add@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/add/-/add-5.0.0.tgz#0545e2eef157c142d82ba765467c27b36fe53ce8" + integrity sha512-KdIOQL+88iHU9zuAU8Be1AL4cOVmm77nlckylsNaVVTiomNipr/h7lStiBO52BoMkwKzNwOH6He5HGY0Yo7s2w== dependencies: - "@lerna/bootstrap" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/npm-conf" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/bootstrap" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/npm-conf" "5.0.0" + "@lerna/validation-error" "5.0.0" dedent "^0.7.0" - npm-package-arg "8.1.1" + npm-package-arg "^8.1.0" p-map "^4.0.0" - pacote "^13.6.1" + pacote "^13.4.1" semver "^7.3.4" -"@lerna/bootstrap@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.4.0.tgz#612a3f7d5b3a6e68990946912119180f98d5c642" - integrity sha512-XEusPF14qH0QVRkYwti59N8IG1yS0QvkqhSGxftDT+dbvbL8E3E73cwUVyb7/vgUefwEkw/Ya1yMytsJv3Hj+Q== +"@lerna/bootstrap@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.0.0.tgz#624b67a4631c7455b98cfed4dbb2e38b27025a7a" + integrity sha512-2m1BxKbYwDABy+uE/Da3EQM61R58bI3YQ0o1rsFQq1u0ltL9CJxw1o0lMg84hwMsBb4D+kLIXLqetYlLVgbr0Q== dependencies: - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/has-npm-version" "5.4.0" - "@lerna/npm-install" "5.4.0" - "@lerna/package-graph" "5.4.0" - "@lerna/pulse-till-done" "5.4.0" - "@lerna/rimraf-dir" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/symlink-binary" "5.4.0" - "@lerna/symlink-dependencies" "5.4.0" - "@lerna/validation-error" "5.4.0" - "@npmcli/arborist" "5.3.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/has-npm-version" "5.0.0" + "@lerna/npm-install" "5.0.0" + "@lerna/package-graph" "5.0.0" + "@lerna/pulse-till-done" "5.0.0" + "@lerna/rimraf-dir" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/symlink-binary" "5.0.0" + "@lerna/symlink-dependencies" "5.0.0" + "@lerna/validation-error" "5.0.0" + "@npmcli/arborist" "5.2.0" dedent "^0.7.0" get-port "^5.1.1" multimatch "^5.0.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" semver "^7.3.4" -"@lerna/changed@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/changed/-/changed-5.4.0.tgz#145b27a91b474f6bfd561cc06ab688c1c36fd659" - integrity sha512-ZxII7biEQFdbZG3scjacOP2/qQOuu0ob3OiPW/+Ci24aEG/j1bFGhBJdoNdfdD0sJ92q8TTums2BRXDib9GvzA== +"@lerna/changed@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/changed/-/changed-5.0.0.tgz#fb3cdd5f281683a461c3099cbcf0978e23b33140" + integrity sha512-A24MHipPGODmzQBH1uIMPPUUOc1Zm7Qe/eSYzm52bFHtVxWH0nIVXfunadoMX32NhzKQH3Sw8X2rWHPQSRoUvA== dependencies: - "@lerna/collect-updates" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/listable" "5.4.0" - "@lerna/output" "5.4.0" + "@lerna/collect-updates" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/listable" "5.0.0" + "@lerna/output" "5.0.0" -"@lerna/check-working-tree@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.4.0.tgz#9d0c3cfc3d3e1034b488e987dcb47f06715dde18" - integrity sha512-O3bcNnuZfOK8KHRQcwaSjAp/DHT/GD96sge/a7ZfnqKiKhyO94ZztznrOvCrb5Cuz4NShupD05PpyQe+sBuTLA== +"@lerna/check-working-tree@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.0.0.tgz#e7b653b78c3bb96db7a00f6a74018e2bb88ec088" + integrity sha512-PnUMdpT2qS4o+vs+7l5fFIizstGdqSkhLG+Z9ZiY5OMtnGd+pmAFQFlbLSZSmdvQSOSobl9fhB1St8qhPD60xQ== dependencies: - "@lerna/collect-uncommitted" "5.4.0" - "@lerna/describe-ref" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/collect-uncommitted" "5.0.0" + "@lerna/describe-ref" "5.0.0" + "@lerna/validation-error" "5.0.0" -"@lerna/child-process@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.4.0.tgz#25ec73f76f4142845f07bd5fc694b291b94b642a" - integrity sha512-SPjlfuB6LesAG3NCaDalEnpsbrpEDf0RMYGC1Wj6xGmmVEvWai8cenxCNM5xhpixSGjEF6dmLVI1OHFS9JovUQ== +"@lerna/child-process@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.0.0.tgz#1c7663d2910431f6c25543fd53998ae95b2dac19" + integrity sha512-cFVNkedrlU8XTt15EvUtQ84hqtV4oToQW/elKNv//mhCz06HY8Y+Ia6XevK2zrIhZjS6DT576F/7SmTk3vnpmg== dependencies: chalk "^4.1.0" execa "^5.0.0" strong-log-transformer "^2.1.0" -"@lerna/clean@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/clean/-/clean-5.4.0.tgz#2ebab8b2980652f302ebd948b0d4bccc64bfad0e" - integrity sha512-prhpUQ4kTkB/uti2DSuqfgRjUA3bz6aBrfdA5VS5QW6oTU8+F69uWjitXNt2ph/cVUJ+js8VZdbU0wkUFQasKg== +"@lerna/clean@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/clean/-/clean-5.0.0.tgz#2b5cf202ab3eca18a075b292c55e6641d18b1b8f" + integrity sha512-7B+0Nx6MEPmCfnEa1JFyZwJsC7qlGrikWXyLglLb/wcbapYVsuDauOl9AT1iOFoXKw82P77HWYUKWeD9DQgw/w== dependencies: - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/prompt" "5.4.0" - "@lerna/pulse-till-done" "5.4.0" - "@lerna/rimraf-dir" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/prompt" "5.0.0" + "@lerna/pulse-till-done" "5.0.0" + "@lerna/rimraf-dir" "5.0.0" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" -"@lerna/cli@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/cli/-/cli-5.4.0.tgz#c18a2afcb1f03466a96d8116aa28d54e06ede343" - integrity sha512-usvZ3yAaMBzb249UYZuqMRoT6VboBSzWG7iEvXVxZDoFgShHrZ8NJAOMJaStRyVkizci+PTK74FRgpX+hKOEHg== +"@lerna/cli@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/cli/-/cli-5.0.0.tgz#f440f6664aa6c22bb58e69aacfde655c831de2f9" + integrity sha512-g8Nifko8XNySOl8u2molSHVl+fk/E1e5FSn/W2ekeijmc3ezktp+xbPWofNq71N/d297+KPQpLBfwzXSo9ufIQ== dependencies: - "@lerna/global-options" "5.4.0" + "@lerna/global-options" "5.0.0" dedent "^0.7.0" - npmlog "^6.0.2" + npmlog "^4.1.2" yargs "^16.2.0" -"@lerna/collect-uncommitted@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.4.0.tgz#783324309560133bd1572ca555aff197921f324e" - integrity sha512-uKnL81tsfasSzYxqTCybn0GqehKUid47QzTJkKV1IXzfHpYLd4LBztvkbZFM2QN9Avl+hWYbTntSF5Iecg2fAg== +"@lerna/collect-uncommitted@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.0.0.tgz#2843f98995c8bcc1d783d1d9739122c79378f3c5" + integrity sha512-mga/2S9rK0TP5UCulWiCTrC/uKaiIlOro1n8R3oCw6eRw9eupCSRx5zGI7pdh8CPD82MDL7w0a6OTep3WBSBVA== dependencies: - "@lerna/child-process" "5.4.0" + "@lerna/child-process" "5.0.0" chalk "^4.1.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/collect-updates@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.4.0.tgz#03725f55099ad61c598e2e2929684e11a1dc3a7d" - integrity sha512-J1YPygeqCJo9IKLg6G2YY0OJPNDz6/n4VgJTrkMQH3B3WyodXdmdSv4xKY1pG9Cy7mXzCsdNuZzvN6qM1OgErg== +"@lerna/collect-updates@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.0.0.tgz#cce16b9e8136e1e7bc33fe0fb12b283e538fa658" + integrity sha512-X82i8SVgBXLCk8vbKWfQPRLTAXROCANL8Z/bU1l6n7yycsHKdjrrlNi1+KprFdfRsMvSm10R4qPNcl9jgsp/IA== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/describe-ref" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/describe-ref" "5.0.0" minimatch "^3.0.4" - npmlog "^6.0.2" + npmlog "^4.1.2" slash "^3.0.0" -"@lerna/command@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/command/-/command-5.4.0.tgz#53ee056304b5678b5a70f3cf4976e73c16425082" - integrity sha512-MR9zRWZJnr6wXcOJnuYjXScxiDuFt4jH+yZuqDf3EBQGIhfhSRoujtjVGmfe0/4P4TM4VdTqqangt63lclsLzw== +"@lerna/command@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/command/-/command-5.0.0.tgz#cdc9f32a6b1c7153fe7150d642d2a420a3d0797d" + integrity sha512-j7/apU5d/nhSc1qIZgcV03KyO5jz3y7cwSum3IuK8/XF6rKwt3FVnbue1V3l9sJ6IRJjsRGKyViB1IdP5nSX4Q== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/package-graph" "5.4.0" - "@lerna/project" "5.4.0" - "@lerna/validation-error" "5.4.0" - "@lerna/write-log-file" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/package-graph" "5.0.0" + "@lerna/project" "5.0.0" + "@lerna/validation-error" "5.0.0" + "@lerna/write-log-file" "5.0.0" clone-deep "^4.0.1" dedent "^0.7.0" execa "^5.0.0" is-ci "^2.0.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/conventional-commits@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.4.0.tgz#12e31222b951837c3b8543cbe4c44247ac7b60df" - integrity sha512-rrFFIiKWhkyghDC+aGdfEw1F78MWB+KerpBO1689nRrVpXTTqV9ZKHpn0YeTGhi+T1e/igtdJRlNjRCaXkl79Q== +"@lerna/conventional-commits@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.0.0.tgz#7f9c16fda074c9ed897cb695f5ae23678dd441eb" + integrity sha512-tUCRTAycDCtSlCEI0hublq4uKHeV0UHpwIb3Fdt6iv2AoTSPBSX/Dwu/6VqguysOSEkkR4M2JCOLvJCl4IMxwg== dependencies: - "@lerna/validation-error" "5.4.0" + "@lerna/validation-error" "5.0.0" conventional-changelog-angular "^5.0.12" - conventional-changelog-core "^4.2.4" + conventional-changelog-core "^4.2.2" conventional-recommended-bump "^6.1.0" fs-extra "^9.1.0" get-stream "^6.0.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + lodash.template "^4.5.0" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" pify "^5.0.0" semver "^7.3.4" -"@lerna/create-symlink@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.4.0.tgz#8b96d4fdada6cf3726353b9fe380720e6e99889f" - integrity sha512-DQuxmDVYL4S/VAXD8x/8zKapvGm4zN2sYB0D9yc2hTFeM5O4P7AXO0lYBE8XayZN7r2rBNPDYttv8Lv2IvN74A== +"@lerna/create-symlink@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.0.0.tgz#eccef7f89fdc4d7cd904694d9e2eb0b582073b5e" + integrity sha512-nHYNacrh15Y0yEofVlUVu9dhf4JjIn9hY7v7rOUXzUeQ91iXY5Q3PVHkBeRUigyT5CWP5qozZwraCMwp+lDWYg== dependencies: - cmd-shim "^5.0.0" + cmd-shim "^4.1.0" fs-extra "^9.1.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/create@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/create/-/create-5.4.0.tgz#14dd702727a07ed20d3f7e9b69c8bcdb31da3602" - integrity sha512-yHFP7DQD33xRLojlofqe+qu07BvRpwf+09dTKFHtarXqoPRDRJJ0e2/MRCi3StJmOLJCw7Gut3k0rdnFr3No6g== +"@lerna/create@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/create/-/create-5.0.0.tgz#4aac3d1f2c1f6d7fadde49d3663b318fcdd39b06" + integrity sha512-sdFTVTLOVuhHpzIYhFAwK0Ry3p4d7uMe9ZG/Ii128/pB9kEEfCth+1WBq6mBpYZ5mOLLgxJbWalbiJFl0toQRw== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/npm-conf" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/npm-conf" "5.0.0" + "@lerna/validation-error" "5.0.0" dedent "^0.7.0" fs-extra "^9.1.0" globby "^11.0.2" - init-package-json "^3.0.2" - npm-package-arg "8.1.1" + init-package-json "^2.0.2" + npm-package-arg "^8.1.0" p-reduce "^2.1.0" - pacote "^13.6.1" + pacote "^13.4.1" pify "^5.0.0" semver "^7.3.4" slash "^3.0.0" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^4.0.0" + validate-npm-package-name "^3.0.0" whatwg-url "^8.4.0" yargs-parser "20.2.4" -"@lerna/describe-ref@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.4.0.tgz#15bffe6ef0841db82dab795a21a91ba15cb1dc2f" - integrity sha512-OSy3U8bEm8EmPtoeoej4X02cUihqTJlG/JXyiJdEEMdWDwT3DLDLrBxo4/HAfB3hT5bSD96EabGgmM6GrVhiWw== +"@lerna/describe-ref@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.0.0.tgz#f0676843642e8880133783a9f059e6cb4c027fe1" + integrity sha512-iLvMHp3nl4wcMR3/lVkz0ng7pAHfLQ7yvz2HsYBq7wllCcEzpchzPgyVzyvbpJ+Ke/MKjQTsrHE/yOGOH67GVw== dependencies: - "@lerna/child-process" "5.4.0" - npmlog "^6.0.2" + "@lerna/child-process" "5.0.0" + npmlog "^4.1.2" -"@lerna/diff@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/diff/-/diff-5.4.0.tgz#54747d1c4ae30505500c35bc38124a1150683127" - integrity sha512-IxJltmhpkLy9Te6EV1fHu5Yx83HLMrNT2v2TIu+k/EdM/fW6wt+Pal34bsROjGEj70LPI64LWj/FKvdaKXe36A== +"@lerna/diff@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/diff/-/diff-5.0.0.tgz#844333f5478fc4993c4389fee1e0cd8eff9114fe" + integrity sha512-S4XJ6i9oP77cSmJ3oRUJGMgrI+jOTmkYWur2nqgSdyJBE1J2eClgTJknb3WAHg2cHALT18WzFqNghFOGM+9dRA== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/validation-error" "5.4.0" - npmlog "^6.0.2" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/validation-error" "5.0.0" + npmlog "^4.1.2" -"@lerna/exec@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/exec/-/exec-5.4.0.tgz#cee3bb7acaaee5a42aecff0bf6378a60aac09425" - integrity sha512-hgAR5oDMVJUuqN8Fg04ibnzC4cj4YZzIGOfSjYSYjuC/zE53fOSRwEdVDKz3+Yxlnqrz4XyxbOnOlYTFgk6DaA== +"@lerna/exec@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/exec/-/exec-5.0.0.tgz#a59dd094e456ea46cfa8f713da0ea3334a7ec9ac" + integrity sha512-g5i+2RclCGWLsl88m11j99YM2Gqnwa2lxZ5tDeqqWZFno6Dlvop17Yl6/MFH42EgM2DQHUUCammvcLIAJ2XwEA== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/profiler" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/profiler" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/validation-error" "5.0.0" p-map "^4.0.0" -"@lerna/filter-options@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.4.0.tgz#c1f53a705c8256d599b7cf72b75b1e0945673ff6" - integrity sha512-qK8863UrVcgKJYoZ0dKs82uXIeHhntMoCcqWXOUa1zHP4Fwuz0nGhVGWIO2q4GC8A4HoeduN6vjrLr2d6rsEdw== +"@lerna/filter-options@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.0.0.tgz#1d2606e1d2ed106689b43cc5d41a77b239afb837" + integrity sha512-un73aYkXlzKlnDPx2AlqNW+ArCZ20XaX+Y6C0F+av9VZriiBsCgZTnflhih9fiSMnXjN5r9CA8YdWvZqa3oAcQ== dependencies: - "@lerna/collect-updates" "5.4.0" - "@lerna/filter-packages" "5.4.0" + "@lerna/collect-updates" "5.0.0" + "@lerna/filter-packages" "5.0.0" dedent "^0.7.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/filter-packages@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.4.0.tgz#4eff648b6a31f685593577c36c8b00db1a1e9c56" - integrity sha512-KAERXVJM5QCw0wyZnSQnHerY6u4q8h37r5yft0HJOSqxIMmkambrtrXplOQCpAxOB+CASQG6sfVB7F7wvI0nkQ== +"@lerna/filter-packages@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.0.0.tgz#9aae543ab5e45a1b0c3f7ad33e0686ceb8d92c88" + integrity sha512-+EIjVVaMPDZ05F/gZa+kcXjBOLXqEamcEIDr+2ZXRgJmnrLx9BBY1B7sBEFHg7JXbeOKS+fKtMGVveV0SzgH3Q== dependencies: - "@lerna/validation-error" "5.4.0" + "@lerna/validation-error" "5.0.0" multimatch "^5.0.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/get-npm-exec-opts@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.4.0.tgz#424946fba5cccf60ca28de4b1991c5405d4029df" - integrity sha512-plBDyetGHaYObxKnL2gsCNRTn7lTXTFsA8/wiJl6VEJNeEwvZ0efFopY1qcwXx+Skfwi4whqmAojWyoLzVoCIA== +"@lerna/get-npm-exec-opts@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.0.0.tgz#25c1cd7d2b6c1fe903cd144d9f6e2d5cae47429b" + integrity sha512-ZOg3kc5FXYA1kVFD2hfJOl64hNASWD6panwD0HlyzXgfKKTDRm/P/qtAqS8WGCzQWgEdx4wvsDe/58Lzzh6QzQ== dependencies: - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/get-packed@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.4.0.tgz#8d4eabdc4c92f7bf29724146b3af1ff02146841b" - integrity sha512-bgPZGx2hbbjxaY0sRNcmDjWGR8HEoU/ORXrFiPU/YS7Xp4Yuf8GixT5QrYFT/VdZOqDeaBtFxndVPbmtK6qFRA== +"@lerna/get-packed@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.0.0.tgz#4de7f66184232c805dfca07b9a8c577f6ef02351" + integrity sha512-fks7Tg7DvcCZxRWPS3JAWVuLnwjPC/hLlNsdYmK9nN3+RtPhmYQgBjLSONcENw1E46t4Aph72lA9nLcYBLksqw== dependencies: fs-extra "^9.1.0" - ssri "^9.0.1" + ssri "^8.0.1" tar "^6.1.0" -"@lerna/github-client@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.4.0.tgz#4de39f81c287c6138f1a75d55ede88591e0be846" - integrity sha512-zI/rR5+DHljRwvq1l1LWlola2mJrVkv+0/rIg8wVWfcosIbYQMeuWoJ4zKTZmbOuQqwFpM3vipSHNj8oyik/xA== +"@lerna/github-client@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.0.0.tgz#65c984a393b1cbe35c2a707059c645bb9a03395e" + integrity sha512-NoEyRkQ8XgBnrjRfC9ph1npfg1/4OdYG+r8lG/1WkJbdt1Wlym4VNZU2BYPMWwSQYMJuppoEr0LL2uuVcS4ZUw== dependencies: - "@lerna/child-process" "5.4.0" + "@lerna/child-process" "5.0.0" "@octokit/plugin-enterprise-rest" "^6.0.1" - "@octokit/rest" "^19.0.3" - git-url-parse "^12.0.0" - npmlog "^6.0.2" + "@octokit/rest" "^18.1.0" + git-url-parse "^11.4.4" + npmlog "^4.1.2" -"@lerna/gitlab-client@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.4.0.tgz#7bd9915e06cfe188828f78a75da4168b9c7c8516" - integrity sha512-OHEnRgzzOfzCtpl+leXlh3jIJZ/mho69vNUEDfSviixTmZMbw4626TYU41FFjZZqmijxl2rYEyJCxIaTdIKdvg== +"@lerna/gitlab-client@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.0.0.tgz#c4e3d16566a3b07908ee604ce681a09c418481de" + integrity sha512-WREAT7qzta9hxNxktTX0x1/sEMpBP+4Gc00QSJYXt+ZzxY0t5RUx/ZK5pQl+IDhtkajrvXT6fSfZjMxxyE8hhQ== dependencies: node-fetch "^2.6.1" - npmlog "^6.0.2" + npmlog "^4.1.2" whatwg-url "^8.4.0" -"@lerna/global-options@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.4.0.tgz#fd1acc17258b021c966ec7ce1e06311e2f235f60" - integrity sha512-6YjlNNCyk/xjkdBkDkrrk5zBvT1lfyyXP6lyi2b3zcmtP7zMVkSL6Z+NUh857uFJsFYMMQ2SkGczQBmHfSSg7Q== +"@lerna/global-options@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.0.0.tgz#02505c9e468188e3a254c262d58739092de93d8d" + integrity sha512-PZYy/3mTZwtA9lNmHHRCc/Ty1W20qGJ/BdDIo4bw/Bk0AOcoBCLT9b3Mjijkl4AbC9+eSGk3flUYapCGVuS32Q== -"@lerna/has-npm-version@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.4.0.tgz#5e6567386d5c6b6c60e8c4c1f606eaa954604cbb" - integrity sha512-L9TTF82NgOmau8kGBhc0UnMdlyVkbQxlz1IbJEzQzJcc5oYB8ppHe4Wbm25D1p846U7wzZeRMxSC3sWO8ap+FA== +"@lerna/has-npm-version@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.0.0.tgz#ed62c6ef857f068209663aae9f156f06a93dc1bd" + integrity sha512-zJPgcml86nhJFJTpT+kjkcafuCFvK7PSq3oDC2KJxwB1bhlYwy+SKtAEypHSsHQ2DwP0YgPITcy1pvtHkie1SA== dependencies: - "@lerna/child-process" "5.4.0" + "@lerna/child-process" "5.0.0" semver "^7.3.4" -"@lerna/import@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/import/-/import-5.4.0.tgz#a99bc13ead71fe4f123ff7b268645732a57236ae" - integrity sha512-UOwfZWvda+lMTDMt/pZmKBtbLKWnBOjrd0C7s7IPDNIdEYohV+LQEaDTuFFpwwFwRhr8RO2fLicWvlt4YJOccQ== +"@lerna/import@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/import/-/import-5.0.0.tgz#11cd83ef0fe854c512146fd4165f33519364b97a" + integrity sha512-cD+Is7eV/I+ZU0Wlg+yAgKaZbOvfzA7kBj2Qu1HtxeLhc7joTR8PFW1gNjEsvrWOTiaHAtObbo1A+MKYQ/T12g== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/prompt" "5.4.0" - "@lerna/pulse-till-done" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/prompt" "5.0.0" + "@lerna/pulse-till-done" "5.0.0" + "@lerna/validation-error" "5.0.0" dedent "^0.7.0" fs-extra "^9.1.0" p-map-series "^2.1.0" -"@lerna/info@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/info/-/info-5.4.0.tgz#0076a05ec8fda31d8dc19b8843b8c2b29d9ce538" - integrity sha512-MoNredUnlDjm12by7h5it3XLeHqqIhSjYnmjfQuIhB9r37L/grxEcZ+YLKVqvz3BGGFX342jEfi8uE3eACQUgg== +"@lerna/info@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/info/-/info-5.0.0.tgz#649566474d0d133c22bb821f88e7d062a2beace5" + integrity sha512-k9TMK81apTjxxpnjfFOABKXndTtHBPgB8UO+I6zKhsfRqVb9FCz2MHOx8cQiSyolvNyGSQdSylSo4p7EBBomQQ== dependencies: - "@lerna/command" "5.4.0" - "@lerna/output" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/output" "5.0.0" envinfo "^7.7.4" -"@lerna/init@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/init/-/init-5.4.0.tgz#13af001a5a13a92c6b761c0aebc511307d61b70f" - integrity sha512-lCfokfqFKL6Iqg8KDIlCSoNtcbvheUZ+AKwd9wHRPHn1xvI3BQRukkai83VcCShpsVqAkx1r8KjCO9f3I74K9Q== +"@lerna/init@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/init/-/init-5.0.0.tgz#e35d95a4882aafb4600abf9b32fd1a0056e73ed9" + integrity sha512-2n68x7AIqVa+Vev9xF3NV9ba0C599KYf7JsIrQ5ESv4593ftInJpwgMwjroLT3X/Chi4BK7y2/xGmrfFVwgILg== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/project" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" fs-extra "^9.1.0" p-map "^4.0.0" write-json-file "^4.3.0" -"@lerna/link@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/link/-/link-5.4.0.tgz#eb92414ac78e3d4571965c1f1be9725eb3886a3b" - integrity sha512-nUdpVIq0WHkQ2bWyjd+Fg/0iAEIZpwqZidpJuvcvS8FhvCVUryF2zRtd4wSSfQpzuoTWxDzGg6Ka2QwKxWOq6w== +"@lerna/link@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/link/-/link-5.0.0.tgz#dbd5aefa0bb22f2fd9d61ee82009fb34eb946298" + integrity sha512-00YxQ06TVhQJthOjcuxCCJRjkAM+qM/8Lv0ckdCzBBCSr4RdAGBp6QcAX/gjLNasgmNpyiza3ADet7mCH7uodw== dependencies: - "@lerna/command" "5.4.0" - "@lerna/package-graph" "5.4.0" - "@lerna/symlink-dependencies" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/package-graph" "5.0.0" + "@lerna/symlink-dependencies" "5.0.0" p-map "^4.0.0" slash "^3.0.0" -"@lerna/list@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/list/-/list-5.4.0.tgz#86c34925d71fcc87df69c3b3394afb8c8fe8f409" - integrity sha512-w+gqkcl9mSIAnImiGVJJUiJ4sJx2Ovko2heLQpcNzUsc39ilcvb5S1YTnfhneJH735EckbF1eXzG1I5V+znaBw== +"@lerna/list@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/list/-/list-5.0.0.tgz#0a979dc9c24ca176c7b4b58de80cab2dac2dcb8a" + integrity sha512-+B0yFil2AFdiYO8hyU1bFbKXGBAUUQQ43/fp2XS2jBFCipLme4eTILL5gMKOhr2Xg9AsfYPXRMRer5VW7qTeeQ== dependencies: - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/listable" "5.4.0" - "@lerna/output" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/listable" "5.0.0" + "@lerna/output" "5.0.0" -"@lerna/listable@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/listable/-/listable-5.4.0.tgz#352cb301e7b7a5e52d32dfa795fab2e2986cacb5" - integrity sha512-ABhInXVY+i9PhCiMxH/4JZnsn5SYriAiCOzyZG+6PX4TSDt7wiE6QWI5tfEyBJmPLEvhxjIeOph0cVvcnxf/gg== +"@lerna/listable@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/listable/-/listable-5.0.0.tgz#c1753d9375932b15c4c84cc767fffb3447b8f213" + integrity sha512-Rd5sE7KTbqA8u048qThH5IyBuJIwMcUnEObjFyJyKpc1SEWSumo4yAYmcEeN/9z62tcdud5wHYPSbVgfXJq37g== dependencies: - "@lerna/query-graph" "5.4.0" + "@lerna/query-graph" "5.0.0" chalk "^4.1.0" - columnify "^1.6.0" + columnify "^1.5.4" -"@lerna/log-packed@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.4.0.tgz#bd3cd24c700590286b7248c218139322e607c3df" - integrity sha512-2l9wrDDdG+vL+k8iIsQ+8EgLn3YnLMfAnK1TyHRaEFJyHWWPK+wCYln793s6RdOG0rJmCOdVwGvGoO3Dpp4jiw== +"@lerna/log-packed@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.0.0.tgz#afa35bb6a5736038d7dde039e09828ac1c4945a2" + integrity sha512-0TxKX+XnlEYj0du9U2kg3HEyIb/0QsM0Slt8utuCxALUnXRHTEKohjqVKsBdvh1QmJpnUbL5I+vfoYqno4Y42w== dependencies: byte-size "^7.0.0" - columnify "^1.6.0" + columnify "^1.5.4" has-unicode "^2.0.1" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/npm-conf@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.4.0.tgz#d75896d46586ab10094a3760df9dc348a3918367" - integrity sha512-xCzrg8s8X/SGoELdtstjjVV471r3mF6r1gdQzdQ9Y+Gql78pOp2flGtERyhZlN40fDTsfR+MKpk9mI/3/+Wffg== +"@lerna/npm-conf@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.0.0.tgz#1364270d231d0df5ac079a9a9733ba0dd7f8c2f9" + integrity sha512-KSftxtMNVhLol1JNwFFNgh5jiCG010pewM+uKeSrUe0BCB3lnidiEDzu2CCn8JYYfIXqAiou/pScUiOxVLpcAA== dependencies: config-chain "^1.1.12" pify "^5.0.0" -"@lerna/npm-dist-tag@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.4.0.tgz#110dee7e06c6d9a1a477fd00b75777f9cc0bde7f" - integrity sha512-0MXkt6WhEI9pJOtFaQmKlkaBm9IZHx9KK6BtKlC1giwE/czur2ke19PUMmH+b078EtyhnwrsEq8VB4pMidmXpw== +"@lerna/npm-dist-tag@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.0.0.tgz#becd7fb0bd963357818c8d4fae955cc9f8885cba" + integrity sha512-ccUFhp9Wu/FHW5/5fL+vLiSTcUZXtKQ7c0RMXtNRzIdTXBxPBkVi1k5QAnBAAffsz6Owc/K++cb+/zQ/asrG3g== dependencies: - "@lerna/otplease" "5.4.0" - npm-package-arg "8.1.1" - npm-registry-fetch "^13.3.0" - npmlog "^6.0.2" + "@lerna/otplease" "5.0.0" + npm-package-arg "^8.1.0" + npm-registry-fetch "^9.0.0" + npmlog "^4.1.2" -"@lerna/npm-install@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.4.0.tgz#1bf4b2c5f9eff7389d58fe21844d6c738efe82a8" - integrity sha512-scYWjKyb67Ov6VMyDFUUPzyGJWuD8vBgOAshzJMG1lGzfcUTOyAA4VJohOpJHVgNaRL3YjJa2AekqTzX42zygQ== +"@lerna/npm-install@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.0.0.tgz#0ee1750bb26eae3c2b4d742d5c1f055e46d534df" + integrity sha512-72Jf05JCIdeSBWXAiNjd/y2AQH4Ojgas55ojV2sAcEYz2wgyR7wSpiI6fHBRlRP+3XPjV9MXKxI3ZwOnznQxqQ== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/get-npm-exec-opts" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/get-npm-exec-opts" "5.0.0" fs-extra "^9.1.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" signal-exit "^3.0.3" write-pkg "^4.0.0" -"@lerna/npm-publish@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.4.0.tgz#ccf81d1fc4007a6766dcde1cfaddb6a0a157c4ac" - integrity sha512-PQ49FWnHOXEWLwREzD3XYZAUUxssGqHLh/lC9etGC7xGjHreAcUM89GuuG8JiSdCEuNNnUXO6oCYjJKWpfWa5A== +"@lerna/npm-publish@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.0.0.tgz#a1a06e47e45e56999c85086a40f9b77f801b5a00" + integrity sha512-jnapZ2jRajSzshSfd1Y3rHH5R7QC+JJlYST04FBebIH3VePwDT7uAglDCI4um2THvxkW4420EzE4BUMUwKlnXA== dependencies: - "@lerna/otplease" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" + "@lerna/otplease" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" fs-extra "^9.1.0" - libnpmpublish "^6.0.4" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + libnpmpublish "^4.0.0" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" pify "^5.0.0" - read-package-json "^5.0.1" + read-package-json "^3.0.0" -"@lerna/npm-run-script@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.4.0.tgz#efccba87b1abbca0ab831de3deaa604f3a75d48f" - integrity sha512-VkEmTioVTyzGKpKJ9fD5NYww5eoUAqWwvFeI5lCGN0eRd7AyQrdRu8cnHpg+bRW1qzE7GReDWdB6WKQ9gBxc4w== +"@lerna/npm-run-script@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.0.0.tgz#114374b89f228c9719bbfacf9f08d6aac2739fb2" + integrity sha512-qgGf0Wc/E2YxPwIiF8kC/OB9ffPf0/HVtPVkqrblVuNE9XVP80WilOH966PIDiXzwXaCo/cTswFoBeseccYRGw== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/get-npm-exec-opts" "5.4.0" - npmlog "^6.0.2" + "@lerna/child-process" "5.0.0" + "@lerna/get-npm-exec-opts" "5.0.0" + npmlog "^4.1.2" -"@lerna/otplease@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.4.0.tgz#791942b669f2d6b861fa505dc870fa2f5006b574" - integrity sha512-0chUZ+3CLirEzhXogKFFJ8AftZbrAEr2Fm2EErP77T5ml7eCwuvHgXkQvvHxYJnkO6bJ72cNPmsZeOx+2fhbow== +"@lerna/otplease@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.0.0.tgz#5b0419f64908d7ad840c2735e0284d67cd37095b" + integrity sha512-QLLkEy1DPN1XFRAAZDHxAD26MHFQDHfzB6KKSzRYxbHc6lH/YbDaMH1RloSWIm7Hwkxl/3NgpokgN4Lj5XFuzg== dependencies: - "@lerna/prompt" "5.4.0" + "@lerna/prompt" "5.0.0" -"@lerna/output@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/output/-/output-5.4.0.tgz#9aec36e2424d58671c30034b1d932b335f3f8a5e" - integrity sha512-tnVjGDCyugbEvS1XNihwcLdOxGTGbHInnhKg9OtPgDX4dwv40Zliyrk1VyjJGwYiSoblznut9wQb5zXNOOmBQg== +"@lerna/output@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/output/-/output-5.0.0.tgz#f3712f0cad3e9ef73c803fe368f6a9ac20403868" + integrity sha512-/7sUJQWPcvnLudjVIdN7t9MlfBLuP4JCDAWgQMqZe+wpQRuKNyKQ5dLBH5NHU/ElJCjAwMPfWuk3mh3GuvuiGA== dependencies: - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/pack-directory@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.4.0.tgz#6b07f1bc3e6d695870eacd1908cc7d7ab31ef546" - integrity sha512-Yx9RwPYlfjSynhFBdGqI0KV1orlj8h2W2y+uSWUkdKbBFeHDwO/eJ879i3ZWsY/aU+GhWZWiC+f4jG1wAEs+RQ== +"@lerna/pack-directory@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.0.0.tgz#f277418545786ca68ca15647bab52ad29bd57f59" + integrity sha512-E1SNDS7xSWhJrTSmRzJK7DibneljrymviKcsZW3mRl4TmF4CpYJmNXCMlhEtKEy6ghnGQvnl3/4+eslHDJ5J/w== dependencies: - "@lerna/get-packed" "5.4.0" - "@lerna/package" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" - "@lerna/temp-write" "5.4.0" - npm-packlist "^5.1.1" - npmlog "^6.0.2" + "@lerna/get-packed" "5.0.0" + "@lerna/package" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" + "@lerna/temp-write" "5.0.0" + npm-packlist "^2.1.4" + npmlog "^4.1.2" tar "^6.1.0" -"@lerna/package-graph@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.4.0.tgz#dc0fab8456fd9990d9efa606a7ce510806a4e94c" - integrity sha512-oBmwR5BVfjLpXVFQ7z37DbhQpQPWCm+KlrcRv+R1IQl3kaJEwIOx/ww9FPGOx3r1Uu9cEIrjCcWr6bjGLEcejw== +"@lerna/package-graph@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.0.0.tgz#53e88ef46359ef7a2f6e3b7c5bab82302a10653f" + integrity sha512-Z3QeUQVjux0Blo64rA3/NivoLDlsQBjsZRIgGLbcQh7l7pJrqLK1WyNCBbPJ0KQNljQqUXthCKzdefnEWe37Ew== dependencies: - "@lerna/prerelease-id-from-version" "5.4.0" - "@lerna/validation-error" "5.4.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + "@lerna/prerelease-id-from-version" "5.0.0" + "@lerna/validation-error" "5.0.0" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" semver "^7.3.4" -"@lerna/package@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/package/-/package-5.4.0.tgz#98cc92ba74651045ac6ffa8df671eb266ef3241e" - integrity sha512-lfj4AmN7STzWR+ML5FKhVjnG/tBYBmUWFP2D0WP7jaBCtvA4YfhTRX8bnIPTB6QoYrJl72cPx7eTxGD/VO0ZKA== +"@lerna/package@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/package/-/package-5.0.0.tgz#4beeb3a1e8eed6e7ae9cebca283c7684278cdd28" + integrity sha512-/JiUU88bhbYEUTzPqoGLGwrrdWWTIVMlBb1OPxCGNGDEqYYNySX+OTTSs3zGMcmJnRNI0UyQALiEd0sh3JFN5w== dependencies: load-json-file "^6.2.0" - npm-package-arg "8.1.1" + npm-package-arg "^8.1.0" write-pkg "^4.0.0" -"@lerna/prerelease-id-from-version@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.4.0.tgz#0f7b548254c09a1e79716cac13c6b8ad9457240d" - integrity sha512-sbVnPq4dlY2VC3xKer5eBo9kevsQoddqQvLV4x+skeFkk50+faB9SH7J9n0zHm9PbxfrJX1TtL1EuxzHcFMKTg== +"@lerna/prerelease-id-from-version@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.0.0.tgz#3edb90ba9ceace97708d03ff9f650d177f973184" + integrity sha512-bUZwyx6evRn2RxogOQXaiYxRK1U/1Mh/KLO4n49wUhqb8S8Vb9aG3+7lLOgg4ZugHpj9KAlD3YGEKvwYQiWzhg== dependencies: semver "^7.3.4" -"@lerna/profiler@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.4.0.tgz#c300661a4692be6f3359530054f8ce32a0a0503c" - integrity sha512-0wo43ejOjQHeJ2cEU2Pp4//2lxjsi4ioQamkelu8YISRCC0ojGFB4ra22osj4/jRfstJ0DiaV8edrOht1TXJIA== +"@lerna/profiler@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.0.0.tgz#e1b74d17dbd6172b5ce9c80426b336bf6ab2e8e9" + integrity sha512-hFX+ZtoH7BdDoGI+bqOYaSptJTFI58wNK9qq/pHwL5ksV7vOhxP2cQAuo1SjgBKHGl0Ex/9ZT080YVV4jP1ehw== dependencies: fs-extra "^9.1.0" - npmlog "^6.0.2" + npmlog "^4.1.2" upath "^2.0.1" -"@lerna/project@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/project/-/project-5.4.0.tgz#bd1bbd5bfce6b05decda1e97e06f27bd098b64f9" - integrity sha512-lr8+EybiRNmS6ecDtFmXzEUNcOepbvku9oxBc47CtvXtCcLdDLG4bI9TXrN4lUO2vJajXTSlhN7sD1LVUkcYdg== +"@lerna/project@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/project/-/project-5.0.0.tgz#31672891236696b2a70226388de0300c6086d75f" + integrity sha512-+izHk7D/Di2b0s69AzKzAa/qBz32H9s67oN9aKntrjNylpY7iN5opU157l60Kh4TprYHU5bLisqzFLZsHHADGw== dependencies: - "@lerna/package" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/package" "5.0.0" + "@lerna/validation-error" "5.0.0" cosmiconfig "^7.0.0" dedent "^0.7.0" dot-prop "^6.0.1" glob-parent "^5.1.1" globby "^11.0.2" load-json-file "^6.2.0" - npmlog "^6.0.2" + npmlog "^4.1.2" p-map "^4.0.0" resolve-from "^5.0.0" write-json-file "^4.3.0" -"@lerna/prompt@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.4.0.tgz#719fdbcd37ad6adaa974cdaf7f3bad491ae673e0" - integrity sha512-Kuw/YpQLwrbKx9fp/wWXi8jiZ8mqmpE7UUVWcFNed0oSHrlUpIhRXPSSTEHsX983Iepj65YL1O6Zffr3t/vP/Q== +"@lerna/prompt@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.0.0.tgz#31d3d82ecd17e863f8b7cc7944accff4f3de3395" + integrity sha512-cq2k04kOPY1yuJNHJn4qfBDDrCi9PF4Q228JICa6bxaONRf/C/TRsEQXHVIdlax8B3l53LnlGv5GECwRuvkQbA== dependencies: - inquirer "^8.2.4" - npmlog "^6.0.2" + inquirer "^7.3.3" + npmlog "^4.1.2" -"@lerna/publish@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/publish/-/publish-5.4.0.tgz#bb8d6f68a72fb889050e8043567f67d1fc933723" - integrity sha512-C+p3K6cKLML4L/7xkmPAafmBdPlltjZtsKuUKSKKnt/FrX4giv81Kp0FQ0mAps0JN1A++ni0AOJAxlBowZs1Pg== +"@lerna/publish@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/publish/-/publish-5.0.0.tgz#27c4c469e6abd5b52e977568d328632929e859b1" + integrity sha512-QEWFtN8fW1M+YXEQOWb2XBBCT137CrwHYK29ojMXW9HShvSZezf8Q/niH91nZ4kIhWdpOGz4w3rKopsumAM5SA== dependencies: - "@lerna/check-working-tree" "5.4.0" - "@lerna/child-process" "5.4.0" - "@lerna/collect-updates" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/describe-ref" "5.4.0" - "@lerna/log-packed" "5.4.0" - "@lerna/npm-conf" "5.4.0" - "@lerna/npm-dist-tag" "5.4.0" - "@lerna/npm-publish" "5.4.0" - "@lerna/otplease" "5.4.0" - "@lerna/output" "5.4.0" - "@lerna/pack-directory" "5.4.0" - "@lerna/prerelease-id-from-version" "5.4.0" - "@lerna/prompt" "5.4.0" - "@lerna/pulse-till-done" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/validation-error" "5.4.0" - "@lerna/version" "5.4.0" + "@lerna/check-working-tree" "5.0.0" + "@lerna/child-process" "5.0.0" + "@lerna/collect-updates" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/describe-ref" "5.0.0" + "@lerna/log-packed" "5.0.0" + "@lerna/npm-conf" "5.0.0" + "@lerna/npm-dist-tag" "5.0.0" + "@lerna/npm-publish" "5.0.0" + "@lerna/otplease" "5.0.0" + "@lerna/output" "5.0.0" + "@lerna/pack-directory" "5.0.0" + "@lerna/prerelease-id-from-version" "5.0.0" + "@lerna/prompt" "5.0.0" + "@lerna/pulse-till-done" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/validation-error" "5.0.0" + "@lerna/version" "5.0.0" fs-extra "^9.1.0" - libnpmaccess "^6.0.3" - npm-package-arg "8.1.1" - npm-registry-fetch "^13.3.0" - npmlog "^6.0.2" + libnpmaccess "^4.0.1" + npm-package-arg "^8.1.0" + npm-registry-fetch "^9.0.0" + npmlog "^4.1.2" p-map "^4.0.0" p-pipe "^3.1.0" - pacote "^13.6.1" + pacote "^13.4.1" semver "^7.3.4" -"@lerna/pulse-till-done@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.4.0.tgz#5221927fa1acc25714fcb5c2cd70872770f3ed63" - integrity sha512-d3f8da0J+fZg/EXFVih1cdTfYCn74l1aJ6vEH18CdDlylOLONRgGWliMLnrQMssSVHu6AF1BSte27yfJ6sfOfw== +"@lerna/pulse-till-done@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.0.0.tgz#df3c32c2d7457362956d997da366f5c060953eef" + integrity sha512-qFeVybGIZbQSWKasWIzZmHsvCQMC/AwTz5B44a0zTt5eSNQuI65HRpKKUgmFFu/Jzd7u+yp7eP+NQ53gjOcQlQ== dependencies: - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/query-graph@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.4.0.tgz#20f7dea4997aac4b685c1336ca731d07da9ccd04" - integrity sha512-CC6wi63C9r/S7mJ1ENsBGz1O76Rog1LRTBqiLUlVsJxVf+X+WboIVcouoESNDeudxJ0Fl0sFdvRVZ5Q2Bt7xKw== +"@lerna/query-graph@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.0.0.tgz#76c45f648915ef5c884c32c3d35daa3ebb53440b" + integrity sha512-C/HXssBI8DVsZ/7IDW6JG9xhoHtWywi3L5oZB9q84MBYpQ9otUv6zbB+K4JCj7w9WHcuFWe2T/mc9wsaFuvB5g== dependencies: - "@lerna/package-graph" "5.4.0" + "@lerna/package-graph" "5.0.0" -"@lerna/resolve-symlink@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.4.0.tgz#ce88674ea1d049cc750755939a5e1303b1beded5" - integrity sha512-shPld+YY4lf7teHkxTBBUjTZ7RNvqALZ8Nc5y1xvuHmrornGqwDeFZGbu2OZgc409HNWUheZHLluSrUIP/mn0Q== +"@lerna/resolve-symlink@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.0.0.tgz#edff89908e90a390791ab762305d34aa95e7bdbe" + integrity sha512-O1EMQh3O3nKjLyI2guCCaxmi9xzZXpiMZhrz2ki5ENEDB2N1+f7cZ2THT0lEOIkLRuADI6hrzoN1obJ+TTk+KQ== dependencies: fs-extra "^9.1.0" - npmlog "^6.0.2" - read-cmd-shim "^3.0.0" + npmlog "^4.1.2" + read-cmd-shim "^2.0.0" -"@lerna/rimraf-dir@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.4.0.tgz#6e81edb5722dd9003d2ef3c9639bc9287234f2d4" - integrity sha512-QGFlQUcdQaUAs3mXMOvbb4WU0tuinTDVoH+1ztIJf5vj/NAHWTH/H0KxPGIJJUODtyuaNCufU7LDXkQMOORGyQ== +"@lerna/rimraf-dir@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.0.0.tgz#9e7689610415e6d68c9e766a462c8acfdbf04b9a" + integrity sha512-hWJg/13CiSUrWWEek3B/A1mkvBbcPvG5z69/Ugyerdpzlw44ubf02MAZ0/kXPJjkICI2hMrS07YotQ60LdYpCw== dependencies: - "@lerna/child-process" "5.4.0" - npmlog "^6.0.2" + "@lerna/child-process" "5.0.0" + npmlog "^4.1.2" path-exists "^4.0.0" rimraf "^3.0.2" -"@lerna/run-lifecycle@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.4.0.tgz#c42bf12c44c4b4df96b20db19b3934e2db6d5abd" - integrity sha512-d+XO8X5Kiuv+w65wrU8thrObJwgODqA12xLW7kCLnh20njTWimOfjq/xsbSbSwRr5es8uHtK7Vqns+nBVSTeEw== +"@lerna/run-lifecycle@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.0.0.tgz#0f62c2faebc19e4ee247bdfa1e05b2a9f51b0637" + integrity sha512-36mAm9rC5DSliFShI0Y4ICjgrJXdIIVt7VW9rdbdJ8/XYjRHDzhGPB9Sc1neJOVlGL4DmaArvh5tGgo62KPJYQ== dependencies: - "@lerna/npm-conf" "5.4.0" - "@npmcli/run-script" "^4.1.7" - npmlog "^6.0.2" + "@lerna/npm-conf" "5.0.0" + "@npmcli/run-script" "^3.0.2" + npmlog "^4.1.2" + +"@lerna/run-topologically@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.0.0.tgz#0b0156e3ebe2bf768b9ba1339e02e947e70d1dd1" + integrity sha512-B2s1N/+r3sfPOLRA2svNk+C52JpXQleMuGap0yhOx5mZzR1M2Lo4vpe9Ody4hCvXQjfdLx/U342fxVmgugUtfQ== + dependencies: + "@lerna/query-graph" "5.0.0" p-queue "^6.6.2" -"@lerna/run-topologically@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.4.0.tgz#f0a3254553022fd8812a16cd25a260e97f211af7" - integrity sha512-wwelSpQT/ZDornu0+idYKfY1q7ggIOMiXrGq9nDshbtgPwme/CMEr5SPur80oR5Z6Pc2Fm7cHtxI2je7YOuqKA== +"@lerna/run@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/run/-/run-5.0.0.tgz#3af69d1a787866cf85072a0ae9571b9c3bf262e7" + integrity sha512-8nBZstqKSO+7wHlKk1g+iexSYRVVNJq/u5ZbAzBiHNrABtqA6/0G7q9vsAEMsnPZ8ARAUYpwvbfKTipjpWH0VA== dependencies: - "@lerna/query-graph" "5.4.0" - p-queue "^6.6.2" - -"@lerna/run@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/run/-/run-5.4.0.tgz#6373fdbe950d24f56305dd89946f9966ab80113b" - integrity sha512-UgdsV3dvdmSLoQIrh9Wxb5kiTbwrQP7dN5MOADfH+DhO+/pktBsp8KtLr1g+y+nNyHc2LRkAL+E/KozLATbKSA== - dependencies: - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/npm-run-script" "5.4.0" - "@lerna/output" "5.4.0" - "@lerna/profiler" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/timer" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/npm-run-script" "5.0.0" + "@lerna/output" "5.0.0" + "@lerna/profiler" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/timer" "5.0.0" + "@lerna/validation-error" "5.0.0" p-map "^4.0.0" -"@lerna/symlink-binary@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.4.0.tgz#33dfe2ba92ed3295c3a08710c9964dedde493d2a" - integrity sha512-DqwgjBywI8HgBaQYJjHzLkJ6IWspcL8rb8zgo4O/HSC7NJDTq3ir9S1HkzixxszL/G4Zp6mfqj0AGfzLYhjKLA== +"@lerna/symlink-binary@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.0.0.tgz#f9da5673ed3a44570fa4d2e691759f82bd7ad057" + integrity sha512-uYyiiNjkdL1tWf8MDXIIyCa/a2gmYaUxagqMgEZ4wRtOk+PDypDwMUFVop/EQtUWZqG5CAJBJYOztG3DdapTbA== dependencies: - "@lerna/create-symlink" "5.4.0" - "@lerna/package" "5.4.0" + "@lerna/create-symlink" "5.0.0" + "@lerna/package" "5.0.0" fs-extra "^9.1.0" p-map "^4.0.0" -"@lerna/symlink-dependencies@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.4.0.tgz#49d616b23750583fb6ffb0b30c07e23397948ba9" - integrity sha512-iKM4dykV0NHCsXEchgEsxtWur1OQ2glLXmJb02QHPsFdqLaAgl0F77+dVPfN16I743lgf52sz2rqIcVo7VeJrg== +"@lerna/symlink-dependencies@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.0.0.tgz#878b0f52737f82bb7014e13afda8efc606fc071c" + integrity sha512-wlZGOOB87XMy278hpF4fOwGNnjTXf1vJ/cFHIdKsJAiDipyhtnuCiJLBDPh4NzEGb02o4rhaqt8Nl5yWRu9CNA== dependencies: - "@lerna/create-symlink" "5.4.0" - "@lerna/resolve-symlink" "5.4.0" - "@lerna/symlink-binary" "5.4.0" + "@lerna/create-symlink" "5.0.0" + "@lerna/resolve-symlink" "5.0.0" + "@lerna/symlink-binary" "5.0.0" fs-extra "^9.1.0" p-map "^4.0.0" p-map-series "^2.1.0" -"@lerna/temp-write@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.4.0.tgz#6aa4db0019e45a74f8d4e8ca06644e2a86d93202" - integrity sha512-dojKAYCWhOmUw4fnJpruGfgBA9RMBW5mVkKJ5HcB2uruJza92ffV9SRADe5bnrIZDu4/mh/6lPU0+rVHvJhWsA== +"@lerna/temp-write@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.0.0.tgz#44f8c7c82f498e15db33c166d063be117b819162" + integrity sha512-JOkRR6xyASuBy1udyS/VD52Wgywnz7cSKppD+QKIDseNzTq27I9mNmb702BSXNXIdD19lLVQ7q6WoAlpnelnZg== dependencies: graceful-fs "^4.1.15" is-stream "^2.0.0" @@ -4716,42 +4720,42 @@ temp-dir "^1.0.0" uuid "^8.3.2" -"@lerna/timer@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/timer/-/timer-5.4.0.tgz#0915ec1f22c6b16157fef91c2364b464d41773bb" - integrity sha512-Ow070AbPVIYO5H1m0B85VGrQtYPa47s4cbA9gj9iU6VBVnw/F7tDN0e/QfGhYgb4atwc046WoZmUQYyD7w9l/g== +"@lerna/timer@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/timer/-/timer-5.0.0.tgz#ab8fba29f90de21b0eb02406916269122deb2e41" + integrity sha512-p2vevkpB6V/b0aR8VyMLDfg0Arp9VvMxcZOEu+IfZ9XKTtnbwjWPHKUOS34x/VGa6bnOIWjE046ixWymOs/fTw== -"@lerna/validation-error@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.4.0.tgz#ede63fccdb7ef8666fefb47151a475fd976afb34" - integrity sha512-H/CiOgMlZO0QlGbVGk1iVKDbtWKV0gUse9XwP7N15qroCJU2d6u0XUJS5eCTNQ/JrLdFCtEdzg3uPOHbpIOykw== +"@lerna/validation-error@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.0.0.tgz#3d3557023e3eb2fd3d8fc9c89f7352a1b6e5bd3e" + integrity sha512-fu/MhqRXiRQM2cirP/HoSkfwc5XtJ21G60WHv74RnanKBqWEZAUALWa3MQN2sYhVV/FpDW3GLkO008IW5NWzdg== dependencies: - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/version@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/version/-/version-5.4.0.tgz#61ef5032e5c73ee271f2c97d925503c92d37db73" - integrity sha512-SZZuSYkmMb/QKDCMM2IBxX2O5RN7O18ZWi75SCRQ+MZHXt6Yl4VC/l16TBtM8Nlf3ZmBP20sIWbm5UqD9f3FjQ== +"@lerna/version@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/version/-/version-5.0.0.tgz#36a808e8b4458febd58a6b76852f2ce30e740ca1" + integrity sha512-M8KvdyG5kR/d3wgg5S46Q2YMf0L9iw9MiumTvlDP4ckysTt+04kS74Vp4+aClgPM4xaoI5OuMrs6wy5ICcd3Pw== dependencies: - "@lerna/check-working-tree" "5.4.0" - "@lerna/child-process" "5.4.0" - "@lerna/collect-updates" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/conventional-commits" "5.4.0" - "@lerna/github-client" "5.4.0" - "@lerna/gitlab-client" "5.4.0" - "@lerna/output" "5.4.0" - "@lerna/prerelease-id-from-version" "5.4.0" - "@lerna/prompt" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/temp-write" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/check-working-tree" "5.0.0" + "@lerna/child-process" "5.0.0" + "@lerna/collect-updates" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/conventional-commits" "5.0.0" + "@lerna/github-client" "5.0.0" + "@lerna/gitlab-client" "5.0.0" + "@lerna/output" "5.0.0" + "@lerna/prerelease-id-from-version" "5.0.0" + "@lerna/prompt" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/temp-write" "5.0.0" + "@lerna/validation-error" "5.0.0" chalk "^4.1.0" dedent "^0.7.0" load-json-file "^6.2.0" minimatch "^3.0.4" - npmlog "^6.0.2" + npmlog "^4.1.2" p-map "^4.0.0" p-pipe "^3.1.0" p-reduce "^2.1.0" @@ -4760,13 +4764,13 @@ slash "^3.0.0" write-json-file "^4.3.0" -"@lerna/write-log-file@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.4.0.tgz#cb207187ce86e6c4fb46e971d2ea355c7ca53d20" - integrity sha512-Zj2rRG5HasQNOaVmOaSSAn6wZ4esJSJ/fI/IYK1yCvx9dMq5X0BAiVBWijXW7V1xlwJY0TDeI82p36HS09dFLQ== +"@lerna/write-log-file@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.0.0.tgz#ad3d33d6153b962beef48442ab6472233b5d5197" + integrity sha512-kpPNxe9xm36QbCWY7DwO96Na6FpCHzZinJtw6ttBHslIcdR38lZuCp+/2KfJcVsRIPNOsp1VvgP7EZIKiBhgjw== dependencies: - npmlog "^6.0.2" - write-file-atomic "^4.0.1" + npmlog "^4.1.2" + write-file-atomic "^3.0.3" "@lezer/common@^1.0.0": version "1.0.0" @@ -5115,31 +5119,31 @@ tslib "2.3.1" uuid "8.3.2" -"@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@5.3.0": - version "5.3.0" - resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.3.0.tgz#321d9424677bfc08569e98a5ac445ee781f32053" - integrity sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A== +"@npmcli/arborist@5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.2.0.tgz#ee40dfe1f81ae1524819ee39c8f3e7022b0d6269" + integrity sha512-zWV7scFGL0SmpvfQyIWnMFbU/0YgtMNyvJiJwR98kyjUSntJGWFFR0O600d5W+TrDcTg0GyDbY+HdzGEg+GXLg== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/installed-package-contents" "^1.0.7" @@ -5149,7 +5153,7 @@ "@npmcli/name-from-folder" "^1.0.1" "@npmcli/node-gyp" "^2.0.0" "@npmcli/package-json" "^2.0.0" - "@npmcli/run-script" "^4.1.3" + "@npmcli/run-script" "^3.0.0" bin-links "^3.0.0" cacache "^16.0.6" common-ancestor-path "^1.0.1" @@ -5163,7 +5167,7 @@ npm-pick-manifest "^7.0.0" npm-registry-fetch "^13.0.0" npmlog "^6.0.2" - pacote "^13.6.1" + pacote "^13.0.5" parse-conflict-json "^2.0.1" proc-log "^2.0.0" promise-all-reject-late "^1.0.0" @@ -5214,18 +5218,23 @@ treeverse "^1.0.4" 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== + "@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/fs@^2.1.0": - version "2.1.1" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.1.tgz#c0c480b03450d8b9fc086816a50cb682668a48bf" - integrity sha512-1Q0uzx6c/NVNGszePbr5Gc2riSU1zLpNlo/1YWntH+eaPmMgBssAW0qXofCVkpdj3ce4swZtlDYQu+NKiYcptg== + version "2.1.0" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109" + integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== dependencies: "@gar/promisify" "^1.1.3" semver "^7.3.5" @@ -5278,9 +5287,9 @@ read-package-json-fast "^2.0.1" "@npmcli/map-workspaces@^2.0.3": - version "2.0.4" - resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" - integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== + version "2.0.3" + resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz#2d3c75119ee53246e9aa75bc469a55281cd5f08f" + integrity sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q== dependencies: "@npmcli/name-from-folder" "^1.0.1" glob "^8.0.1" @@ -5298,16 +5307,23 @@ semver "^7.3.2" "@npmcli/metavuln-calculator@^3.0.1": - version "3.1.1" - resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" - integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== + version "3.1.0" + resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.0.tgz#b1c2f0991c4f2d992b1615a54d4358c05efc3702" + integrity sha512-Q5fbQqGDlYqk7kWrbg6E2j/mtqQjZop0ZE6735wYA1tYNHguIDjAuWs+kFb5rJCkLIlXllfapvsyotYKiZOTBA== dependencies: cacache "^16.0.0" json-parse-even-better-errors "^2.3.1" pacote "^13.0.3" semver "^7.3.5" -"@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== @@ -5376,30 +5392,15 @@ node-gyp "^8.2.0" read-package-json-fast "^2.0.1" -"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.1.7": - version "4.2.0" - resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.0.tgz#2c25758f80831ba138afe25225d456e89acedac3" - integrity sha512-e/QgLg7j2wSJp1/7JRl0GC8c7PMX+uYlA/1Tb+IDOLdSM4T7K1VQ9mm9IGU3WRtY5vEIObpqCLb3aCNCug18DA== +"@npmcli/run-script@^3.0.0", "@npmcli/run-script@^3.0.1", "@npmcli/run-script@^3.0.2": + version "3.0.3" + resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.3.tgz#66afa6e0c4c3484056195f295fa6c1d1a45ddf58" + integrity sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q== dependencies: "@npmcli/node-gyp" "^2.0.0" "@npmcli/promise-spawn" "^3.0.0" - node-gyp "^9.0.0" + node-gyp "^8.4.1" read-package-json-fast "^2.0.3" - which "^2.0.2" - -"@nrwl/cli@14.5.4": - version "14.5.4" - resolved "https://registry.npmjs.org/@nrwl/cli/-/cli-14.5.4.tgz#86ac4fbcd1bf079b67c420376cf696b68fcc1200" - integrity sha512-UYr14hxeYV8p/zt6D6z33hljZJQROJAVxSC+mm72fyVvy88Gt0sQNLfMmOARXur0p/73PSLM0jJ2Sr7Ftsuu+A== - dependencies: - nx "14.5.4" - -"@nrwl/tao@14.5.4": - version "14.5.4" - resolved "https://registry.npmjs.org/@nrwl/tao/-/tao-14.5.4.tgz#a67097d424bcbf7073a1944ea1a0209c4f4f859c" - integrity sha512-a2GCuSE8WghjehuU3GVO63KZEnZXXQiqEg137yN/Na+PxwSu68XeaX53SLyzRskTV120YwBBy1YCTNzAZxxsjg== - dependencies: - nx "14.5.4" "@nuxtjs/opencollective@0.3.2": version "0.3.2" @@ -5752,7 +5753,7 @@ node-fetch "^2.6.7" universal-user-agent "^6.0.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== @@ -5876,14 +5877,6 @@ resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== -"@parcel/watcher@2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" - integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg== - dependencies: - node-addon-api "^3.2.1" - node-gyp-build "^4.3.0" - "@peculiar/asn1-schema@^2.1.6": version "2.2.0" resolved "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.2.0.tgz#d8a54527685c8dee518e6448137349444310ad64" @@ -7186,7 +7179,7 @@ "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/jsonwebtoken@^8.3.3", "@types/jsonwebtoken@^8.5.0": version "8.5.0" @@ -8405,7 +8398,7 @@ acorn@^8.8.0: add-stream@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= address@^1.0.1, address@^1.1.2: version "1.1.2" @@ -8424,19 +8417,19 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== +agentkeepalive@^4.1.3, agentkeepalive@^4.1.4, agentkeepalive@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz#616ce94ccb41d1a39a45d203d8076fe98713062d" + integrity sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw== dependencies: debug "^4.1.0" depd "^1.1.2" humanize-ms "^1.2.1" -agentkeepalive@^4.1.4, agentkeepalive@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz#616ce94ccb41d1a39a45d203d8076fe98713062d" - integrity sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw== +agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== dependencies: debug "^4.1.0" depd "^1.1.2" @@ -8749,9 +8742,9 @@ are-we-there-yet@^2.0.0: readable-stream "^3.6.0" are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== + version "3.0.0" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" + integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== dependencies: delegates "^1.0.0" readable-stream "^3.6.0" @@ -8842,7 +8835,7 @@ array-flatten@^2.1.2: array-ify@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= array-includes@^3.1.2, array-includes@^3.1.4: version "3.1.4" @@ -9460,21 +9453,21 @@ bignumber.js@^9.0.0: integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== bin-links@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/bin-links/-/bin-links-3.0.1.tgz#cc70ffb481988b22c527d3e6e454787876987a49" - integrity sha512-9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ== + version "3.0.0" + resolved "https://registry.npmjs.org/bin-links/-/bin-links-3.0.0.tgz#8273063638919f6ba4fbe890de9438c1b3adf0b7" + integrity sha512-fC7kPWcEkAWBgCKxmAMqZldlIeHsXwQy9JXzrppAVQiukGiDKxmYesJcBKWu6UMwx/5GOfo10wtK/4zy+Xt/mg== dependencies: - cmd-shim "^5.0.0" + cmd-shim "^4.0.1" mkdirp-infer-owner "^2.0.0" npm-normalize-package-bin "^1.0.0" - read-cmd-shim "^3.0.0" + read-cmd-shim "^2.0.0" rimraf "^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" @@ -9825,7 +9818,7 @@ builtin-status-codes@^3.0.0: builtins@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= builtins@^5.0.0: version "5.0.1" @@ -9847,9 +9840,9 @@ 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" @@ -10074,14 +10067,6 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" @@ -10197,7 +10182,7 @@ check-types@^11.1.1: resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== -chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3: +chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -10291,22 +10276,17 @@ clean-stack@^2.0.0: resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-cursor@3.1.0, cli-cursor@^3.1.0: +cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" -cli-spinners@2.6.1: - 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-spinners@^2.5.0: - version "2.7.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" - integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== + 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" @@ -10427,10 +10407,10 @@ cluster-key-slot@^1.1.0: resolved "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== -cmd-shim@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" - integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== +cmd-shim@^4.0.1, cmd-shim@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" + integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== dependencies: mkdirp-infer-owner "^2.0.0" @@ -10600,12 +10580,12 @@ colorspace@1.1.x: color "3.0.x" text-hex "1.0.x" -columnify@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" - integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== +columnify@^1.5.4: + 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: @@ -10778,7 +10758,7 @@ compute-lcm@^1.1.0, compute-lcm@^1.1.2: concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^2.0.0: version "2.0.0" @@ -10827,9 +10807,9 @@ concurrently@^7.0.0: yargs "^17.3.1" 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" @@ -10893,14 +10873,14 @@ 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" -conventional-changelog-core@^4.2.4: +conventional-changelog-core@^4.2.2: version "4.2.4" resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== @@ -10949,9 +10929,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" @@ -10959,6 +10939,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" @@ -11049,16 +11030,11 @@ core-js@^3.4.1, core-js@^3.6.5: resolved "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" integrity sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg== -core-util-is@1.0.2: +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" @@ -11860,7 +11836,7 @@ debug@~4.1.0: debuglog@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= decamelize-keys@^1.1.0: version "1.1.0" @@ -11914,7 +11890,7 @@ decompress-response@^6.0.0: dedent@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= deep-extend@0.6.0, deep-extend@^0.6.0: version "0.6.0" @@ -12012,7 +11988,7 @@ delayed-stream@~1.0.0: delegates@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= denque@^2.0.1: version "2.0.1" @@ -12065,7 +12041,7 @@ destroy@1.2.0: detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= detect-indent@^6.0.0: version "6.1.0" @@ -12110,7 +12086,7 @@ devtools-protocol@0.0.1019158: resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz#4b08d06108a784a2134313149626ba55f030a86f" integrity sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ== -dezalgo@1.0.3: +dezalgo@1.0.3, dezalgo@^1.0.0: version "1.0.3" resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= @@ -12118,14 +12094,6 @@ dezalgo@1.0.3: asap "^2.0.0" wrappy "1" -dezalgo@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" - integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== - dependencies: - asap "^2.0.0" - wrappy "1" - diff-sequences@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" @@ -12346,11 +12314,6 @@ dotenv@^16.0.0: resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== -dotenv@~10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - drange@^1.0.2: version "1.1.1" resolved "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz#b2aecec2aab82fcef11dbbd7b9e32b83f8f6c0b8" @@ -12361,16 +12324,16 @@ dset@^3.1.2: resolved "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== -duplexer@^0.1.1, 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== - -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.1" resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" @@ -12550,7 +12513,7 @@ enhanced-resolve@^5.10.0: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.0, enquirer@^2.3.6, enquirer@~2.3.6: +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== @@ -12573,14 +12536,14 @@ entities@^4.3.0: integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== 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" @@ -13608,17 +13571,6 @@ 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.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -13683,9 +13635,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" @@ -13740,7 +13692,7 @@ fecha@^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@3.2.0, figures@^3.0.0, figures@^3.2.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== @@ -13914,11 +13866,6 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - flatstr@^1.0.12: version "1.0.12" resolved "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" @@ -14122,7 +14069,7 @@ fs-extra@10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.0.1, fs-extra@^10.1.0: +fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.0.1: version "10.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -14174,7 +14121,7 @@ fs-monkey@1.0.3: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" @@ -14221,6 +14168,21 @@ gauge@^3.0.0: strip-ansi "^6.0.1" 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== + dependencies: + ansi-regex "^5.0.1" + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + gauge@^4.0.3: version "4.0.4" resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" @@ -14410,9 +14372,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" @@ -14423,7 +14385,7 @@ git-raw-commits@^2.0.8: git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== + integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= dependencies: gitconfiglocal "^1.0.0" pify "^2.3.0" @@ -14436,6 +14398,14 @@ git-semver-tags@^4.1.1: meow "^8.0.0" 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== + dependencies: + is-ssh "^1.3.0" + parse-url "^5.0.0" + git-up@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/git-up/-/git-up-6.0.0.tgz#dbd6e4eee270338be847a0601e6d0763c90b74db" @@ -14444,6 +14414,13 @@ git-up@^6.0.0: is-ssh "^1.4.0" parse-url "^7.0.2" +git-url-parse@^11.4.4: + version "11.6.0" + resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" + integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== + dependencies: + git-up "^4.0.0" + git-url-parse@^12.0.0: version "12.0.0" resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-12.0.0.tgz#4ba70bc1e99138321c57e3765aaf7428e5abb793" @@ -14454,7 +14431,7 @@ git-url-parse@^12.0.0: gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= dependencies: ini "^1.3.2" @@ -14482,18 +14459,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.4: - version "7.1.4" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -14519,15 +14484,16 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl path-is-absolute "^1.0.0" glob@^8.0.1: - version "8.0.3" - resolved "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + version "8.0.1" + resolved "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz#00308f5c035aa0b2a447cd37ead267ddff1577d3" + integrity sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^5.0.1" once "^1.3.0" + path-is-absolute "^1.0.0" global-agent@^3.0.0: version "3.0.0" @@ -14678,16 +14644,16 @@ got@^11.8.3: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -15307,7 +15273,7 @@ humanize-duration@^3.25.1, humanize-duration@^3.26.0, humanize-duration@^3.27.0, humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= dependencies: ms "^2.0.0" @@ -15367,6 +15333,13 @@ ignore-by-default@^1.0.1: resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 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== + dependencies: + minimatch "^3.0.4" + ignore-walk@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" @@ -15386,7 +15359,7 @@ ignore@^3.3.5: resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^5.0.4, ignore@^5.1.4, ignore@^5.2.0: +ignore@^5.1.4, ignore@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -15423,7 +15396,7 @@ import-cwd@^3.0.0: dependencies: import-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.1.0: +import-fresh@^3.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== @@ -15431,14 +15404,6 @@ import-fresh@^3.0.0, import-fresh@^3.1.0: parent-module "^1.0.0" resolve-from "^4.0.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== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - import-from@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" @@ -15457,9 +15422,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" @@ -15467,7 +15432,7 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indefinite-observable@^2.0.1: version "2.0.1" @@ -15499,7 +15464,7 @@ infer-owner@^1.0.4: inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" @@ -15529,18 +15494,19 @@ ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -init-package-json@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" - integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== +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== dependencies: - npm-package-arg "^9.0.1" + glob "^7.1.1" + npm-package-arg "^8.1.0" promzard "^0.3.0" - read "^1.0.7" - read-package-json "^5.0.0" - semver "^7.3.5" + read "~1.0.1" + read-package-json "^3.0.0" + semver "^7.3.2" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^4.0.0" + validate-npm-package-name "^3.0.0" inline-style-parser@0.1.1: version "0.1.1" @@ -15574,7 +15540,26 @@ inquirer@8.2.2: strip-ansi "^6.0.0" through "^2.3.6" -inquirer@^8.0.0, inquirer@^8.2.0, inquirer@^8.2.4: +inquirer@^7.3.3: + version "7.3.3" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +inquirer@^8.0.0, inquirer@^8.2.0: version "8.2.4" resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== @@ -15654,10 +15639,10 @@ ioredis@^5.1.0: redis-parser "^3.0.0" standard-as-callback "^2.1.0" -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== +ip@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.1: version "1.9.1" @@ -15802,7 +15787,14 @@ is-core-module@^2.1.0, is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1, is-core-module@^2.9.0: +is-core-module@^2.8.0, is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-core-module@^2.9.0: version "2.10.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== @@ -15886,7 +15878,7 @@ is-extendable@^1.0.1: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -15958,7 +15950,7 @@ is-interactive@^1.0.0: is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= is-lower-case@^2.0.2: version "2.0.2" @@ -16024,7 +16016,7 @@ is-path-inside@^3.0.2: is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-obj@^2.0.0: version "2.1.0" @@ -16070,6 +16062,11 @@ is-primitive@^3.0.1: resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz#98c4db1abff185485a657fc2905052b940524d05" integrity sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w== +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== + is-promise@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" @@ -16126,6 +16123,13 @@ is-shared-array-buffer@^1.0.1, is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +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== + dependencies: + protocols "^1.1.0" + is-ssh@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" @@ -16177,7 +16181,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: is-text-path@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= dependencies: text-extensions "^1.0.0" @@ -17212,7 +17216,7 @@ json5@^2.1.2, json5@^2.1.3, json5@^2.2.0, json5@^2.2.1: resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== -jsonc-parser@3.0.0, jsonc-parser@^3.0.0: +jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== @@ -17241,7 +17245,7 @@ jsonify@~0.0.0: jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= jsonpath-plus@^0.19.0: version "0.19.0" @@ -17396,15 +17400,15 @@ jsx-ast-utils@^3.3.2: array-includes "^3.1.5" object.assign "^4.1.2" -just-diff-apply@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" - integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== +just-diff-apply@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-4.0.1.tgz#da89c5a4ccb14aa8873c70e2c3b6695cef45dab5" + integrity sha512-AKOkzB5P6FkfP21UlZVX/OPXx/sC2GagpLX9cBxqHqDuRjwmZ/AJRKSNrB9jHPpRW1W1ONs6gly1gW46t055nQ== just-diff@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202" - integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ== + version "5.0.1" + resolved "https://registry.npmjs.org/just-diff/-/just-diff-5.0.1.tgz#db8fe1cfeea1156f2374bfb289826dca28e7e390" + integrity sha512-X00TokkRIDotUIf3EV4xUm6ELc/IkqhS/vPSHdWnsM5y0HoNMfEqrazizI7g78lpHvnRSRt/PFfKtRqJCOGIuQ== just-extend@^4.0.2: version "4.2.1" @@ -17610,29 +17614,28 @@ leasot@^12.0.0: text-table "^0.2.0" lerna@^5.0.0: - version "5.4.0" - resolved "https://registry.npmjs.org/lerna/-/lerna-5.4.0.tgz#0b3c2310146fa9480ade9c6978c7693ad5c39fe1" - integrity sha512-y1gRvW5oFo+xumYQCDadDj8r4R4o6fpmuNc94b2h8HRoiCnHZWIlMvym4m+R7kSDh0CuuYRTB2wPjUrHmQXL7w== + version "5.0.0" + resolved "https://registry.npmjs.org/lerna/-/lerna-5.0.0.tgz#077e35d41fcead5ea223af1862dc25475e1aaf2a" + integrity sha512-dUYmJ7H9k/xHtwKpQWLTNUa1jnFUiW4o4K2LFkRchlIijoIUT4yK/RprIxNvYCrLrEaOdZryvY5UZvSHI2tBxA== dependencies: - "@lerna/add" "5.4.0" - "@lerna/bootstrap" "5.4.0" - "@lerna/changed" "5.4.0" - "@lerna/clean" "5.4.0" - "@lerna/cli" "5.4.0" - "@lerna/create" "5.4.0" - "@lerna/diff" "5.4.0" - "@lerna/exec" "5.4.0" - "@lerna/import" "5.4.0" - "@lerna/info" "5.4.0" - "@lerna/init" "5.4.0" - "@lerna/link" "5.4.0" - "@lerna/list" "5.4.0" - "@lerna/publish" "5.4.0" - "@lerna/run" "5.4.0" - "@lerna/version" "5.4.0" + "@lerna/add" "5.0.0" + "@lerna/bootstrap" "5.0.0" + "@lerna/changed" "5.0.0" + "@lerna/clean" "5.0.0" + "@lerna/cli" "5.0.0" + "@lerna/create" "5.0.0" + "@lerna/diff" "5.0.0" + "@lerna/exec" "5.0.0" + "@lerna/import" "5.0.0" + "@lerna/info" "5.0.0" + "@lerna/init" "5.0.0" + "@lerna/link" "5.0.0" + "@lerna/list" "5.0.0" + "@lerna/publish" "5.0.0" + "@lerna/run" "5.0.0" + "@lerna/version" "5.0.0" import-local "^3.0.2" - npmlog "^6.0.2" - nx ">=14.5.4 < 16" + npmlog "^4.1.2" leven@2.1.0: version "2.1.0" @@ -17665,26 +17668,26 @@ li@^1.3.0: resolved "https://registry.npmjs.org/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b" integrity sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs= -libnpmaccess@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-6.0.3.tgz#473cc3e4aadb2bc713419d92e45d23b070d8cded" - integrity sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg== +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== dependencies: aproba "^2.0.0" minipass "^3.1.1" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" + npm-package-arg "^8.0.0" + npm-registry-fetch "^9.0.0" -libnpmpublish@^6.0.4: - version "6.0.4" - resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.4.tgz#adb41ec6b0c307d6f603746a4d929dcefb8f1a0b" - integrity sha512-lvAEYW8mB8QblL6Q/PI/wMzKNvIrF7Kpujf/4fGS/32a2i3jzUXi04TNyIBcK6dQJ34IgywfaKGh+Jq4HYPFmg== +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== dependencies: - normalize-package-data "^4.0.0" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" - semver "^7.3.7" - ssri "^9.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.0" lilconfig@2.0.5: version "2.0.5" @@ -17783,7 +17786,7 @@ load-json-file@^1.0.0: load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -17841,7 +17844,7 @@ loader-utils@^3.2.0: locate-path@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -17873,6 +17876,11 @@ lodash-es@^4.17.21: resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + lodash.assign@^4.1.0, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -17966,7 +17974,7 @@ lodash.isinteger@^4.0.4: lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= lodash.isnil@^4.0.0: version "4.0.0" @@ -18028,6 +18036,21 @@ lodash.startcase@^4.4.0: resolved "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" @@ -18153,7 +18176,7 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.10.1: +lru-cache@^7.10.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.10.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz#db577f42a94c168f676b638d15da8fb073448cab" integrity sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A== @@ -18163,11 +18186,6 @@ 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-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.13.2" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.2.tgz#bb5d3f1deea3f3a7a35c1c44345566a612e09cd0" - integrity sha512-VJL3nIpA79TodY/ctmZEfhASgqekbT574/c4j3jn4bKXbSCnTTCH/KltZyvL2GlV+tGSMtsWyem8DCX7qKTMBA== - lunr@^2.3.9: version "2.3.9" resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" @@ -18254,10 +18272,10 @@ make-fetch-happen@^10.0.1: socks-proxy-agent "^6.1.1" ssri "^8.0.1" -make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: - version "10.2.0" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.0.tgz#0bde3914f2f82750b5d48c6d2294d2c74f985e5b" - integrity sha512-OnEfCLofQVJ5zgKwGk55GaqosqKjaR6khQlJY3dBAA+hM25Bc5CmX5rKUfVut+rYA3uidA7zb7AvcglU87rPRg== +make-fetch-happen@^10.0.6: + version "10.1.7" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz#b1402cb3c9fad92b380ff3a863cdae5414a42f76" + integrity sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q== dependencies: agentkeepalive "^4.2.1" cacache "^16.1.0" @@ -18276,6 +18294,27 @@ make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: socks-proxy-agent "^7.0.0" ssri "^9.0.0" +make-fetch-happen@^8.0.9: + version "8.0.14" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" + integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.0.5" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + promise-retry "^2.0.1" + socks-proxy-agent "^5.0.0" + ssri "^8.0.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" @@ -18626,7 +18665,12 @@ 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: +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.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -19056,13 +19100,6 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@3.0.5: - version "3.0.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" - integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== - dependencies: - brace-expansion "^1.1.7" - minimatch@4.2.1: version "4.2.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" @@ -19112,7 +19149,7 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: +minipass-fetch@^1.3.0, minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== @@ -19164,9 +19201,9 @@ minipass-sized@^1.0.3: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: - version "3.3.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + version "3.1.6" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" + integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== dependencies: yallist "^4.0.0" @@ -19541,11 +19578,6 @@ node-abort-controller@^3.0.1: resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e" integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw== -node-addon-api@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - node-cache@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d" @@ -19577,12 +19609,7 @@ node-forge@^1, node-forge@^1.3.1: resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -node-gyp@^8.2.0: +node-gyp@^8.2.0, node-gyp@^8.4.1: version "8.4.1" resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== @@ -19598,22 +19625,6 @@ node-gyp@^8.2.0: tar "^6.1.2" which "^2.0.2" -node-gyp@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.1.0.tgz#c8d8e590678ea1f7b8097511dedf41fc126648f8" - integrity sha512-HkmN0ZpQJU7FLbJauJTHkHlSVAXlNGDAzH/VYFZGDOnFyn/Na3GlNJfkudmufOdS6/jNFhy88ObzL7ERz9es1g== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -19704,13 +19715,13 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: validate-npm-package-license "^3.0.1" normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + 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-package-data@^4.0.0: @@ -19735,6 +19746,11 @@ 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@^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" @@ -19766,16 +19782,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.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" - integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg== - dependencies: - hosted-git-info "^3.0.6" - semver "^7.0.0" - validate-npm-package-name "^3.0.0" - -npm-package-arg@^8.0.1, 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== @@ -19785,15 +19792,24 @@ npm-package-arg@^8.0.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: validate-npm-package-name "^3.0.0" npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: - version "9.1.0" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz#a60e9f1e7c03e4e3e4e994ea87fff8b90b522987" - integrity sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw== + version "9.0.2" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.0.2.tgz#f3ef7b1b3b02e82564af2d5228b4c36567dcd389" + integrity sha512-v/miORuX8cndiOheW8p2moNuPJ7QhcFh9WGlTorruG8hXSA23vMTEp5hTCmDxic0nD8KHhj/NQgFuySD3GYY3g== dependencies: hosted-git-info "^5.0.0" - proc-log "^2.0.1" semver "^7.3.5" validate-npm-package-name "^4.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== + dependencies: + glob "^7.1.6" + ignore-walk "^3.0.3" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + npm-packlist@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" @@ -19804,7 +19820,7 @@ npm-packlist@^3.0.0: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -npm-packlist@^5.0.0, npm-packlist@^5.1.0, npm-packlist@^5.1.1: +npm-packlist@^5.0.0, npm-packlist@^5.1.0: version "5.1.1" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz#79bcaf22a26b6c30aa4dd66b976d69cc286800e0" integrity sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw== @@ -19846,10 +19862,10 @@ npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: minizlib "^2.1.2" npm-package-arg "^8.1.5" -npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.0: - version "13.3.0" - resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.0.tgz#0ce10fa4a699a1e70685ecf41bbfb4150d74231b" - integrity sha512-10LJQ/1+VhKrZjIuY9I/+gQTvumqqlgnsCufoXETHAPFTS3+M+Z5CFhZRDHGavmJ6rOye3UvNga88vl8n1r6gg== +npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: + version "13.1.1" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz#26dc4b26d0a545886e807748032ba2aefaaae96b" + integrity sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w== dependencies: make-fetch-happen "^10.0.6" minipass "^3.1.6" @@ -19859,6 +19875,20 @@ npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3 npm-package-arg "^9.0.1" proc-log "^2.0.0" +npm-registry-fetch@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz#86f3feb4ce00313bc0b8f1f8f69daae6face1661" + integrity sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA== + dependencies: + "@npmcli/ci-detect" "^1.0.0" + lru-cache "^6.0.0" + make-fetch-happen "^8.0.9" + 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-run-path@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -19900,7 +19930,17 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -npmlog@^6.0.0, npmlog@^6.0.2: +npmlog@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz#06f1344a174c06e8de9c6c70834cfba2964bba17" + integrity sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.0" + set-blocking "^2.0.0" + +npmlog@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== @@ -19941,42 +19981,6 @@ nwsapi@^2.2.0: resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -nx@14.5.4, "nx@>=14.5.4 < 16": - version "14.5.4" - resolved "https://registry.npmjs.org/nx/-/nx-14.5.4.tgz#58b6e8ee798733a6ab9aff2a19180c371482fa10" - integrity sha512-xv1nTaQP6kqVDE4PXcB1tLlgzNAPUHE/2vlqSLgxjNb6colKf0vrEZhVTjhnbqBeJiTb33gUx50bBXkurCkN5w== - dependencies: - "@nrwl/cli" "14.5.4" - "@nrwl/tao" "14.5.4" - "@parcel/watcher" "2.0.4" - chalk "4.1.0" - chokidar "^3.5.1" - cli-cursor "3.1.0" - cli-spinners "2.6.1" - cliui "^7.0.2" - dotenv "~10.0.0" - enquirer "~2.3.6" - fast-glob "3.2.7" - figures "3.2.0" - flat "^5.0.2" - fs-extra "^10.1.0" - glob "7.1.4" - ignore "^5.0.4" - js-yaml "4.1.0" - jsonc-parser "3.0.0" - minimatch "3.0.5" - npm-run-path "^4.0.1" - open "^8.4.0" - semver "7.3.4" - string-width "^4.2.3" - tar-stream "~2.2.0" - tmp "~0.2.1" - tsconfig-paths "^3.9.0" - tslib "^2.3.0" - v8-compile-cache "2.3.0" - yargs "^17.4.0" - yargs-parser "21.0.1" - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -20294,7 +20298,7 @@ p-filter@^2.1.0: p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^3.0.0: version "3.0.0" @@ -20339,7 +20343,7 @@ p-limit@^4.0.0: p-locate@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" @@ -20425,7 +20429,7 @@ p-transform@^1.3.0: p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: version "2.2.0" @@ -20469,15 +20473,15 @@ pacote@^12.0.0, pacote@^12.0.2: ssri "^8.0.1" tar "^6.1.0" -pacote@^13.0.3, pacote@^13.6.1: - version "13.6.1" - resolved "https://registry.npmjs.org/pacote/-/pacote-13.6.1.tgz#ac6cbd9032b4c16e5c1e0c60138dfe44e4cc589d" - integrity sha512-L+2BI1ougAPsFjXRyBhcKmfT016NscRFLv6Pz5EiNf1CCFJFU0pSKKQwsZTyAQB+sTuUL4TyFyp6J1Ork3dOqw== +pacote@^13.0.3, pacote@^13.0.5, pacote@^13.4.1: + version "13.6.0" + resolved "https://registry.npmjs.org/pacote/-/pacote-13.6.0.tgz#79ea3d3ae5a2b29e2994dcf18d75494e8d888032" + integrity sha512-zHmuCwG4+QKnj47LFlW3LmArwKoglx2k5xtADiMCivVWPgNRP5QyLDGOIjGjwOe61lhl1rO63m/VxT16pEHLWg== dependencies: "@npmcli/git" "^3.0.0" "@npmcli/installed-package-contents" "^1.0.7" "@npmcli/promise-spawn" "^3.0.0" - "@npmcli/run-script" "^4.1.0" + "@npmcli/run-script" "^3.0.1" cacache "^16.0.0" chownr "^2.0.0" fs-minipass "^2.1.0" @@ -20552,13 +20556,13 @@ parse-bmfont-xml@^1.1.4: xml2js "^0.4.5" parse-conflict-json@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" - integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== + version "2.0.1" + resolved "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.1.tgz#76647dd072e6068bcaff20be6ccea68a18e1fb58" + integrity sha512-Y7nYw+QaSGBto1LB9lgwOR05Rtz5SbuTf+Oe7HJ6SYQ/DHsvRjQ8O03oWdJbvkt6GzDWospgyZbGmjDYL0sDgA== dependencies: json-parse-even-better-errors "^2.3.1" just-diff "^5.0.1" - just-diff-apply "^5.2.0" + just-diff-apply "^4.0.1" parse-entities@^2.0.0: version "2.0.0" @@ -20608,7 +20612,7 @@ parse-json@^2.2.0: parse-json@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -20628,6 +20632,14 @@ parse-package-name@^0.1.0: resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" 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== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + parse-path@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/parse-path/-/parse-path-5.0.0.tgz#f933152f3c6d34f4cf36cfc3d07b138ac113649d" @@ -20635,6 +20647,16 @@ parse-path@^5.0.0: dependencies: protocols "^2.0.0" +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 "^3.3.0" + parse-path "^4.0.0" + protocols "^1.4.0" + parse-url@^7.0.2: version "7.0.2" resolved "https://registry.npmjs.org/parse-url/-/parse-url-7.0.2.tgz#d21232417199b8d371c6aec0cedf1406fd6393f0" @@ -20812,7 +20834,7 @@ path-exists@^2.0.0: path-exists@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" @@ -20822,7 +20844,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@1.0.2, path-is-inside@^1.0.2: version "1.0.2" @@ -21036,7 +21058,7 @@ pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: pify@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.1: version "4.0.1" @@ -21586,7 +21608,7 @@ proc-log@^1.0.0: resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" integrity sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg== -proc-log@^2.0.0, proc-log@^2.0.1: +proc-log@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== @@ -21631,7 +21653,7 @@ promise-call-limit@^1.0.1: promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= promise-retry@^2.0.1: version "2.0.1" @@ -21664,7 +21686,7 @@ prompts@^2.0.1, prompts@^2.4.2: promzard@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== + integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= dependencies: read "1" @@ -21704,7 +21726,7 @@ property-information@^6.0.0: proto-list@~1.2.1: version "1.2.4" resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= proto3-json-serializer@^1.0.0: version "1.0.0" @@ -21751,6 +21773,11 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.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== + protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" @@ -21873,7 +21900,7 @@ pvutils@^1.1.3: q@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@6.10.3, 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" @@ -21922,11 +21949,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" @@ -22441,10 +22463,10 @@ react@^17.0.2: loose-envify "^1.1.0" object-assign "^4.1.1" -read-cmd-shim@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155" - integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog== +read-cmd-shim@^2.0.0: + version "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: version "2.0.3" @@ -22454,7 +22476,17 @@ read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json- json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@^5.0.0, read-package-json@^5.0.1: +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== + 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@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26" integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg== @@ -22475,7 +22507,7 @@ read-pkg-up@^1.0.1: read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" read-pkg "^3.0.0" @@ -22501,7 +22533,7 @@ read-pkg@^1.0.0: read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" @@ -22527,10 +22559,10 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" -read@1, read@^1.0.7: +read@1, read@~1.0.1: version "1.0.7" resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= dependencies: mute-stream "~0.0.4" @@ -23059,7 +23091,7 @@ resolve.exports@^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.14.2, resolve@^1.19.0, resolve@^1.20.0: +resolve@^1.1.6, 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== @@ -23068,7 +23100,7 @@ resolve@^1.1.6, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.10.0, resolve@^1.17.0: +resolve@^1.10.0: version "1.22.1" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -23150,7 +23182,7 @@ retry@0.13.1: retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= reusify@^1.0.4: version "1.0.4" @@ -23303,37 +23335,37 @@ rtl-css-js@^1.14.0: "@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.1.0: version "0.1.1" resolved "https://registry.npmjs.org/run-script-webpack-plugin/-/run-script-webpack-plugin-0.1.1.tgz#dad3114be32eb864d2160306e4d9c52a2c1cfd59" integrity sha512-PrxBRLv1K9itDKMlootSCyGhdTU+KbKGJ2wF6/k0eyo6M0YGPC58HYbS/J/QsDiwM0t7G99WcuCqto0J7omOXA== -rxjs@7.5.5, rxjs@^7.1.0, rxjs@^7.5.1: +rxjs@7.5.5, rxjs@^7.1.0, rxjs@^7.5.1, rxjs@^7.5.5: version "7.5.5" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== dependencies: tslib "^2.1.0" -rxjs@^6.6.3: +rxjs@^6.6.0, rxjs@^6.6.3: version "6.6.7" resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -rxjs@^7.0.0, rxjs@^7.5.5: +rxjs@^7.0.0: version "7.5.6" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== @@ -23506,13 +23538,6 @@ semver@7.0.0, semver@~7.0.0: resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.4: - version "7.3.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -23619,7 +23644,7 @@ serve-static@1.15.0: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-cookie-parser@^2.4.6: version "2.4.8" @@ -23955,16 +23980,16 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" - integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== +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== dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" + agent-base "6" + debug "4" + socks "^2.3.3" -socks-proxy-agent@^6.1.1: +socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== @@ -23982,12 +24007,12 @@ socks-proxy-agent@^7.0.0: debug "^4.3.3" socks "^2.6.2" -socks@^2.6.1, socks@^2.6.2: - version "2.7.0" - resolved "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz#f9225acdb841e874dca25f870e9130990f3913d0" - integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== +socks@^2.3.3, socks@^2.6.1, socks@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" + integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== dependencies: - ip "^2.0.0" + ip "^1.1.5" smart-buffer "^4.2.0" sonic-boom@^0.7.5: @@ -24001,7 +24026,7 @@ sonic-boom@^0.7.5: sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= dependencies: is-plain-obj "^1.0.0" @@ -24244,7 +24269,7 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" -ssri@^9.0.0, ssri@^9.0.1: +ssri@^9.0.0: version "9.0.1" resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== @@ -24891,7 +24916,7 @@ tar-fs@~2.0.1: pump "^3.0.0" tar-stream "^2.0.0" -tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0, tar-stream@~2.2.0: +tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -24965,7 +24990,7 @@ teeny-request@^8.0.0: temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= temp@^0.8.4: version "0.8.4" @@ -25298,7 +25323,7 @@ tr46@^2.1.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= traverse@^0.6.6, traverse@~0.6.6: version "0.6.6" @@ -25325,6 +25350,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" @@ -25401,7 +25431,7 @@ ts-node@^9: source-map-support "^0.5.17" yn "3.1.1" -tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: +tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== @@ -25426,7 +25456,7 @@ tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@~2.4.0: +tslib@^2.1.0, tslib@^2.4.0, tslib@~2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -25559,7 +25589,7 @@ typedarray-to-buffer@^3.1.5: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript-json-schema@^0.54.0: version "0.54.0" @@ -25596,9 +25626,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.16.3" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz#94c7a63337ee31227a18d03b8a3041c210fd1f1d" - integrity sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw== + version "3.14.3" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf" + integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g== uid-safe@~2.1.5: version "2.1.5" @@ -26062,11 +26092,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-compile-cache@2.3.0: - 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-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" @@ -26092,7 +26117,7 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: validate-npm-package-name@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= dependencies: builtins "^1.0.3" @@ -26288,7 +26313,7 @@ wbuf@^1.1.0, wbuf@^1.7.3: wcwidth@>=1.0.1, wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= dependencies: defaults "^1.0.3" @@ -26325,7 +26350,7 @@ webcrypto-core@^1.7.4: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= webidl-conversions@^5.0.0: version "5.0.0" @@ -26470,7 +26495,7 @@ whatwg-mimetype@^3.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -26592,7 +26617,7 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= wrap-ansi@^2.0.0: version "2.1.0" @@ -26623,7 +26648,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: version "2.4.3" @@ -26634,7 +26659,7 @@ write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.0: +write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -26644,7 +26669,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.0, write-file-atomic@^4.0.1: +write-file-atomic@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== @@ -26868,16 +26893,11 @@ yaml@^2.0.0, yaml@^2.1.1: resolved "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== -yargs-parser@20.2.4: +yargs-parser@20.2.4, 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== -yargs-parser@21.0.1: - version "21.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -26886,7 +26906,7 @@ 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: +yargs-parser@^20.2.2: 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== @@ -26947,7 +26967,7 @@ yargs@^17.0.0, yargs@^17.2.1: y18n "^5.0.5" yargs-parser "^21.0.0" -yargs@^17.1.1, yargs@^17.3.1, yargs@^17.4.0: +yargs@^17.1.1, yargs@^17.3.1: version "17.5.1" resolved "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== From d6ec65b61821edfb7559b5e0f8d596ad343d9979 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 13:45:41 +0200 Subject: [PATCH 249/377] root: pin lerna to 5.0 until we know what caused the CI issues Signed-off-by: Patrik Oldsberg --- package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 324b2e811c..855a91f0f4 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "eslint-plugin-notice": "^0.9.10", "fs-extra": "10.1.0", "husky": "^8.0.0", - "lerna": "^5.0.0", + "lerna": "~5.0.0", "lint-staged": "^13.0.0", "minimist": "^1.2.5", "prettier": "^2.2.1", diff --git a/yarn.lock b/yarn.lock index 734206b1a7..7a871fc95a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17613,7 +17613,7 @@ leasot@^12.0.0: strip-ansi "^6.0.0" text-table "^0.2.0" -lerna@^5.0.0: +lerna@~5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/lerna/-/lerna-5.0.0.tgz#077e35d41fcead5ea223af1862dc25475e1aaf2a" integrity sha512-dUYmJ7H9k/xHtwKpQWLTNUa1jnFUiW4o4K2LFkRchlIijoIUT4yK/RprIxNvYCrLrEaOdZryvY5UZvSHI2tBxA== From 888698a308581a505191d2f58b88df9883004ddf Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 13:48:16 +0200 Subject: [PATCH 250/377] yarn.lock: sync with new release Signed-off-by: Patrik Oldsberg --- yarn.lock | 110 +++++++++++++++++++++++++++--------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7a871fc95a..b95ddada1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13204,61 +13204,61 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" "example-app@link:packages/app": - version "0.2.74-next.1" + version "0.2.74-next.2" dependencies: - "@backstage/app-defaults" "^1.0.5-next.0" + "@backstage/app-defaults" "^1.0.5-next.1" "@backstage/catalog-model" "^1.1.0" - "@backstage/cli" "^0.18.1-next.0" + "@backstage/cli" "^0.18.1-next.1" "@backstage/config" "^1.0.1" "@backstage/core-app-api" "^1.0.5-next.0" - "@backstage/core-components" "^0.10.1-next.1" + "@backstage/core-components" "^0.11.0-next.2" "@backstage/core-plugin-api" "^1.0.5-next.0" - "@backstage/integration-react" "^1.1.3-next.0" - "@backstage/plugin-airbrake" "^0.3.8-next.0" - "@backstage/plugin-apache-airflow" "^0.2.1-next.0" - "@backstage/plugin-api-docs" "^0.8.8-next.1" - "@backstage/plugin-azure-devops" "^0.1.24-next.0" - "@backstage/plugin-badges" "^0.2.32-next.0" + "@backstage/integration-react" "^1.1.3-next.1" + "@backstage/plugin-airbrake" "^0.3.8-next.1" + "@backstage/plugin-apache-airflow" "^0.2.1-next.1" + "@backstage/plugin-api-docs" "^0.8.8-next.2" + "@backstage/plugin-azure-devops" "^0.1.24-next.1" + "@backstage/plugin-badges" "^0.2.32-next.1" "@backstage/plugin-catalog-common" "^1.0.5-next.0" - "@backstage/plugin-catalog-graph" "^0.2.20-next.0" - "@backstage/plugin-catalog-import" "^0.8.11-next.0" - "@backstage/plugin-catalog-react" "^1.1.3-next.1" - "@backstage/plugin-circleci" "^0.3.8-next.0" - "@backstage/plugin-cloudbuild" "^0.3.8-next.0" - "@backstage/plugin-code-coverage" "^0.2.1-next.0" - "@backstage/plugin-cost-insights" "^0.11.30-next.0" - "@backstage/plugin-dynatrace" "^0.1.2-next.0" - "@backstage/plugin-explore" "^0.3.39-next.0" - "@backstage/plugin-gcalendar" "^0.3.4-next.0" - "@backstage/plugin-gcp-projects" "^0.3.27-next.0" - "@backstage/plugin-github-actions" "^0.5.8-next.0" - "@backstage/plugin-gocd" "^0.1.14-next.0" - "@backstage/plugin-graphiql" "^0.2.40-next.0" - "@backstage/plugin-home" "^0.4.24-next.1" - "@backstage/plugin-jenkins" "^0.7.7-next.1" - "@backstage/plugin-kafka" "^0.3.8-next.0" - "@backstage/plugin-kubernetes" "^0.7.1-next.1" - "@backstage/plugin-lighthouse" "^0.3.8-next.0" - "@backstage/plugin-newrelic" "^0.3.26-next.0" - "@backstage/plugin-newrelic-dashboard" "^0.2.1-next.0" - "@backstage/plugin-org" "^0.5.8-next.0" - "@backstage/plugin-pagerduty" "0.5.1-next.0" + "@backstage/plugin-catalog-graph" "^0.2.20-next.1" + "@backstage/plugin-catalog-import" "^0.8.11-next.1" + "@backstage/plugin-catalog-react" "^1.1.3-next.2" + "@backstage/plugin-circleci" "^0.3.8-next.1" + "@backstage/plugin-cloudbuild" "^0.3.8-next.1" + "@backstage/plugin-code-coverage" "^0.2.1-next.1" + "@backstage/plugin-cost-insights" "^0.11.30-next.1" + "@backstage/plugin-dynatrace" "^0.1.2-next.1" + "@backstage/plugin-explore" "^0.3.39-next.1" + "@backstage/plugin-gcalendar" "^0.3.4-next.1" + "@backstage/plugin-gcp-projects" "^0.3.27-next.1" + "@backstage/plugin-github-actions" "^0.5.8-next.1" + "@backstage/plugin-gocd" "^0.1.14-next.1" + "@backstage/plugin-graphiql" "^0.2.40-next.1" + "@backstage/plugin-home" "^0.4.24-next.2" + "@backstage/plugin-jenkins" "^0.7.7-next.2" + "@backstage/plugin-kafka" "^0.3.8-next.1" + "@backstage/plugin-kubernetes" "^0.7.1-next.2" + "@backstage/plugin-lighthouse" "^0.3.8-next.1" + "@backstage/plugin-newrelic" "^0.3.26-next.1" + "@backstage/plugin-newrelic-dashboard" "^0.2.1-next.1" + "@backstage/plugin-org" "^0.5.8-next.1" + "@backstage/plugin-pagerduty" "0.5.1-next.1" "@backstage/plugin-permission-react" "^0.4.4-next.0" - "@backstage/plugin-rollbar" "^0.4.8-next.0" - "@backstage/plugin-scaffolder" "^1.5.0-next.1" - "@backstage/plugin-search" "^1.0.1-next.0" + "@backstage/plugin-rollbar" "^0.4.8-next.1" + "@backstage/plugin-scaffolder" "^1.5.0-next.2" + "@backstage/plugin-search" "^1.0.1-next.1" "@backstage/plugin-search-common" "^1.0.0" - "@backstage/plugin-search-react" "^1.0.1-next.0" - "@backstage/plugin-sentry" "^0.4.1-next.0" - "@backstage/plugin-shortcuts" "^0.3.0-next.0" - "@backstage/plugin-stack-overflow" "^0.1.4-next.0" - "@backstage/plugin-tech-insights" "^0.2.4-next.0" - "@backstage/plugin-tech-radar" "^0.5.15-next.0" - "@backstage/plugin-techdocs" "^1.3.1-next.1" - "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.3-next.1" - "@backstage/plugin-techdocs-react" "^1.0.3-next.1" - "@backstage/plugin-todo" "^0.2.10-next.0" - "@backstage/plugin-user-settings" "^0.4.7-next.0" + "@backstage/plugin-search-react" "^1.0.1-next.1" + "@backstage/plugin-sentry" "^0.4.1-next.1" + "@backstage/plugin-shortcuts" "^0.3.0-next.1" + "@backstage/plugin-stack-overflow" "^0.1.4-next.1" + "@backstage/plugin-tech-insights" "^0.2.4-next.1" + "@backstage/plugin-tech-radar" "^0.5.15-next.1" + "@backstage/plugin-techdocs" "^1.3.1-next.2" + "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.3-next.2" + "@backstage/plugin-techdocs-react" "^1.0.3-next.2" + "@backstage/plugin-todo" "^0.2.10-next.1" + "@backstage/plugin-user-settings" "^0.4.7-next.1" "@backstage/theme" "^0.2.16" "@internal/plugin-catalog-customized" "0.0.1-next.0" "@material-ui/core" "^4.12.2" @@ -24952,19 +24952,19 @@ tdigest@^0.1.1: bintrees "1.0.1" "techdocs-cli-embedded-app@link:packages/techdocs-cli-embedded-app": - version "0.2.73-next.0" + version "0.2.73-next.1" dependencies: - "@backstage/app-defaults" "^1.0.5-next.0" + "@backstage/app-defaults" "^1.0.5-next.1" "@backstage/catalog-model" "^1.1.0" - "@backstage/cli" "^0.18.1-next.0" + "@backstage/cli" "^0.18.1-next.1" "@backstage/config" "^1.0.1" "@backstage/core-app-api" "^1.0.5-next.0" - "@backstage/core-components" "^0.10.1-next.0" + "@backstage/core-components" "^0.11.0-next.2" "@backstage/core-plugin-api" "^1.0.5-next.0" - "@backstage/integration-react" "^1.1.3-next.0" - "@backstage/plugin-catalog" "^1.5.0-next.0" - "@backstage/plugin-techdocs" "^1.3.1-next.0" - "@backstage/plugin-techdocs-react" "^1.0.3-next.0" + "@backstage/integration-react" "^1.1.3-next.1" + "@backstage/plugin-catalog" "^1.5.0-next.2" + "@backstage/plugin-techdocs" "^1.3.1-next.2" + "@backstage/plugin-techdocs-react" "^1.0.3-next.2" "@backstage/test-utils" "^1.1.3-next.0" "@backstage/theme" "^0.2.16" "@material-ui/core" "^4.11.0" From ff3c8f42fcc6abfdd80f979fe5a1328255346a5a Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 9 Aug 2022 14:19:24 +0200 Subject: [PATCH 251/377] chore: exit pre Signed-off-by: blam --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index aeefcf1fef..748a6c5940 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "pre", + "mode": "exit", "tag": "next", "initialVersions": { "example-app": "0.2.73", From bfc7c50a09c85c9bad217178447a2be0e0362cb6 Mon Sep 17 00:00:00 2001 From: Phil Kuang Date: Mon, 8 Aug 2022 15:30:25 -0400 Subject: [PATCH 252/377] feat(adrs): display associated entity in AdrSearchResultListItem Signed-off-by: Phil Kuang --- .changeset/cyan-carpets-build.md | 9 +++++++++ .../adr-backend/src/search/DefaultAdrCollatorFactory.ts | 1 + plugins/adr-backend/src/search/createMadrParser.ts | 3 +++ plugins/adr-common/api-report.md | 2 ++ plugins/adr-common/src/index.ts | 8 ++++++++ plugins/adr/package.json | 1 + plugins/adr/src/search/AdrSearchResultListItem.tsx | 9 +++++++++ 7 files changed, 33 insertions(+) create mode 100644 .changeset/cyan-carpets-build.md diff --git a/.changeset/cyan-carpets-build.md b/.changeset/cyan-carpets-build.md new file mode 100644 index 0000000000..eca260c34c --- /dev/null +++ b/.changeset/cyan-carpets-build.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-adr': minor +'@backstage/plugin-adr-backend': minor +'@backstage/plugin-adr-common': minor +--- + +Display associated entity as a chip in `AdrSearchResultListItem` + +BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents diff --git a/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts b/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts index e0c90af767..811b52ba82 100644 --- a/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts +++ b/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts @@ -142,6 +142,7 @@ export class DefaultAdrCollatorFactory implements DocumentCollatorFactory { 'metadata.annotations', 'metadata.name', 'metadata.namespace', + 'metadata.title', ], }, { token }, diff --git a/plugins/adr-backend/src/search/createMadrParser.ts b/plugins/adr-backend/src/search/createMadrParser.ts index 9efd49754a..6b77ec2fa7 100644 --- a/plugins/adr-backend/src/search/createMadrParser.ts +++ b/plugins/adr-backend/src/search/createMadrParser.ts @@ -16,6 +16,7 @@ import { DateTime } from 'luxon'; import { marked } from 'marked'; +import { stringifyEntityRef } from '@backstage/catalog-model'; import { MADR_DATE_FORMAT } from '@backstage/plugin-adr-common'; import { AdrParser } from './types'; @@ -101,6 +102,8 @@ export const createMadrParser = ( text: content, status: adrStatus, date: adrDate, + entityRef: stringifyEntityRef(entity), + entityTitle: entity.metadata.title, location: applyArgsToFormat(locationTemplate, { namespace: entity.metadata.namespace || 'default', kind: entity.kind, diff --git a/plugins/adr-common/api-report.md b/plugins/adr-common/api-report.md index 290d984181..0236b355a5 100644 --- a/plugins/adr-common/api-report.md +++ b/plugins/adr-common/api-report.md @@ -10,6 +10,8 @@ import { ScmIntegrationRegistry } from '@backstage/integration'; // @public export interface AdrDocument extends IndexableDocument { date?: string; + entityRef: string; + entityTitle?: string; status?: string; } diff --git a/plugins/adr-common/src/index.ts b/plugins/adr-common/src/index.ts index 94b6b788c8..c3a048d9d1 100644 --- a/plugins/adr-common/src/index.ts +++ b/plugins/adr-common/src/index.ts @@ -84,6 +84,14 @@ export const madrFilePathFilter: AdrFilePathFilterFn = (path: string) => * @public */ export interface AdrDocument extends IndexableDocument { + /** + * Ref of the entity associated with this ADR + */ + entityRef: string; + /** + * Title of the entity associated with this ADR + */ + entityTitle?: string; /** * ADR status label */ diff --git a/plugins/adr/package.json b/plugins/adr/package.json index e9c2f05e0f..dfe3a233b9 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -22,6 +22,7 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { + "@backstage/catalog-model": "^1.1.0", "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration-react": "^1.1.3-next.1", diff --git a/plugins/adr/src/search/AdrSearchResultListItem.tsx b/plugins/adr/src/search/AdrSearchResultListItem.tsx index 677e39fc11..e9e05a9df2 100644 --- a/plugins/adr/src/search/AdrSearchResultListItem.tsx +++ b/plugins/adr/src/search/AdrSearchResultListItem.tsx @@ -23,9 +23,11 @@ import { ListItemText, makeStyles, } from '@material-ui/core'; +import { parseEntityRef } from '@backstage/catalog-model'; import { Link } from '@backstage/core-components'; import { useAnalytics } from '@backstage/core-plugin-api'; import { AdrDocument } from '@backstage/plugin-adr-common'; +import { humanizeEntityRef } from '@backstage/plugin-catalog-react'; import { ResultHighlight } from '@backstage/plugin-search-common'; import { HighlightedSearchResultText } from '@backstage/plugin-search-react'; @@ -104,6 +106,13 @@ export const AdrSearchResultListItem = ({ } /> + {result.status && ( )} From 5e4dc173f72b3159270c4864368b2e74ac1b34b2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 18:04:22 +0200 Subject: [PATCH 253/377] backend-common: validate zip archive paths when unpacking into a dir Signed-off-by: Patrik Oldsberg --- .changeset/dirty-pears-allow.md | 5 +++++ .../backend-common/src/reading/tree/ZipArchiveResponse.ts | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .changeset/dirty-pears-allow.md diff --git a/.changeset/dirty-pears-allow.md b/.changeset/dirty-pears-allow.md new file mode 100644 index 0000000000..4b488ad79d --- /dev/null +++ b/.changeset/dirty-pears-allow.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts index 1a6658b0c2..4100af3d57 100644 --- a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts +++ b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts @@ -25,6 +25,7 @@ import { ReadTreeResponseFile, } from '../types'; import { streamToBuffer } from './util'; +import { resolveSafeChildPath } from '../../paths'; /** * Wraps a zip archive stream into a tree response reader. @@ -187,10 +188,10 @@ export class ZipArchiveResponse implements ReadTreeResponse { const dirname = platformPath.dirname(entryPath); if (dirname) { - await fs.mkdirp(platformPath.join(dir, dirname)); + await fs.mkdirp(resolveSafeChildPath(dir, dirname)); } return new Promise(async (resolve, reject) => { - const file = fs.createWriteStream(platformPath.join(dir, entryPath)); + const file = fs.createWriteStream(resolveSafeChildPath(dir, entryPath)); file.on('finish', resolve); content.on('error', reject); From cb24f975aaf46f3bd526f3cd147aff3818a5a3fd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 18:27:13 +0200 Subject: [PATCH 254/377] backend-common: added test to ensure malicious zip archives are handled Signed-off-by: Patrik Oldsberg --- .../src/reading/__fixtures__/mallory.zip | Bin 0 -> 147 bytes .../reading/tree/ZipArchiveResponse.test.ts | 22 ++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 packages/backend-common/src/reading/__fixtures__/mallory.zip diff --git a/packages/backend-common/src/reading/__fixtures__/mallory.zip b/packages/backend-common/src/reading/__fixtures__/mallory.zip new file mode 100644 index 0000000000000000000000000000000000000000..e45bd798b3748702af1f53a4780b335844dae9dc GIT binary patch literal 147 zcmWIWW@Zs#-~d9)M$S+MB)|=1>*?tiXQrg;l~j~yd+O?4^gVsXla(RBo1Fus5TpVG l0=yZSbQw@hfyu#Wh)NKNWM+UjD;r3N5eO}Tv { beforeEach(() => { @@ -35,6 +38,7 @@ describe('ZipArchiveResponse', () => { '/test-archive.zip': archiveData, '/test-archive-with-extra-root-dir.zip': archiveDataWithExtraDir, '/test-archive-corrupted.zip': archiveDataCorrupted, + '/test-archive-malicious.zip': archiveWithMaliciousEntry, '/tmp': mockFs.directory(), }); }); @@ -167,4 +171,22 @@ describe('ZipArchiveResponse', () => { 'invalid comment length. expected: 55. found: 0', ); }); + + it('should throw on entries with a path outside the destination dir', async () => { + const stream = fs.createReadStream('/test-archive-malicious.zip'); + + const res = new ZipArchiveResponse(stream, '', '/tmp', 'etag'); + await expect(res.files()).rejects.toThrow( + 'invalid relative path: ../side.txt', + ); + }); + + it('should throw on entries that attempt to write outside destination dir', async () => { + const stream = fs.createReadStream('/test-archive-malicious.zip'); + + const res = new ZipArchiveResponse(stream, '', '/tmp', 'etag'); + await expect(res.dir()).rejects.toThrow( + 'invalid relative path: ../side.txt', + ); + }); }); From 6fa57375f396401523bccd5cdfa21a8655cb8fa7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:47:58 +0000 Subject: [PATCH 255/377] fix(deps): update dependency octokit to v2.0.5 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38a59e6a76..c557ba18c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20102,9 +20102,9 @@ octokit-plugin-create-pull-request@^3.10.0: "@octokit/types" "^6.8.2" octokit@^2.0.0, octokit@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/octokit/-/octokit-2.0.4.tgz#cfd3adee6b775d3fa8cd8746590bed36127cc0a0" - integrity sha512-9QvgYGzrSTGmr3koSGtbgeMgqYI20QI0Vv8Bk9y6phchk6L2aHFhcrUOIeNUPj1Z+KZnEBd6A/8faNpDFNfVjg== + version "2.0.5" + resolved "https://registry.npmjs.org/octokit/-/octokit-2.0.5.tgz#4091813187f363eff787b89b66aafc273ba3318d" + integrity sha512-Znv9zxhKxl9C11QsAK/RRoIutAsHawVrYplZNf7IqpB+mi3Zu0zBfZ5sFUqMRwemucff+MDHh1RtlpF5946UDA== dependencies: "@octokit/app" "^13.0.5" "@octokit/core" "^4.0.4" From b793c3043be46fc13267a42a9356f52ea2d85786 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:52:03 +0000 Subject: [PATCH 256/377] fix(deps): update dependency aws-sdk to v2.1191.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38a59e6a76..d4618a5ef7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9073,9 +9073,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1189.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1189.0.tgz#8dd6b48dd7896642af8e2f86e026932a28e380d5" - integrity sha512-EqluXSo8XAR086nF9UAtPYwUm82ZIRqg8OmHBRQyftcrD1Z0pqMmiuvacXoEAJ/4UU8KKafbpYarxx8rH/pZjQ== + version "2.1191.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1191.0.tgz#2748567252c68ef37a8ce29f48aa063681083918" + integrity sha512-G8hWvuc+3rxTfHqsnUwGx/fy8zlnVPtlNesXMHlwU/l4oBx3+Weg0Nhng6HvLGzUJifzlnSKDXrOsWVkHtuZ1w== dependencies: buffer "4.9.2" events "1.1.1" From 98d5cd49cd52b6c2dfb0248e646760fa5dfd301e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 22:49:39 +0000 Subject: [PATCH 257/377] fix(deps): update dependency @octokit/webhooks to v10.1.2 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38a59e6a76..2897c90b04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5813,19 +5813,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" integrity sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA== -"@octokit/webhooks-types@6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.1.tgz#af0c31c81ccc3818de01df1977463b78c7c02b4f" - integrity sha512-pHjIWGLDldWKuuax5ZDzQeTSnHN6/9RbDaXYEtHwlbW5SPFwTwy3xhJ552qJH6kHP0M3k5t5JVpa0f6fR9MooQ== +"@octokit/webhooks-types@6.3.2": + version "6.3.2" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.2.tgz#752497434e735874ba985ea0d53d63e2568e838d" + integrity sha512-6DSvdzg7AIVgLjIjqf5BDrloMs7zUfpF0EJhLiOjXtuLr38W5pWSC7aHr7V59LCEDueJRfKZ6c9ZyuLLqVgx8g== "@octokit/webhooks@^10.0.0": - version "10.1.1" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.1.tgz#8fdbddd2b0ee9c53ddabb47c346032fcc46fd5ff" - integrity sha512-/PhAXTA5M47sM/LxFXfTQ8WUEFsNQog29VfcxYCtsJtRz3NoaDAirH4gT6/Z81BrC8Vw3JA7mF+yFUN7RmxWGw== + version "10.1.2" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.2.tgz#78396b6d32c60789f6031d2551a2cd598c157627" + integrity sha512-jxISKMLiYebQ/EByLXDEWQMcHASKUVl1T0EuCnpHTYjELsDXg7BEw0FCInlc8RpWmmPp4sMsh3Dd86spXAIp1A== dependencies: "@octokit/request-error" "^3.0.0" "@octokit/webhooks-methods" "^3.0.0" - "@octokit/webhooks-types" "6.3.1" + "@octokit/webhooks-types" "6.3.2" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3": From 21ea9d39168a61916457440d42e2290449f18897 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 22:53:00 +0000 Subject: [PATCH 258/377] fix(deps): update dependency graphql-ws to v5.10.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38a59e6a76..14c202c955 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14739,9 +14739,9 @@ graphql-type-json@^0.3.2: integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== graphql-ws@^5.4.1, graphql-ws@^5.9.0: - version "5.9.1" - resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.9.1.tgz#9c0fa48ceb695d61d574ed3ab21b426729e87f2d" - integrity sha512-mL/SWGBwIT9Meq0NlfS55yXXTOeWPMbK7bZBEZhFu46bcGk1coTx2Sdtzxdk+9yHWngD+Fk1PZDWaAutQa9tpw== + version "5.10.0" + resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.10.0.tgz#3fb47a4e809e0d2e7c197f1bca754fa9f31b940e" + integrity sha512-ewbPzHQdRZgNCPDH9Yr6xccSeZfk3fmpO/AGGGg4KkM5gc6oAOJQ10Oui1EqprhVOyRbOll9bw2qAkOiOwfTag== graphql@^16.0.0, graphql@^16.3.0: version "16.5.0" From 44103351351a1e41ba695be490319945a401d86c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 00:42:15 +0000 Subject: [PATCH 259/377] fix(deps): update dependency zod to v3.18.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2e4b846092..37be4b8017 100644 --- a/yarn.lock +++ b/yarn.lock @@ -27141,9 +27141,9 @@ zip-stream@^4.1.0: readable-stream "^3.6.0" zod@^3.11.6, zod@^3.9.5: - version "3.17.10" - resolved "https://registry.npmjs.org/zod/-/zod-3.17.10.tgz#8716a05e6869df6faaa878a44ffe3c79e615defb" - integrity sha512-IHXnQYQuOOOL/XgHhgl8YjNxBHi3xX0mVcHmqsvJgcxKkEczPshoWdxqyFwsARpf41E0v9U95WUROqsHHxt0UQ== + version "3.18.0" + resolved "https://registry.npmjs.org/zod/-/zod-3.18.0.tgz#2eed58b3cafb8d9a67aa2fee69279702f584f3bc" + integrity sha512-gwTm8RfUCe8l9rDwN5r2A17DkAa8Ez4Yl4yXqc5VqeGaXaJahzYYXbTwvhroZi0SNBqTwh/bKm2N0mpCzuw4bA== zustand@3.6.9: version "3.6.9" From fa3eeee92d314ec47f68ee5ed7157056c99e4315 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 00:43:27 +0000 Subject: [PATCH 260/377] fix(deps): update dependency @graphql-tools/schema to v9 Signed-off-by: Renovate Bot --- .changeset/renovate-34c125c.md | 6 ++++++ plugins/catalog-graphql/package.json | 2 +- plugins/graphql-backend/package.json | 2 +- yarn.lock | 25 +++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 .changeset/renovate-34c125c.md diff --git a/.changeset/renovate-34c125c.md b/.changeset/renovate-34c125c.md new file mode 100644 index 0000000000..5f59ab4124 --- /dev/null +++ b/.changeset/renovate-34c125c.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-graphql': patch +'@backstage/plugin-graphql-backend': patch +--- + +Updated dependency `@graphql-tools/schema` to `^9.0.0`. diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index 082bd43c34..12eafe58d4 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -52,7 +52,7 @@ "@graphql-codegen/graphql-modules-preset": "^2.3.2", "@graphql-codegen/typescript": "^2.4.2", "@graphql-codegen/typescript-resolvers": "^2.4.3", - "@graphql-tools/schema": "^8.3.1", + "@graphql-tools/schema": "^9.0.0", "msw": "^0.44.0" }, "files": [ diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 64cd268e00..d772e84dde 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -37,7 +37,7 @@ "@backstage/backend-common": "^0.15.0-next.0", "@backstage/config": "^1.0.1", "@backstage/plugin-catalog-graphql": "^0.3.11", - "@graphql-tools/schema": "^8.3.1", + "@graphql-tools/schema": "^9.0.0", "@types/express": "^4.17.6", "apollo-server": "^3.0.0", "apollo-server-express": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 2e4b846092..8f5a763655 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3160,6 +3160,14 @@ "@graphql-tools/utils" "8.9.0" tslib "^2.4.0" +"@graphql-tools/merge@8.3.2": + version "8.3.2" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.2.tgz#a058e0307b9a145c6965420fd67ee1405cf033e8" + integrity sha512-r8TFlDFA9N4hbkKbHCUK5pkiSnVUsB5AtcyhoY1d3b9zNa9CAYgxZMkKZgDJAf9ZTIqki9t0eOW/jn1H4MCFsg== + dependencies: + "@graphql-tools/utils" "8.9.1" + tslib "^2.4.0" + "@graphql-tools/mock@^8.1.2": version "8.6.8" resolved "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.6.8.tgz#232a23c0c14dcfca88012886230b93e6fc2303e2" @@ -3241,6 +3249,16 @@ tslib "^2.4.0" value-or-promise "1.0.11" +"@graphql-tools/schema@^9.0.0": + version "9.0.0" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.0.tgz#a689ae23474bf662b3571a180f0e0d11c7b8f135" + integrity sha512-H1rlt0tptzYE1jnKGjfmMvvMCwsDTUgCy3Eam9agsPP4ZtHAcwijDx3BKKJaV1fDRV5ztz2aJ5Q7+4s/SMOYvQ== + dependencies: + "@graphql-tools/merge" "8.3.2" + "@graphql-tools/utils" "8.9.1" + tslib "^2.4.0" + value-or-promise "1.0.11" + "@graphql-tools/url-loader@7.13.2", "@graphql-tools/url-loader@^7.13.2": version "7.13.2" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.13.2.tgz#4663ea817aa60d3d4ce81a47a36cba8fdfff069f" @@ -3304,6 +3322,13 @@ dependencies: tslib "^2.4.0" +"@graphql-tools/utils@8.9.1": + version "8.9.1" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.1.tgz#11d6c8a292ac5f224dfda655b87adfece3a257c6" + integrity sha512-LHR7U4okICeUap+WV/T1FnLOmTr3KYuphgkXYendaBVO/DXKyc+TeOFBiN1LcEjPqCB8hO+0B0iTIO0cGqhNTA== + dependencies: + tslib "^2.4.0" + "@graphql-tools/wrap@8.5.0": version "8.5.0" resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.5.0.tgz#ce1b0d775e1fc3a17404df566f4d2196d31c6e20" From f4af474364d412a1b49b38a0f86fa32940117c3d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 08:59:08 +0000 Subject: [PATCH 261/377] fix(deps): update dependency @maxim_mazurok/gapi.client.calendar to v3.0.20220805 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f489904061..197930f055 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4967,9 +4967,9 @@ react-is "^16.8.0 || ^17.0.0" "@maxim_mazurok/gapi.client.calendar@^3.0.20220408": - version "3.0.20220722" - resolved "https://registry.npmjs.org/@maxim_mazurok/gapi.client.calendar/-/gapi.client.calendar-3.0.20220722.tgz#cfcf40676c2bd07175db688cf96c9377f1b55e1b" - integrity sha512-/ft7PMhBYW6zEFkV1r5WekxzJrxEXVwqSPBssOneTBzgE/MMV2hkbFPocnQ1z9YRH8TAsskv/DQlpDbmmbK9JA== + version "3.0.20220805" + resolved "https://registry.npmjs.org/@maxim_mazurok/gapi.client.calendar/-/gapi.client.calendar-3.0.20220805.tgz#ccc3c12f83b361daf5e48e0a2ff7abee5b0a6c5d" + integrity sha512-YwUDC4G4amUkM4u55wJpARowbs6AjJoF+PxxLEz3ZoHXvzP/VWPb1L0AhxnbFwDhWKVFcXkZTEGDc59PcuIJjQ== dependencies: "@types/gapi.client" "*" From 97cd54c92f0748a7e764d90d327608574dca8b1e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 12:09:23 +0200 Subject: [PATCH 262/377] Revert "changeset: exit pre-release" Signed-off-by: Patrik Oldsberg --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 748a6c5940..aeefcf1fef 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "exit", + "mode": "pre", "tag": "next", "initialVersions": { "example-app": "0.2.73", From b162bbf464caf4d5a4a1b683c212379b2453ae2a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 10 Aug 2022 10:33:47 +0000 Subject: [PATCH 263/377] Version Packages (next) --- .changeset/create-app-1660127534.md | 5 +++ .changeset/pre.json | 3 ++ docs/releases/v1.5.0-next.3-changelog.md | 48 ++++++++++++++++++++++++ package.json | 2 +- packages/backend-common/CHANGELOG.md | 6 +++ packages/backend-common/package.json | 2 +- packages/create-app/CHANGELOG.md | 6 +++ packages/create-app/package.json | 2 +- plugins/adr-backend/CHANGELOG.md | 14 +++++++ plugins/adr-backend/package.json | 6 +-- plugins/adr-common/CHANGELOG.md | 8 ++++ plugins/adr-common/package.json | 2 +- plugins/adr/CHANGELOG.md | 13 +++++++ plugins/adr/package.json | 4 +- 14 files changed, 112 insertions(+), 9 deletions(-) create mode 100644 .changeset/create-app-1660127534.md create mode 100644 docs/releases/v1.5.0-next.3-changelog.md diff --git a/.changeset/create-app-1660127534.md b/.changeset/create-app-1660127534.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1660127534.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/pre.json b/.changeset/pre.json index aeefcf1fef..0d89198dec 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -176,6 +176,9 @@ "cool-months-tickle", "create-app-1658824524", "create-app-1659429685", + "create-app-1660127534", + "cyan-carpets-build", + "dirty-pears-allow", "dull-owls-grab", "dull-pumas-hope", "dull-starfishes-chew", diff --git a/docs/releases/v1.5.0-next.3-changelog.md b/docs/releases/v1.5.0-next.3-changelog.md new file mode 100644 index 0000000000..db9dc2ae48 --- /dev/null +++ b/docs/releases/v1.5.0-next.3-changelog.md @@ -0,0 +1,48 @@ +# Release v1.5.0-next.3 + +## @backstage/plugin-adr@0.2.0-next.2 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0-next.1 + +## @backstage/plugin-adr-backend@0.2.0-next.1 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0-next.1 + - @backstage/backend-common@0.15.0-next.2 + +## @backstage/plugin-adr-common@0.2.0-next.1 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +## @backstage/backend-common@0.15.0-next.2 + +### Patch Changes + +- 5e4dc173f7: Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. + +## @backstage/create-app@0.4.30-next.3 + +### Patch Changes + +- Bumped create-app version. diff --git a/package.json b/package.json index 855a91f0f4..936ce63fb8 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.5.0-next.2", + "version": "1.5.0-next.3", "dependencies": { "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.17.11", diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index e712a96470..a60a401106 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/backend-common +## 0.15.0-next.2 + +### Patch Changes + +- 5e4dc173f7: Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. + ## 0.15.0-next.1 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 1e89cf13df..77a9854fdd 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.15.0-next.1", + "version": "0.15.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "private": false, diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 675bcb7eed..2dd8c8748b 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/create-app +## 0.4.30-next.3 + +### Patch Changes + +- Bumped create-app version. + ## 0.4.30-next.2 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 681650022b..5c8be59645 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.30-next.2", + "version": "0.4.30-next.3", "private": false, "publishConfig": { "access": "public" diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index b68f6f3bd2..cf7feb2af0 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-adr-backend +## 0.2.0-next.1 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0-next.1 + - @backstage/backend-common@0.15.0-next.2 + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 137a94a66d..c8a349be8b 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr-backend", - "version": "0.1.3-next.0", + "version": "0.2.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,13 +29,13 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.2", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-adr-common": "^0.1.3-next.0", + "@backstage/plugin-adr-common": "^0.2.0-next.1", "@backstage/plugin-search-common": "^1.0.0", "luxon": "^3.0.0", "marked": "^4.0.14", diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md index a5f58a7ed4..2ab0e174d4 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-adr-common +## 0.2.0-next.1 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index f1418000d6..48dd40ce60 100644 --- a/plugins/adr-common/package.json +++ b/plugins/adr-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-adr-common", "description": "Common functionalities for the adr plugin", - "version": "0.1.3-next.0", + "version": "0.2.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md index 0ba1d96995..d416218c6c 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-adr +## 0.2.0-next.2 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0-next.1 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index dfe3a233b9..f9cf5b4ba9 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.1.3-next.1", + "version": "0.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,7 +26,7 @@ "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-adr-common": "^0.1.3-next.0", + "@backstage/plugin-adr-common": "^0.2.0-next.1", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-search-common": "^1.0.0", "@backstage/plugin-search-react": "^1.0.1-next.1", From 168bb7acdc517a04d6b79fa687eaec466a39c435 Mon Sep 17 00:00:00 2001 From: Paulo Peixoto <72894267+padupe@users.noreply.github.com> Date: Wed, 10 Aug 2022 08:05:44 -0300 Subject: [PATCH 264/377] Update app-custhome-theme.md After suggestions @jhaals Signed-off-by: Paulo Peixoto <72894267+padupe@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 26 +++++++++--------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 97d57540a9..48d40761da 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -277,21 +277,19 @@ const LogoFull = () => { You can also customize the Project's _default_ icons. -We can change the following [icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx). +You can change the following [icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx). ### Requirements -- Files in `.svg` format; +- Files in `.svg` format - React components created for the icons ### Create React Component -In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory. +In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory and `CustomIcons.tsx` file. -In the `icons` directory, upload the files in `.svg` format. - -In the `assets` directory, you can create the `customIcons.tsx` file. > Another example [here](https://github.com/backstage/backstage/blob/master/plugins/azure-devops/src/components/AzurePipelinesIcon/AzurePipelinesIcon.tsx), if you want to ensure proper behavior in light and dark themes. + ```tsx // customIcons.tsx import { SvgIcon, SvgIconProps } from '@material-ui/core'; @@ -301,11 +299,11 @@ import React from 'react'; export const HeaderIcon = (props: SvgIconProps) => ( ); @@ -313,11 +311,7 @@ export const HeaderIcon = (props: SvgIconProps) => ( ### Using the custom icon -In your front-end application, locate the `src/components` folder. - -You will find the `App.tsx` file. - -The `app` constant, instantiates the `createApp` function, in this constant we will use the "icons" parameter that receives an object. +Supply your custom icon in `packages/app/src/App.tsx` ```diff From 485ee93cde44126d52a7e296946931002124349c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 14:28:19 +0200 Subject: [PATCH 265/377] contrib: add note about k8s best security practices Signed-off-by: Patrik Oldsberg --- contrib/kubernetes/basic_kubernetes_example_with_helm/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/kubernetes/basic_kubernetes_example_with_helm/README.md b/contrib/kubernetes/basic_kubernetes_example_with_helm/README.md index 2dc875f671..c18329f59e 100644 --- a/contrib/kubernetes/basic_kubernetes_example_with_helm/README.md +++ b/contrib/kubernetes/basic_kubernetes_example_with_helm/README.md @@ -1 +1,3 @@ # Basic Kubernetes example with Helm + +Note that these examples aim to show a minimal setup and do not include best practices for secure Kubernetes deployments. See the [Kubernetes documentation](https://kubernetes.io/docs/concepts/security/) for more information, or resources provided by your own organization. From ff118129d8a454511cdf88bc80882b35f69758e1 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 14:29:16 +0200 Subject: [PATCH 266/377] Introduce backend-defaults package Signed-off-by: Johan Haals --- packages/backend-app-api/api-report.md | 78 ++++++++++++++++++- packages/backend-app-api/src/index.ts | 1 + .../services/implementations/cacheService.ts | 2 +- .../services/implementations/configService.ts | 1 + .../implementations/databaseService.ts | 1 + .../implementations/discoveryService.ts | 1 + .../implementations/httpRouterService.ts | 1 + .../src/services/implementations/index.ts | 33 +++----- .../services/implementations/loggerService.ts | 1 + .../implementations/permissionsService.ts | 1 + .../implementations/schedulerService.ts | 1 + .../implementations/tokenManagerService.ts | 1 + .../implementations/urlReaderService.ts | 1 + packages/backend-app-api/src/wiring/index.ts | 4 +- packages/backend-app-api/src/wiring/types.ts | 15 ++-- packages/backend-defaults/.eslintrc.js | 1 + packages/backend-defaults/README.md | 19 +++++ packages/backend-defaults/api-report.md | 19 +++++ packages/backend-defaults/package.json | 47 +++++++++++ .../backend-defaults/src/CreateBackend.ts | 57 ++++++++++++++ packages/backend-defaults/src/index.ts | 18 +++++ packages/backend-defaults/src/types.ts | 24 ++++++ packages/backend-next/package.json | 4 +- packages/backend-next/src/index.ts | 6 +- 24 files changed, 293 insertions(+), 44 deletions(-) create mode 100644 packages/backend-defaults/.eslintrc.js create mode 100644 packages/backend-defaults/README.md create mode 100644 packages/backend-defaults/api-report.md create mode 100644 packages/backend-defaults/package.json create mode 100644 packages/backend-defaults/src/CreateBackend.ts create mode 100644 packages/backend-defaults/src/index.ts create mode 100644 packages/backend-defaults/src/types.ts diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index a37ec6abc6..c91709519f 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -5,6 +5,18 @@ ```ts import { AnyServiceFactory } from '@backstage/backend-plugin-api'; import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { Config } from '@backstage/config'; +import { HttpRouterService } from '@backstage/backend-plugin-api'; +import { Logger } from '@backstage/backend-plugin-api'; +import { PermissionAuthorizer } from '@backstage/plugin-permission-common'; +import { PermissionEvaluator } from '@backstage/plugin-permission-common'; +import { PluginCacheManager } from '@backstage/backend-common'; +import { PluginDatabaseManager } from '@backstage/backend-common'; +import { PluginEndpointDiscovery } from '@backstage/backend-common'; +import { PluginTaskScheduler } from '@backstage/backend-tasks'; +import { ServiceFactory } from '@backstage/backend-plugin-api'; +import { TokenManager } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) export interface Backend { @@ -15,11 +27,71 @@ export interface Backend { } // @public (undocumented) -export function createBackend(options?: CreateBackendOptions): Backend; +export const cacheFactory: ServiceFactory< + PluginCacheManager, + PluginCacheManager, + {} +>; // @public (undocumented) -export interface CreateBackendOptions { +export const configFactory: ServiceFactory; + +// @public (undocumented) +export function createSpecializedBackend( + options: CreateSpecializedBackendOptions, +): Backend; + +// @public (undocumented) +export interface CreateSpecializedBackendOptions { // (undocumented) - apis: AnyServiceFactory[]; + serviceFactories: AnyServiceFactory[]; } + +// @public (undocumented) +export const databaseFactory: ServiceFactory< + PluginDatabaseManager, + PluginDatabaseManager, + {} +>; + +// @public (undocumented) +export const discoveryFactory: ServiceFactory< + PluginEndpointDiscovery, + PluginEndpointDiscovery, + {} +>; + +// @public (undocumented) +export const httpRouterFactory: ServiceFactory< + HttpRouterService, + HttpRouterService, + {} +>; + +// @public (undocumented) +export const loggerFactory: ServiceFactory; + +// @public (undocumented) +export const permissionsFactory: ServiceFactory< + PermissionAuthorizer | PermissionEvaluator, + PermissionAuthorizer | PermissionEvaluator, + {} +>; + +// @public (undocumented) +export const schedulerFactory: ServiceFactory< + PluginTaskScheduler, + PluginTaskScheduler, + {} +>; + +// @public (undocumented) +export const tokenManagerFactory: ServiceFactory< + TokenManager, + TokenManager, + {} +>; + +// @public (undocumented) +export const urlReaderFactory: ServiceFactory; ``` diff --git a/packages/backend-app-api/src/index.ts b/packages/backend-app-api/src/index.ts index c58379c3e4..02633f3732 100644 --- a/packages/backend-app-api/src/index.ts +++ b/packages/backend-app-api/src/index.ts @@ -21,3 +21,4 @@ */ export * from './wiring'; +export * from './services/implementations'; diff --git a/packages/backend-app-api/src/services/implementations/cacheService.ts b/packages/backend-app-api/src/services/implementations/cacheService.ts index 034f85f917..c5e58b4a41 100644 --- a/packages/backend-app-api/src/services/implementations/cacheService.ts +++ b/packages/backend-app-api/src/services/implementations/cacheService.ts @@ -21,7 +21,7 @@ import { cacheServiceRef, } from '@backstage/backend-plugin-api'; -// TODO: Work out some naming and implementation patterns for these +/** @public */ export const cacheFactory = createServiceFactory({ service: cacheServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/configService.ts b/packages/backend-app-api/src/services/implementations/configService.ts index 94a59baf34..c4aa641f72 100644 --- a/packages/backend-app-api/src/services/implementations/configService.ts +++ b/packages/backend-app-api/src/services/implementations/configService.ts @@ -22,6 +22,7 @@ import { loggerServiceRef, } from '@backstage/backend-plugin-api'; +/** @public */ export const configFactory = createServiceFactory({ service: configServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/databaseService.ts b/packages/backend-app-api/src/services/implementations/databaseService.ts index a52da1e444..b2bc19de84 100644 --- a/packages/backend-app-api/src/services/implementations/databaseService.ts +++ b/packages/backend-app-api/src/services/implementations/databaseService.ts @@ -21,6 +21,7 @@ import { databaseServiceRef, } from '@backstage/backend-plugin-api'; +/** @public */ export const databaseFactory = createServiceFactory({ service: databaseServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/discoveryService.ts b/packages/backend-app-api/src/services/implementations/discoveryService.ts index 23af1924a0..3f1a584c61 100644 --- a/packages/backend-app-api/src/services/implementations/discoveryService.ts +++ b/packages/backend-app-api/src/services/implementations/discoveryService.ts @@ -21,6 +21,7 @@ import { discoveryServiceRef, } from '@backstage/backend-plugin-api'; +/** @public */ export const discoveryFactory = createServiceFactory({ service: discoveryServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/httpRouterService.ts b/packages/backend-app-api/src/services/implementations/httpRouterService.ts index 1f72378643..6460a77eaf 100644 --- a/packages/backend-app-api/src/services/implementations/httpRouterService.ts +++ b/packages/backend-app-api/src/services/implementations/httpRouterService.ts @@ -23,6 +23,7 @@ import Router from 'express-promise-router'; import { Handler } from 'express'; import { createServiceBuilder } from '@backstage/backend-common'; +/** @public */ export const httpRouterFactory = createServiceFactory({ service: httpRouterServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/index.ts b/packages/backend-app-api/src/services/implementations/index.ts index e6b6604069..048c952b4e 100644 --- a/packages/backend-app-api/src/services/implementations/index.ts +++ b/packages/backend-app-api/src/services/implementations/index.ts @@ -14,26 +14,13 @@ * limitations under the License. */ -import { cacheFactory } from './cacheService'; -import { configFactory } from './configService'; -import { databaseFactory } from './databaseService'; -import { discoveryFactory } from './discoveryService'; -import { loggerFactory } from './loggerService'; -import { permissionsFactory } from './permissionsService'; -import { schedulerFactory } from './schedulerService'; -import { tokenManagerFactory } from './tokenManagerService'; -import { urlReaderFactory } from './urlReaderService'; -import { httpRouterFactory } from './httpRouterService'; - -export const defaultServiceFactories = [ - cacheFactory, - configFactory, - databaseFactory, - discoveryFactory, - loggerFactory, - permissionsFactory, - schedulerFactory, - tokenManagerFactory, - urlReaderFactory, - httpRouterFactory, -]; +export { cacheFactory } from './cacheService'; +export { configFactory } from './configService'; +export { databaseFactory } from './databaseService'; +export { discoveryFactory } from './discoveryService'; +export { loggerFactory } from './loggerService'; +export { permissionsFactory } from './permissionsService'; +export { schedulerFactory } from './schedulerService'; +export { tokenManagerFactory } from './tokenManagerService'; +export { urlReaderFactory } from './urlReaderService'; +export { httpRouterFactory } from './httpRouterService'; diff --git a/packages/backend-app-api/src/services/implementations/loggerService.ts b/packages/backend-app-api/src/services/implementations/loggerService.ts index fbeb4b9ade..e90b591302 100644 --- a/packages/backend-app-api/src/services/implementations/loggerService.ts +++ b/packages/backend-app-api/src/services/implementations/loggerService.ts @@ -38,6 +38,7 @@ class BackstageLogger implements Logger { } } +/** @public */ export const loggerFactory = createServiceFactory({ service: loggerServiceRef, deps: {}, diff --git a/packages/backend-app-api/src/services/implementations/permissionsService.ts b/packages/backend-app-api/src/services/implementations/permissionsService.ts index 97f0330917..26fe012a20 100644 --- a/packages/backend-app-api/src/services/implementations/permissionsService.ts +++ b/packages/backend-app-api/src/services/implementations/permissionsService.ts @@ -23,6 +23,7 @@ import { } from '@backstage/backend-plugin-api'; import { ServerPermissionClient } from '@backstage/plugin-permission-node'; +/** @public */ export const permissionsFactory = createServiceFactory({ service: permissionsServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/schedulerService.ts b/packages/backend-app-api/src/services/implementations/schedulerService.ts index 130ccb3f5f..39dbf26ba9 100644 --- a/packages/backend-app-api/src/services/implementations/schedulerService.ts +++ b/packages/backend-app-api/src/services/implementations/schedulerService.ts @@ -21,6 +21,7 @@ import { } from '@backstage/backend-plugin-api'; import { TaskScheduler } from '@backstage/backend-tasks'; +/** @public */ export const schedulerFactory = createServiceFactory({ service: schedulerServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/tokenManagerService.ts b/packages/backend-app-api/src/services/implementations/tokenManagerService.ts index 2e82fce9d9..7767c17944 100644 --- a/packages/backend-app-api/src/services/implementations/tokenManagerService.ts +++ b/packages/backend-app-api/src/services/implementations/tokenManagerService.ts @@ -23,6 +23,7 @@ import { } from '@backstage/backend-plugin-api'; import { ServerTokenManager } from '@backstage/backend-common'; +/** @public */ export const tokenManagerFactory = createServiceFactory({ service: tokenManagerServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/urlReaderService.ts b/packages/backend-app-api/src/services/implementations/urlReaderService.ts index 74431dfa0d..df353a52d2 100644 --- a/packages/backend-app-api/src/services/implementations/urlReaderService.ts +++ b/packages/backend-app-api/src/services/implementations/urlReaderService.ts @@ -23,6 +23,7 @@ import { urlReaderServiceRef, } from '@backstage/backend-plugin-api'; +/** @public */ export const urlReaderFactory = createServiceFactory({ service: urlReaderServiceRef, deps: { diff --git a/packages/backend-app-api/src/wiring/index.ts b/packages/backend-app-api/src/wiring/index.ts index 1dd91e30e1..d6e4de9145 100644 --- a/packages/backend-app-api/src/wiring/index.ts +++ b/packages/backend-app-api/src/wiring/index.ts @@ -14,5 +14,5 @@ * limitations under the License. */ -export type { Backend, CreateBackendOptions } from './types'; -export { createBackend } from './types'; +export type { Backend, CreateSpecializedBackendOptions } from './types'; +export { createSpecializedBackend } from './types'; diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index 112fe06b05..fc4d14a962 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -20,7 +20,6 @@ import { FactoryFunc, ServiceRef, } from '@backstage/backend-plugin-api'; -import { defaultServiceFactories } from '../services/implementations'; import { BackstageBackend } from './BackstageBackend'; /** @@ -42,8 +41,8 @@ export interface BackendRegisterInit { /** * @public */ -export interface CreateBackendOptions { - apis: AnyServiceFactory[]; +export interface CreateSpecializedBackendOptions { + serviceFactories: AnyServiceFactory[]; } export type ServiceHolder = { @@ -53,10 +52,8 @@ export type ServiceHolder = { /** * @public */ -export function createBackend(options?: CreateBackendOptions): Backend { - // TODO: merge with provided APIs - return new BackstageBackend([ - ...defaultServiceFactories, - ...(options?.apis ?? []), - ]); +export function createSpecializedBackend( + options: CreateSpecializedBackendOptions, +): Backend { + return new BackstageBackend(options.serviceFactories); } diff --git a/packages/backend-defaults/.eslintrc.js b/packages/backend-defaults/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/packages/backend-defaults/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/packages/backend-defaults/README.md b/packages/backend-defaults/README.md new file mode 100644 index 0000000000..3128159f7c --- /dev/null +++ b/packages/backend-defaults/README.md @@ -0,0 +1,19 @@ +# @backstage/backend-defaults + +**This package is HIGHLY EXPERIMENTAL, do not use this for production** + +This package provides the core API used by Backstage backend apps. + +## Installation + +Add the library to your backend app package: + +```bash +# From your Backstage root directory +yarn add --cwd packages/backend @backstage/backend-defaults +``` + +## Documentation + +- [Backstage Readme](https://github.com/backstage/backstage/blob/master/README.md) +- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md) diff --git a/packages/backend-defaults/api-report.md b/packages/backend-defaults/api-report.md new file mode 100644 index 0000000000..4e8f7d755c --- /dev/null +++ b/packages/backend-defaults/api-report.md @@ -0,0 +1,19 @@ +## API Report File for "@backstage/backend-defaults" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; +import { Backend } from '@backstage/backend-app-api'; + +// @public (undocumented) +export function createBackend(options?: CreateBackendOptions): Backend; + +// @public (undocumented) +export interface CreateBackendOptions { + // (undocumented) + serviceFactories?: AnyServiceFactory[]; +} + +// (No @packageDocumentation comment for this package) +``` diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json new file mode 100644 index 0000000000..796aee835e --- /dev/null +++ b/packages/backend-defaults/package.json @@ -0,0 +1,47 @@ +{ + "name": "@backstage/backend-defaults", + "description": "Backend defaults used by Backstage backend apps", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "private": false, + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts", + "alphaTypes": "dist/index.alpha.d.ts" + }, + "backstage": { + "role": "node-library" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "packages/backend-defaults" + }, + "keywords": [ + "backstage" + ], + "license": "Apache-2.0", + "scripts": { + "build": "backstage-cli package build --experimental-type-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", + "start": "backstage-cli package start" + }, + "dependencies": { + "@backstage/backend-app-api": "^0.1.1-next.0", + "@backstage/backend-plugin-api": "^0.1.1-next.0" + }, + "devDependencies": { + "@backstage/cli": "^0.18.1-next.0" + }, + "files": [ + "dist", + "alpha" + ] +} \ No newline at end of file diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts new file mode 100644 index 0000000000..31905a3081 --- /dev/null +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -0,0 +1,57 @@ +/* + * 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 { + Backend, + cacheFactory, + configFactory, + createSpecializedBackend, + databaseFactory, + discoveryFactory, + httpRouterFactory, + loggerFactory, + permissionsFactory, + schedulerFactory, + tokenManagerFactory, + urlReaderFactory, +} from '@backstage/backend-app-api'; +import { CreateBackendOptions } from './types'; + +export const defaultServiceFactories = [ + cacheFactory, + configFactory, + databaseFactory, + discoveryFactory, + loggerFactory, + permissionsFactory, + schedulerFactory, + tokenManagerFactory, + urlReaderFactory, + httpRouterFactory, +]; + +/** + * @public + */ +export function createBackend(options?: CreateBackendOptions): Backend { + // TODO: merge with provided APIs + return createSpecializedBackend({ + serviceFactories: [ + ...defaultServiceFactories, + ...(options?.serviceFactories || []), + ], + }); +} diff --git a/packages/backend-defaults/src/index.ts b/packages/backend-defaults/src/index.ts new file mode 100644 index 0000000000..d3227d6d96 --- /dev/null +++ b/packages/backend-defaults/src/index.ts @@ -0,0 +1,18 @@ +/* + * 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 { CreateBackendOptions } from './types'; +export { createBackend } from './CreateBackend'; diff --git a/packages/backend-defaults/src/types.ts b/packages/backend-defaults/src/types.ts new file mode 100644 index 0000000000..710f18ab16 --- /dev/null +++ b/packages/backend-defaults/src/types.ts @@ -0,0 +1,24 @@ +/* + * 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 { AnyServiceFactory } from '@backstage/backend-plugin-api'; + +/** + * @public + */ +export interface CreateBackendOptions { + serviceFactories?: AnyServiceFactory[]; +} diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 934ddd3a71..93eff3f78e 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -25,7 +25,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-app-api": "^0.1.1-next.0", + "@backstage/backend-defaults": "^0.0.0", "@backstage/plugin-catalog-backend": "^1.3.1-next.0", "@backstage/plugin-scaffolder-backend": "^1.5.0-next.0" }, @@ -35,4 +35,4 @@ "files": [ "dist" ] -} +} \ No newline at end of file diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index 6463dc7ed5..ec7ebc0c0d 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -14,13 +14,11 @@ * limitations under the License. */ -import { createBackend } from '@backstage/backend-app-api'; import { catalogPlugin } from '@backstage/plugin-catalog-backend'; import { scaffolderCatalogModule } from '@backstage/plugin-scaffolder-backend'; +import { createBackend } from '@backstage/backend-defaults'; -const backend = createBackend({ - apis: [], -}); +const backend = createBackend(); backend.add(catalogPlugin({})); backend.add(scaffolderCatalogModule({})); From 5df230d48cf44200175620e02e41f4f920de4163 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 14:32:54 +0200 Subject: [PATCH 267/377] Add changeset Signed-off-by: Johan Haals --- .changeset/lazy-students-fetch.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/lazy-students-fetch.md diff --git a/.changeset/lazy-students-fetch.md b/.changeset/lazy-students-fetch.md new file mode 100644 index 0000000000..2ea7c3922c --- /dev/null +++ b/.changeset/lazy-students-fetch.md @@ -0,0 +1,7 @@ +--- +'@backstage/backend-app-api': minor +'@backstage/backend-defaults': minor +--- + +Introduced a new `backend-defaults` package carrying `createBackend` which was previously exported from `backend-app-api`. +The `backend-app-api` package now exports the `createSpecializedBacked` that does not add any service factories by default. From c971afbf211166b79f208e59436a1943e5d22a71 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 14:18:15 +0200 Subject: [PATCH 268/377] scaffolder-backend: deprecate publish:file action Signed-off-by: Patrik Oldsberg --- .changeset/fresh-rockets-yell.md | 5 +++++ plugins/scaffolder-backend/api-report.md | 2 +- .../src/scaffolder/actions/builtin/publish/file.ts | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/fresh-rockets-yell.md diff --git a/.changeset/fresh-rockets-yell.md b/.changeset/fresh-rockets-yell.md new file mode 100644 index 0000000000..b8f597206e --- /dev/null +++ b/.changeset/fresh-rockets-yell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +The `publish:file` action has been deprecated in favor of testing templates using the template editor instead. Note that this action is not and was never been installed by default. diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index de9a9e677f..7c24bdc572 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -303,7 +303,7 @@ export function createPublishBitbucketServerAction(options: { token?: string | undefined; }>; -// @public +// @public @deprecated export function createPublishFileAction(): TemplateAction<{ path: string; }>; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts index 2d2cb85930..52376e39a3 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts @@ -29,6 +29,7 @@ import { createTemplateAction } from '../../createTemplateAction'; * production, as it writes the files to the local filesystem of the scaffolder. * * @public + * @deprecated This action will be removed, prefer testing templates using the template editor instead. */ export function createPublishFileAction() { return createTemplateAction<{ path: string }>({ @@ -47,6 +48,10 @@ export function createPublishFileAction() { }, }, async handler(ctx) { + ctx.logger.warn( + '[DEPRECATED] This action will be removed, prefer testing templates using the template editor instead.', + ); + const { path } = ctx.input; const exists = await fs.pathExists(path); From 187e249276e90c43128789018f1256677241d63d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 12:48:19 +0200 Subject: [PATCH 269/377] create-app: switch better-sqlite3 to be prod dependency by default Signed-off-by: Patrik Oldsberg --- docs/deployment/docker.md | 6 ++++-- packages/backend/Dockerfile | 3 ++- .../templates/default-app/packages/backend/Dockerfile | 3 ++- .../templates/default-app/packages/backend/package.json.hbs | 4 ++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/deployment/docker.md b/docs/deployment/docker.md index 6471ada7f2..6e0ff77228 100644 --- a/docs/deployment/docker.md +++ b/docs/deployment/docker.md @@ -60,7 +60,8 @@ FROM node:16-bullseye-slim WORKDIR /app -# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ @@ -178,7 +179,8 @@ FROM node:16-bullseye-slim WORKDIR /app -# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile index 86f6e17861..fb60b8a669 100644 --- a/packages/backend/Dockerfile +++ b/packages/backend/Dockerfile @@ -13,7 +13,8 @@ FROM node:16-bullseye-slim WORKDIR /app -# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/packages/create-app/templates/default-app/packages/backend/Dockerfile b/packages/create-app/templates/default-app/packages/backend/Dockerfile index a5773aa0f8..8836ac7898 100644 --- a/packages/create-app/templates/default-app/packages/backend/Dockerfile +++ b/packages/create-app/templates/default-app/packages/backend/Dockerfile @@ -13,7 +13,8 @@ FROM node:16-bullseye-slim WORKDIR /app -# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/packages/create-app/templates/default-app/packages/backend/package.json.hbs b/packages/create-app/templates/default-app/packages/backend/package.json.hbs index 3bd070ee9b..3853911c7f 100644 --- a/packages/create-app/templates/default-app/packages/backend/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/backend/package.json.hbs @@ -33,6 +33,7 @@ "@backstage/plugin-search-backend-module-pg": "^{{version '@backstage/plugin-search-backend-module-pg'}}", "@backstage/plugin-search-backend-node": "^{{version '@backstage/plugin-search-backend-node'}}", "@backstage/plugin-techdocs-backend": "^{{version '@backstage/plugin-techdocs-backend'}}", + "better-sqlite3": "^7.5.0", "dockerode": "^3.3.1", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -44,8 +45,7 @@ "@types/dockerode": "^3.3.0", "@types/express-serve-static-core": "^4.17.5", "@types/express": "^4.17.6", - "@types/luxon": "^2.0.4", - "better-sqlite3": "^7.5.0" + "@types/luxon": "^2.0.4" }, "files": [ "dist" From db76fc6255309365ead6c6527e4baffa7a9adb7b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 14:47:13 +0200 Subject: [PATCH 270/377] changesets: added changeset for better-sqlite3 move Signed-off-by: Patrik Oldsberg --- .changeset/loud-ears-taste.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/loud-ears-taste.md diff --git a/.changeset/loud-ears-taste.md b/.changeset/loud-ears-taste.md new file mode 100644 index 0000000000..479e14ce02 --- /dev/null +++ b/.changeset/loud-ears-taste.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +The `better-sqlite3` dependency has been moved back to production `"dependencies"` in `packages/backend/package.json`, with instructions in the Dockerfile to move it to `"devDependencies"` if desired. There is no need to apply this change to existing apps, unless you want your production image to have SQLite available as a database option. From 5595a608d44f71dfbe2164c208bae8d813c5317b Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 14:50:22 +0200 Subject: [PATCH 271/377] format Signed-off-by: Johan Haals --- packages/backend-defaults/package.json | 2 +- packages/backend-next/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 796aee835e..3a9e3a4498 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -44,4 +44,4 @@ "dist", "alpha" ] -} \ No newline at end of file +} diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 93eff3f78e..a5437f621d 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -35,4 +35,4 @@ "files": [ "dist" ] -} \ No newline at end of file +} From e419f6dccaca9e7fa59d0be02fc07cf74bb413af Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 15:35:18 +0200 Subject: [PATCH 272/377] Rename serviceFactories to services, fix docs Signed-off-by: Johan Haals --- packages/backend-app-api/api-report.md | 2 +- packages/backend-app-api/src/wiring/types.ts | 4 ++-- packages/backend-defaults/api-report.md | 4 +--- .../backend-defaults/src/CreateBackend.ts | 15 ++++++++---- packages/backend-defaults/src/index.ts | 8 ++++++- packages/backend-defaults/src/types.ts | 24 ------------------- 6 files changed, 21 insertions(+), 36 deletions(-) delete mode 100644 packages/backend-defaults/src/types.ts diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index c91709519f..130ad6d1f1 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -44,7 +44,7 @@ export function createSpecializedBackend( // @public (undocumented) export interface CreateSpecializedBackendOptions { // (undocumented) - serviceFactories: AnyServiceFactory[]; + services: AnyServiceFactory[]; } // @public (undocumented) diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index fc4d14a962..2aaead805d 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -42,7 +42,7 @@ export interface BackendRegisterInit { * @public */ export interface CreateSpecializedBackendOptions { - serviceFactories: AnyServiceFactory[]; + services: AnyServiceFactory[]; } export type ServiceHolder = { @@ -55,5 +55,5 @@ export type ServiceHolder = { export function createSpecializedBackend( options: CreateSpecializedBackendOptions, ): Backend { - return new BackstageBackend(options.serviceFactories); + return new BackstageBackend(options.services); } diff --git a/packages/backend-defaults/api-report.md b/packages/backend-defaults/api-report.md index 4e8f7d755c..4c0fb80714 100644 --- a/packages/backend-defaults/api-report.md +++ b/packages/backend-defaults/api-report.md @@ -12,8 +12,6 @@ export function createBackend(options?: CreateBackendOptions): Backend; // @public (undocumented) export interface CreateBackendOptions { // (undocumented) - serviceFactories?: AnyServiceFactory[]; + services?: AnyServiceFactory[]; } - -// (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 31905a3081..8d61d6e915 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -28,7 +28,6 @@ import { tokenManagerFactory, urlReaderFactory, } from '@backstage/backend-app-api'; -import { CreateBackendOptions } from './types'; export const defaultServiceFactories = [ cacheFactory, @@ -43,15 +42,21 @@ export const defaultServiceFactories = [ httpRouterFactory, ]; +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; + +/** + * @public + */ +export interface CreateBackendOptions { + services?: AnyServiceFactory[]; +} + /** * @public */ export function createBackend(options?: CreateBackendOptions): Backend { // TODO: merge with provided APIs return createSpecializedBackend({ - serviceFactories: [ - ...defaultServiceFactories, - ...(options?.serviceFactories || []), - ], + services: [...defaultServiceFactories, ...(options?.services || [])], }); } diff --git a/packages/backend-defaults/src/index.ts b/packages/backend-defaults/src/index.ts index d3227d6d96..b6ae2f1333 100644 --- a/packages/backend-defaults/src/index.ts +++ b/packages/backend-defaults/src/index.ts @@ -14,5 +14,11 @@ * limitations under the License. */ -export type { CreateBackendOptions } from './types'; +/** + * Backend defaults used by Backstage backend apps + * + * @packageDocumentation + */ + +export type { CreateBackendOptions } from './CreateBackend'; export { createBackend } from './CreateBackend'; diff --git a/packages/backend-defaults/src/types.ts b/packages/backend-defaults/src/types.ts deleted file mode 100644 index 710f18ab16..0000000000 --- a/packages/backend-defaults/src/types.ts +++ /dev/null @@ -1,24 +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 { AnyServiceFactory } from '@backstage/backend-plugin-api'; - -/** - * @public - */ -export interface CreateBackendOptions { - serviceFactories?: AnyServiceFactory[]; -} From ab4b0f4ce1a4fd7ab365b9d750496af6919aaf05 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 15:43:15 +0200 Subject: [PATCH 273/377] skip building alpha types Signed-off-by: Johan Haals --- packages/backend-defaults/package.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 3a9e3a4498..8b39ecc724 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -8,8 +8,7 @@ "publishConfig": { "access": "public", "main": "dist/index.cjs.js", - "types": "dist/index.d.ts", - "alphaTypes": "dist/index.alpha.d.ts" + "types": "dist/index.d.ts" }, "backstage": { "role": "node-library" @@ -25,7 +24,7 @@ ], "license": "Apache-2.0", "scripts": { - "build": "backstage-cli package build --experimental-type-build", + "build": "backstage-cli package build", "lint": "backstage-cli package lint", "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", @@ -41,7 +40,6 @@ "@backstage/cli": "^0.18.1-next.0" }, "files": [ - "dist", - "alpha" + "dist" ] } From 0297da83c0569f3ec3298672cad3056de72d187a Mon Sep 17 00:00:00 2001 From: Salomon Moreno Date: Tue, 9 Aug 2022 10:03:55 -0500 Subject: [PATCH 274/377] Add DaemonSets as Default Objects Signed-off-by: Salomon Moreno --- .changeset/dull-peaches-approve.md | 6 ++++++ plugins/kubernetes-backend/api-report.md | 3 ++- .../src/service/KubernetesFanOutHandler.ts | 6 ++++++ plugins/kubernetes-backend/src/types/types.ts | 3 ++- plugins/kubernetes-common/api-report.md | 14 +++++++++++++- plugins/kubernetes-common/src/types.ts | 9 ++++++++- 6 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 .changeset/dull-peaches-approve.md diff --git a/.changeset/dull-peaches-approve.md b/.changeset/dull-peaches-approve.md new file mode 100644 index 0000000000..f2edcc9e11 --- /dev/null +++ b/.changeset/dull-peaches-approve.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +'@backstage/plugin-kubernetes-common': patch +--- + +Added `DaemonSets` to the default kubernetes resources. diff --git a/plugins/kubernetes-backend/api-report.md b/plugins/kubernetes-backend/api-report.md index 03ecefa79d..d98d80ddb1 100644 --- a/plugins/kubernetes-backend/api-report.md +++ b/plugins/kubernetes-backend/api-report.md @@ -227,7 +227,8 @@ export type KubernetesObjectTypes = | 'cronjobs' | 'ingresses' | 'customresources' - | 'statefulsets'; + | 'statefulsets' + | 'daemonsets'; // @alpha export interface KubernetesServiceLocator { diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index 3b96dc783f..7fcc9836a3 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -118,6 +118,12 @@ export const DEFAULT_OBJECTS: ObjectToFetch[] = [ plural: 'statefulsets', objectType: 'statefulsets', }, + { + group: 'apps', + apiVersion: 'v1', + plural: 'daemonsets', + objectType: 'daemonsets', + }, ]; export interface KubernetesFanOutHandlerOptions diff --git a/plugins/kubernetes-backend/src/types/types.ts b/plugins/kubernetes-backend/src/types/types.ts index 6bdcfc24da..33fde70b24 100644 --- a/plugins/kubernetes-backend/src/types/types.ts +++ b/plugins/kubernetes-backend/src/types/types.ts @@ -108,7 +108,8 @@ export type KubernetesObjectTypes = | 'cronjobs' | 'ingresses' | 'customresources' - | 'statefulsets'; + | 'statefulsets' + | 'daemonsets'; /** * Used to load cluster details from different sources diff --git a/plugins/kubernetes-common/api-report.md b/plugins/kubernetes-common/api-report.md index 2ca33d1a97..f8a8c6b460 100644 --- a/plugins/kubernetes-common/api-report.md +++ b/plugins/kubernetes-common/api-report.md @@ -7,6 +7,7 @@ import { Entity } from '@backstage/catalog-model'; import type { JsonObject } from '@backstage/types'; import { V1ConfigMap } from '@kubernetes/client-node'; import { V1CronJob } from '@kubernetes/client-node'; +import { V1DaemonSet } from '@kubernetes/client-node'; import { V1Deployment } from '@kubernetes/client-node'; import { V1HorizontalPodAutoscaler } from '@kubernetes/client-node'; import { V1Ingress } from '@kubernetes/client-node'; @@ -114,6 +115,16 @@ export interface CustomResourceFetchResponse { type: 'customresources'; } +// Warning: (ae-missing-release-tag) "DaemonSetsFetchResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface DaemonSetsFetchResponse { + // (undocumented) + resources: Array; + // (undocumented) + type: 'daemonsets'; +} + // Warning: (ae-missing-release-tag) "DeploymentFetchResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -139,7 +150,8 @@ export type FetchResponse = | CronJobsFetchResponse | IngressesFetchResponse | CustomResourceFetchResponse - | StatefulSetsFetchResponse; + | StatefulSetsFetchResponse + | DaemonSetsFetchResponse; // Warning: (ae-missing-release-tag) "HorizontalPodAutoscalersFetchResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // diff --git a/plugins/kubernetes-common/src/types.ts b/plugins/kubernetes-common/src/types.ts index 9b8b790c79..53f6a5a640 100644 --- a/plugins/kubernetes-common/src/types.ts +++ b/plugins/kubernetes-common/src/types.ts @@ -18,6 +18,7 @@ import type { JsonObject } from '@backstage/types'; import { V1ConfigMap, V1CronJob, + V1DaemonSet, V1Deployment, V1HorizontalPodAutoscaler, V1Ingress, @@ -105,7 +106,8 @@ export type FetchResponse = | CronJobsFetchResponse | IngressesFetchResponse | CustomResourceFetchResponse - | StatefulSetsFetchResponse; + | StatefulSetsFetchResponse + | DaemonSetsFetchResponse; export interface PodFetchResponse { type: 'pods'; @@ -167,6 +169,11 @@ export interface StatefulSetsFetchResponse { resources: Array; } +export interface DaemonSetsFetchResponse { + type: 'daemonsets'; + resources: Array; +} + export interface KubernetesFetchError { errorType: KubernetesErrorTypes; statusCode?: number; From 79fd0b32d61e8585ecd65b9c23dc89ef690ad504 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 16:13:08 +0200 Subject: [PATCH 275/377] backend-defaults: Merge provided services with default services Signed-off-by: Johan Haals --- packages/backend-defaults/src/CreateBackend.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 8d61d6e915..7cc116a052 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -28,6 +28,7 @@ import { tokenManagerFactory, urlReaderFactory, } from '@backstage/backend-app-api'; +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; export const defaultServiceFactories = [ cacheFactory, @@ -42,8 +43,6 @@ export const defaultServiceFactories = [ httpRouterFactory, ]; -import { AnyServiceFactory } from '@backstage/backend-plugin-api'; - /** * @public */ @@ -55,8 +54,17 @@ export interface CreateBackendOptions { * @public */ export function createBackend(options?: CreateBackendOptions): Backend { - // TODO: merge with provided APIs + const services = new Map( + defaultServiceFactories.map(sf => [sf.service.id, sf]), + ); + + if (options?.services) { + for (const sf of options.services) { + services.set(sf.service.id, sf); + } + } + return createSpecializedBackend({ - services: [...defaultServiceFactories, ...(options?.services || [])], + services: Array.from(services.values()), }); } From cfb4a12c684719a7a5d059ea452654c909c6c108 Mon Sep 17 00:00:00 2001 From: Paulo Peixoto <72894267+padupe@users.noreply.github.com> Date: Wed, 10 Aug 2022 11:47:33 -0300 Subject: [PATCH 276/377] fix: change HeaderIcon for ExampleIcon. Signed-off-by: Paulo Peixoto <72894267+padupe@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 48d40761da..9ca82d01a1 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -296,7 +296,7 @@ import { SvgIcon, SvgIconProps } from '@material-ui/core'; import React from 'react'; -export const HeaderIcon = (props: SvgIconProps) => ( +export const ExampleIcon = (props: SvgIconProps) => ( Date: Wed, 10 Aug 2022 10:13:34 -0500 Subject: [PATCH 277/377] Added back reduction in size Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .../techdocs/src/reader/transformers/styles/rules/typeset.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/techdocs/src/reader/transformers/styles/rules/typeset.ts b/plugins/techdocs/src/reader/transformers/styles/rules/typeset.ts index 6a3b0461ef..4c1eef1ea4 100644 --- a/plugins/techdocs/src/reader/transformers/styles/rules/typeset.ts +++ b/plugins/techdocs/src/reader/transformers/styles/rules/typeset.ts @@ -47,7 +47,8 @@ ${headings.reduce((style, heading) => { let factor: number | string = 1; if (typeof value === 'number') { // convert px to rem - factor = value / htmlFontSize; + // 60% of the size defined because it is too big + factor = (value / htmlFontSize) * 0.6; } if (typeof value === 'string') { factor = value.replace('rem', ''); From e924d2d01326512741c4c96662a544abf540ac8b Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 10 Aug 2022 10:15:15 -0500 Subject: [PATCH 278/377] Added changeset Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/dull-fans-hug.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/dull-fans-hug.md diff --git a/.changeset/dull-fans-hug.md b/.changeset/dull-fans-hug.md new file mode 100644 index 0000000000..6328e3d9f2 --- /dev/null +++ b/.changeset/dull-fans-hug.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Added back reduction in size, this fixes the extermly large TeachDocs headings From 0c027eb524be00bccf349880038f712a314349b3 Mon Sep 17 00:00:00 2001 From: kielosz Date: Wed, 10 Aug 2022 17:51:07 +0200 Subject: [PATCH 279/377] Use options parameter Signed-off-by: kielosz --- plugins/cost-insights/api-report.md | 4 +++- .../src/components/CostGrowth/CostGrowthIndicator.tsx | 4 ++-- .../components/CostOverviewCard/CostOverviewLegend.tsx | 4 ++-- .../ProductInsightsCard/ProductEntityTable.tsx | 10 ++-------- plugins/cost-insights/src/utils/formatters.test.ts | 2 +- plugins/cost-insights/src/utils/formatters.ts | 8 ++++---- 6 files changed, 14 insertions(+), 18 deletions(-) diff --git a/plugins/cost-insights/api-report.md b/plugins/cost-insights/api-report.md index 19d94c7058..2a4cecc4eb 100644 --- a/plugins/cost-insights/api-report.md +++ b/plugins/cost-insights/api-report.md @@ -322,7 +322,9 @@ export type CostGrowthIndicatorProps = TypographyProps & { change: ChangeStatistic; formatter?: ( change: ChangeStatistic, - returnAbsoluteValue: boolean, + options?: { + absolute: boolean; + }, ) => Maybe; }; diff --git a/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx b/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx index bb303956a3..e7746495d6 100644 --- a/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx +++ b/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx @@ -27,7 +27,7 @@ export type CostGrowthIndicatorProps = TypographyProps & { change: ChangeStatistic; formatter?: ( change: ChangeStatistic, - returnAbsoluteValue: boolean, + options?: { absolute: boolean }, ) => Maybe; }; @@ -47,7 +47,7 @@ export const CostGrowthIndicator = ({ return ( - {formatter ? formatter(change, true) : change.ratio} + {formatter ? formatter(change, { absolute: true }) : change.ratio} {growth === GrowthType.Excess && } {growth === GrowthType.Savings && } diff --git a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx index ddd31201a6..2df80f4780 100644 --- a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx +++ b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx @@ -59,7 +59,7 @@ export const CostOverviewLegend = ({ {dailyCostData.change && ( - {formatChange(dailyCostData.change, false)} + {formatChange(dailyCostData.change)} )} @@ -70,7 +70,7 @@ export const CostOverviewLegend = ({ title={`${metric.name} Trend`} markerColor={theme.palette.magenta} > - {formatChange(metricData.change, false)} + {formatChange(metricData.change)} ) { if (b.id === 'total') return 1; if (field === 'label') return a.label.localeCompare(b.label); if (field === 'change') { - if ( - formatChange(a[field], false) === '∞' || - formatChange(b[field], false) === '-∞' - ) + if (formatChange(a[field]) === '∞' || formatChange(b[field]) === '-∞') return 1; - if ( - formatChange(a[field], false) === '-∞' || - formatChange(b[field], false) === '∞' - ) + if (formatChange(a[field]) === '-∞' || formatChange(b[field]) === '∞') return -1; return a[field].ratio! - b[field].ratio!; } diff --git a/plugins/cost-insights/src/utils/formatters.test.ts b/plugins/cost-insights/src/utils/formatters.test.ts index 754760e5cb..8bf0a6a9d7 100644 --- a/plugins/cost-insights/src/utils/formatters.test.ts +++ b/plugins/cost-insights/src/utils/formatters.test.ts @@ -75,7 +75,7 @@ describe.each` ${10.123} | ${'>1000%'} ${-0.123123} | ${'-12%'} ${-1.123} | ${'-112%'} - ${-10.123} | ${'>1000%'} + ${-10.123} | ${'>-1000%'} `('formatPercent', ({ ratio, expected }) => { it(`correctly formats ${ratio} as ${expected}`, () => { expect(formatPercent(ratio)).toBe(expected); diff --git a/plugins/cost-insights/src/utils/formatters.ts b/plugins/cost-insights/src/utils/formatters.ts index e66b6bc75c..e9b19097a4 100644 --- a/plugins/cost-insights/src/utils/formatters.ts +++ b/plugins/cost-insights/src/utils/formatters.ts @@ -83,14 +83,14 @@ export function formatCurrency(amount: number, currency?: string): string { export function formatChange( change: ChangeStatistic, - returnAbsoluteValue: boolean, + options?: { absolute: boolean }, ): string { if (notEmpty(change.ratio)) { return formatPercent( - returnAbsoluteValue ? Math.abs(change.ratio) : change.ratio, + options?.absolute ? Math.abs(change.ratio) : change.ratio, ); } - if (returnAbsoluteValue) { + if (options?.absolute) { return '∞'; } return change.amount >= 0 ? '∞' : '-∞'; @@ -103,7 +103,7 @@ export function formatPercent(n: number): string { } if (Math.abs(n) > 10) { - return `>1000%`; + return `>${n < 0 ? '-' : ''}1000%`; } return `${(n * 100).toFixed(0)}%`; From ac39b6da0e561f14b2caa69567d87bb1bbd09f5c Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Wed, 10 Aug 2022 12:08:15 -0400 Subject: [PATCH 280/377] Fix typo Signed-off-by: Adam Harvey --- packages/create-app/templates/default-app/app-config.yaml.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 9c31ccf381..4a058deefd 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -26,7 +26,7 @@ backend: origin: http://localhost:3000 methods: [GET, HEAD, PATCH, POST, PUT, DELETE] credentials: true - # This is for local developement only, it is not recommended to use this in production + # This is for local development only, it is not recommended to use this in production # The production database configuration is stored in app-config.production.yaml database: client: better-sqlite3 From 83eb862f15a51ece09525725c9d26af4f0e33cbb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 17:59:19 +0000 Subject: [PATCH 281/377] chore(deps): update dependency @types/semver to v7.3.11 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 197930f055..b138ec50fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7645,9 +7645,9 @@ integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== "@types/semver@^7.3.8": - version "7.3.10" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.10.tgz#5f19ee40cbeff87d916eedc8c2bfe2305d957f73" - integrity sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw== + version "7.3.11" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.11.tgz#7a84d3228f34e68d14955fc406f8e66fdbe9e65e" + integrity sha512-R9HhjC4aKx3jL0FLwU7x6qMTysTvLh7jesRslXmxgCOXZwyh5dsnmrPQQToMyess8D4U+8G9x9mBFZoC/1o/Tw== "@types/serve-handler@^6.1.0": version "6.1.1" From e8cd3491c9599b2157adecc31f1434a904950db5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 18:00:16 +0000 Subject: [PATCH 282/377] fix(deps): update apollo graphql packages to v3.10.1 Signed-off-by: Renovate Bot --- yarn.lock | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index 197930f055..9d4360d789 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6932,7 +6932,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.29", "@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.29" resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz#2a1795ea8e9e9c91b4a4bbe475034b20c1ec711c" integrity sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q== @@ -6941,6 +6941,15 @@ "@types/qs" "*" "@types/range-parser" "*" +"@types/express-serve-static-core@4.17.30": + version "4.17.30" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz#0f2f99617fa8f9696170c46152ccf7500b34ac04" + integrity sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/express-session@^1.17.2": version "1.17.5" resolved "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.5.tgz#13f48852b4aa60ff595835faeb4b4dda0ba0866e" @@ -8605,10 +8614,10 @@ apollo-reporting-protobuf@^3.3.2: dependencies: "@apollo/protobufjs" "1.2.4" -apollo-server-core@^3.10.0: - version "3.10.0" - resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.10.0.tgz#6680b4eb4699829ed50d8a592721ee5e5e11e041" - integrity sha512-ln5drIk3oW/ycYhcYL9TvM7vRf7OZwJrgHWlnjnMakozBQIBSumdMi4pN001DhU9mVBWTfnmBv3CdcxJdGXIvA== +apollo-server-core@^3.10.1: + version "3.10.1" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.10.1.tgz#01f9ffc57c7d15c27bd7f89d65f45522aa3f3c3d" + integrity sha512-UFFziv6h15QbKRZOA6wLyr1Sle9kns3JuQ5DEB7OYe5AIoOJNjZkWXX/tmLFUrSmlnDDryi6Sf5pDzpYmUC/UA== dependencies: "@apollo/utils.keyvaluecache" "^1.0.1" "@apollo/utils.logger" "^1.0.0" @@ -8645,18 +8654,18 @@ apollo-server-errors@^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-express@^3.0.0, apollo-server-express@^3.10.0: - version "3.10.0" - resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.10.0.tgz#fd276cf36031f7a02936cce6d170a35e1c084701" - integrity sha512-ww3tZq9I/x3Oxtux8xlHAZcSB0NNQ17lRlY6yCLk1F+jCzdcjuj0x8XNg0GdTrMowt5v43o786bU9VYKD5OVnA== +apollo-server-express@^3.0.0, apollo-server-express@^3.10.1: + version "3.10.1" + resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.10.1.tgz#b0262d3c4919b554cff5872639bb13b694b5a217" + integrity sha512-r0esst3YGNdlphYiOrflfBqJ15VAZAhYhWSFo2kPF4knsIGK5HUkeqwjMr+fFDBn4DEfYzC+I1+LnsF/hFN8VQ== 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.29" + "@types/express-serve-static-core" "4.17.30" accepts "^1.3.5" - apollo-server-core "^3.10.0" + apollo-server-core "^3.10.1" apollo-server-types "^3.6.2" body-parser "^1.19.0" cors "^2.8.5" @@ -8680,13 +8689,13 @@ apollo-server-types@^3.6.2: apollo-server-env "^4.2.1" apollo-server@^3.0.0: - version "3.10.0" - resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.10.0.tgz#ed4b0b4cc5e1f44260923a4317caa663f1a3824e" - integrity sha512-6PAz1XZFM9+K2+QUCXXxQIlZy5mhSOhg0rTx3ZNbIdy1fFNP+6ZjvQAJxBIyEtaKlC2yEPAOg4yi3u8WfuA3bA== + version "3.10.1" + resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.10.1.tgz#ed0c39d706a6a232885680c001df3b90c5cb0902" + integrity sha512-2e7EN7Pw+vV7vP236zozuFVMLjeY6Q8lF1VzT+j32pZ2oYuTrDv+9lFjMjTBPK2yV5kzuOwJU4dWkWx5OKDEiQ== dependencies: "@types/express" "4.17.13" - apollo-server-core "^3.10.0" - apollo-server-express "^3.10.0" + apollo-server-core "^3.10.1" + apollo-server-express "^3.10.1" express "^4.17.1" aproba@^1.0.3: From 3cff2dbf5904c4119dd88663619ce9e90b3c1a67 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 18:49:59 +0000 Subject: [PATCH 283/377] fix(deps): update dependency @google-cloud/storage to v6.4.0 Signed-off-by: Renovate Bot --- yarn.lock | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index b138ec50fb..8d7f8ea446 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2768,9 +2768,9 @@ integrity sha512-91ArYvRgXWb73YvEOBMmOcJc0bDRs5yiVHnqkwoG0f3nm7nZuipllz6e7BvFESBvjkDTBC0zMD8QxedUwNLc1A== "@google-cloud/storage@^6.0.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.3.0.tgz#0a9765416b659f54477da6611d9c12b914c04a61" - integrity sha512-Ah4wl9cWUEW+2lAqHsKauaLlPmbtdOdQkvJE6BFwmTSZhywYVtVHLcEpf5F+/GmmNTnirFGNdE7UjgbyOxcnRg== + version "6.4.0" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.4.0.tgz#36413d549859ea325b71328e61dff7a669bc1f2e" + integrity sha512-ogNKY8Mv8JmNvSlJv12E6lB2DtcG7pVEI8k9vmH879ja5qqK8WPw0ys5/FG2Dh5AOwxrbDKbnzMVChNQuXtGpg== dependencies: "@google-cloud/paginator" "^3.0.7" "@google-cloud/projectify" "^3.0.0" @@ -2789,7 +2789,6 @@ p-limit "^3.0.1" pumpify "^2.0.0" retry-request "^5.0.0" - stream-events "^1.0.4" teeny-request "^8.0.0" uuid "^8.0.0" @@ -24383,7 +24382,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.5: version "1.0.5" resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== From a641f79dcb51a2936cce4446e22684ee3ad2e39f Mon Sep 17 00:00:00 2001 From: Vincent Lam Date: Wed, 10 Aug 2022 21:17:02 +0200 Subject: [PATCH 284/377] Move CSS overflow property to quadrant block element Signed-off-by: Vincent Lam --- .changeset/witty-seas-tie.md | 5 +++++ .../tech-radar/src/components/RadarLegend/RadarLegend.tsx | 7 +------ 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 .changeset/witty-seas-tie.md diff --git a/.changeset/witty-seas-tie.md b/.changeset/witty-seas-tie.md new file mode 100644 index 0000000000..e0ee2f57d4 --- /dev/null +++ b/.changeset/witty-seas-tie.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-radar': patch +--- + +Move CSS overflow property to quadrant block element (i.e. to a div element) in RadarLegend component. diff --git a/plugins/tech-radar/src/components/RadarLegend/RadarLegend.tsx b/plugins/tech-radar/src/components/RadarLegend/RadarLegend.tsx index 705dc9f47b..a398113b98 100644 --- a/plugins/tech-radar/src/components/RadarLegend/RadarLegend.tsx +++ b/plugins/tech-radar/src/components/RadarLegend/RadarLegend.tsx @@ -32,15 +32,11 @@ export type Props = { }; const useStyles = makeStyles(theme => ({ - quadrantLegend: { - overflowY: 'auto', - scrollbarWidth: 'thin', - }, quadrant: { height: '100%', width: '100%', + overflowY: 'auto', scrollbarWidth: 'thin', - pointerEvents: 'none', }, quadrantHeading: { pointerEvents: 'none', @@ -229,7 +225,6 @@ const RadarLegend = (props: Props): JSX.Element => { y={quadrant.legendY} width={quadrant.legendWidth} height={quadrant.legendHeight} - className={classes.quadrantLegend} data-testid="radar-quadrant" >
From 6dd47b8a8122ce4f0aafd77b99fa79c095becd8c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 19:34:54 +0000 Subject: [PATCH 285/377] fix(deps): update dependency aws-sdk to v2.1192.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8d7f8ea446..a18da54699 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9072,9 +9072,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1191.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1191.0.tgz#2748567252c68ef37a8ce29f48aa063681083918" - integrity sha512-G8hWvuc+3rxTfHqsnUwGx/fy8zlnVPtlNesXMHlwU/l4oBx3+Weg0Nhng6HvLGzUJifzlnSKDXrOsWVkHtuZ1w== + version "2.1192.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1192.0.tgz#13fe38ec8dae3232f17d52b370e69daa9c7a0e9c" + integrity sha512-6uzrlG1Ow3qcOnL0+et+DBTGhYgJzgNydVvos1Eg01vPc/ZhxR7roZ3epZQcPmOR0thQuzzckTq7FBO6wzZA2w== dependencies: buffer "4.9.2" events "1.1.1" From 9ba754239b1cca8c31e343cd8951e54a8b203ee4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 19:35:48 +0000 Subject: [PATCH 286/377] fix(deps): update dependency webpack-dev-server to v4.10.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8d7f8ea446..7cf1217bf2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26373,9 +26373,9 @@ webpack-dev-middleware@^5.3.1: schema-utils "^4.0.0" webpack-dev-server@^4.7.3: - version "4.9.3" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz#2360a5d6d532acb5410a668417ad549ee3b8a3c9" - integrity sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw== + version "4.10.0" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz#de270d0009eba050546912be90116e7fd740a9ca" + integrity sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" From bc0addf4de335a388b57f1c16a569043fcbd1b04 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 20:26:21 +0000 Subject: [PATCH 287/377] fix(deps): update dependency @types/passport to v1.0.10 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7cf1217bf2..43f1cc89fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7444,9 +7444,9 @@ "@types/passport" "*" "@types/passport@*", "@types/passport@^1.0.3": - version "1.0.9" - resolved "https://registry.npmjs.org/@types/passport/-/passport-1.0.9.tgz#b32fa8f7485dace77a9b58e82d0c92908f6e8387" - integrity sha512-9+ilzUhmZQR4JP49GdC2O4UdDE3POPLwpmaTC/iLkW7l0TZCXOo1zsTnnlXPq6rP1UsUZPfbAV4IUdiwiXyC7g== + version "1.0.10" + resolved "https://registry.npmjs.org/@types/passport/-/passport-1.0.10.tgz#c518f2bae8b1538b7be71ee7f9220fbd3f569f05" + integrity sha512-IZamnXuN7mY+2/v8bAW6nuTcKiay7gXBBcMBZ8n7YHB4u5DwsWoJaNrHdAQ8PZEODRjCv3oHOg76CYJ40j9RqA== dependencies: "@types/express" "*" From d4ff58fd6166d593d6f4672dad98963bac91ed1b Mon Sep 17 00:00:00 2001 From: Bruce Arctor <5032356+brucearctor@users.noreply.github.com> Date: Wed, 10 Aug 2022 14:41:26 -0700 Subject: [PATCH 288/377] vacation over Signed-off-by: Bruce Arctor <5032356+brucearctor@users.noreply.github.com> --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index a6e740a427..5dba1fdf52 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ ![headline](docs/assets/headline.png) -> 🏖 From July 7th due to Summer Vacations for some of the maintainers, expect the project to move a little slower than normal, and support to be limited. Normal service will resume on August 8th 🏝 - # [Backstage](https://backstage.io) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) From 831a8fee86c21777ca81c78e45c3a06c083fc8a7 Mon Sep 17 00:00:00 2001 From: Robert Cen Date: Thu, 11 Aug 2022 14:25:05 +1000 Subject: [PATCH 289/377] Send Authorization headers in fetch requests in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled as per https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/authenticate-api-requests.md Signed-off-by: Robert Cen --- .changeset/weak-drinks-report.md | 5 +++ .../code-climate/src/api/production-api.ts | 37 ++++++++++++++++--- plugins/code-climate/src/plugin.ts | 3 +- 3 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 .changeset/weak-drinks-report.md diff --git a/.changeset/weak-drinks-report.md b/.changeset/weak-drinks-report.md new file mode 100644 index 0000000000..d9ab3880f7 --- /dev/null +++ b/.changeset/weak-drinks-report.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-code-climate': patch +--- + +Send Authorization headers in fetch requests in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled as per https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/authenticate-api-requests.md. diff --git a/plugins/code-climate/src/api/production-api.ts b/plugins/code-climate/src/api/production-api.ts index 665d7e9f63..d37ec61458 100644 --- a/plugins/code-climate/src/api/production-api.ts +++ b/plugins/code-climate/src/api/production-api.ts @@ -22,7 +22,7 @@ import { CodeClimateIssuesData, } from './code-climate-data'; import { CodeClimateApi } from './code-climate-api'; -import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; import { Duration } from 'luxon'; import humanizeDuration from 'humanize-duration'; @@ -34,8 +34,19 @@ const codeSmellsQuery = `${basicIssuesOptions}&${categoriesFilter}=Complexity`; const duplicationQuery = `${basicIssuesOptions}&${categoriesFilter}=Duplication`; const otherIssuesQuery = `${basicIssuesOptions}&${categoriesFilter}=Bug%20Risk`; +type Options = { + discoveryApi: DiscoveryApi; + identityApi: IdentityApi; +}; + export class ProductionCodeClimateApi implements CodeClimateApi { - constructor(private readonly discoveryApi: DiscoveryApi) {} + private readonly discoveryApi: DiscoveryApi; + private readonly identityApi: IdentityApi; + + constructor(options: Options) { + this.discoveryApi = options.discoveryApi; + this.identityApi = options.identityApi; + } async fetchAllData(options: { apiUrl: string; @@ -45,6 +56,10 @@ export class ProductionCodeClimateApi implements CodeClimateApi { }): Promise { const { apiUrl, repoID, snapshotID, testReportID } = options; + const { token } = await this.identityApi.getCredentials(); + const headersWithAuth = { + headers: { Authorization: `Bearer ${token}` }, + }; const [ maintainabilityResponse, testCoverageResponse, @@ -52,16 +67,25 @@ export class ProductionCodeClimateApi implements CodeClimateApi { duplicationResponse, otherIssuesResponse, ] = await Promise.all([ - await fetch(`${apiUrl}/repos/${repoID}/snapshots/${snapshotID}`), - await fetch(`${apiUrl}/repos/${repoID}/test_reports/${testReportID}`), + await fetch( + `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}`, + headersWithAuth, + ), + await fetch( + `${apiUrl}/repos/${repoID}/test_reports/${testReportID}`, + headersWithAuth, + ), await fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${codeSmellsQuery}`, + headersWithAuth, ), await fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${duplicationQuery}`, + headersWithAuth, ), await fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${otherIssuesQuery}`, + headersWithAuth, ), ]); @@ -108,8 +132,11 @@ export class ProductionCodeClimateApi implements CodeClimateApi { const apiUrl = `${await this.discoveryApi.getBaseUrl( 'proxy', )}/codeclimate/api`; + const { token } = await this.identityApi.getCredentials(); - const repoResponse = await fetch(`${apiUrl}/repos/${repoID}`); + const repoResponse = await fetch(`${apiUrl}/repos/${repoID}`, { + headers: { Authorization: `Bearer ${token}` }, + }); if (!repoResponse.ok) { throw new Error('Failed fetching Code Climate info'); diff --git a/plugins/code-climate/src/plugin.ts b/plugins/code-climate/src/plugin.ts index dcf86f1e19..d8f7ea5028 100644 --- a/plugins/code-climate/src/plugin.ts +++ b/plugins/code-climate/src/plugin.ts @@ -39,7 +39,8 @@ export const codeClimatePlugin = createPlugin({ discoveryApi: discoveryApiRef, identityApi: identityApiRef, }, - factory: ({ discoveryApi }) => new ProductionCodeClimateApi(discoveryApi), + factory: ({ discoveryApi, identityApi }) => + new ProductionCodeClimateApi({ discoveryApi, identityApi }), }), ], routes: { From 459b179de4e9b26e2c48ce7e92508a994b7b7acd Mon Sep 17 00:00:00 2001 From: Robert Cen Date: Thu, 11 Aug 2022 14:44:02 +1000 Subject: [PATCH 290/377] Run yarn build:api-reports to update api-report.md Signed-off-by: Robert Cen --- plugins/code-climate/api-report.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/code-climate/api-report.md b/plugins/code-climate/api-report.md index b0cc3e1450..13231361dc 100644 --- a/plugins/code-climate/api-report.md +++ b/plugins/code-climate/api-report.md @@ -8,6 +8,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { IdentityApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; // Warning: (ae-missing-release-tag) "CodeClimateApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -74,7 +75,8 @@ export const mockData: CodeClimateData; // // @public (undocumented) export class ProductionCodeClimateApi implements CodeClimateApi { - constructor(discoveryApi: DiscoveryApi); + // Warning: (ae-forgotten-export) The symbol "Options" needs to be exported by the entry point index.d.ts + constructor(options: Options); // (undocumented) fetchAllData(options: { apiUrl: string; From a9c0f40404f8822083f829aa47bc7d08a5222dcd Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 11 Aug 2022 11:36:40 +0200 Subject: [PATCH 291/377] chore: adding a note about division mode Signed-off-by: blam --- docs/tutorials/switching-sqlite-postgres.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/tutorials/switching-sqlite-postgres.md b/docs/tutorials/switching-sqlite-postgres.md index c4e4bd83b6..b31ce120d8 100644 --- a/docs/tutorials/switching-sqlite-postgres.md +++ b/docs/tutorials/switching-sqlite-postgres.md @@ -86,3 +86,16 @@ backend: + # ca: # if you have a CA file and want to verify it you can uncomment this section + # $file: /ca/server.crt ``` + +### Using a single database + +By default, each plugin will get it's own database ensure that there's no conflict in table names throughout the plugins that you install, and to keep these seperate for other use cases further down the line. If you are limited in that you can only create one database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create seperate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating seperate databases. + +You can enable this using the following config: + +```yaml +backend: + database: + client: pg + pluginDivisionMode: schema # defaults to database, but changing this to schema means plugins will be given their own schema (in the specified/default database) +``` From 097ad14492fc6817c063db3386594a0ae2aace56 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 11 Aug 2022 11:41:31 +0200 Subject: [PATCH 292/377] chore: fix my spelling issues Signed-off-by: blam --- docs/tutorials/switching-sqlite-postgres.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/switching-sqlite-postgres.md b/docs/tutorials/switching-sqlite-postgres.md index b31ce120d8..74fddb5eb3 100644 --- a/docs/tutorials/switching-sqlite-postgres.md +++ b/docs/tutorials/switching-sqlite-postgres.md @@ -89,7 +89,7 @@ backend: ### Using a single database -By default, each plugin will get it's own database ensure that there's no conflict in table names throughout the plugins that you install, and to keep these seperate for other use cases further down the line. If you are limited in that you can only create one database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create seperate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating seperate databases. +By default, each plugin will get it's own database ensure that there's no conflict in table names throughout the plugins that you install, and to keep these separate for other use cases further down the line. If you are limited in that you can only create one database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create separate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating separate databases. You can enable this using the following config: From 2cf8337e57894e8ee7c87820762d87a1d01e8a81 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 11:44:18 +0200 Subject: [PATCH 293/377] exit Signed-off-by: Patrik Oldsberg --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 0d89198dec..012728eb38 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "pre", + "mode": "exit", "tag": "next", "initialVersions": { "example-app": "0.2.73", From c2b932dfb9ee53e4eb66763473bc861e0c35f52b Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Thu, 11 Aug 2022 11:46:21 +0200 Subject: [PATCH 294/377] Update docs/tutorials/switching-sqlite-postgres.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Ben Lambert --- docs/tutorials/switching-sqlite-postgres.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/switching-sqlite-postgres.md b/docs/tutorials/switching-sqlite-postgres.md index 74fddb5eb3..c0c35999c6 100644 --- a/docs/tutorials/switching-sqlite-postgres.md +++ b/docs/tutorials/switching-sqlite-postgres.md @@ -89,7 +89,7 @@ backend: ### Using a single database -By default, each plugin will get it's own database ensure that there's no conflict in table names throughout the plugins that you install, and to keep these separate for other use cases further down the line. If you are limited in that you can only create one database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create separate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating separate databases. +By default, each plugin will get its own logical database, to ensure that there's no conflict in table names throughout the plugins that you install and to keep their concerns separate for other use cases further down the line. If you are limited in that you can only make use of a single database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create separate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating separate databases. You can enable this using the following config: From b50e8e533b7aca0c93b78a56b2788cf7209a4b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Frinnstr=C3=B6m?= Date: Thu, 11 Aug 2022 12:04:27 +0200 Subject: [PATCH 295/377] Add openApiPlaceholderResolver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Frinnström --- .changeset/strong-birds-pretend.md | 21 +++++ .../catalog-backend-module-openapi/README.md | 26 ++++++ .../api-report.md | 7 ++ .../package.json | 2 + .../src/OpenApiRefProcessor.test.ts | 2 +- .../src/OpenApiRefProcessor.ts | 19 +++-- .../src/index.ts | 1 + .../src/lib/bundle.test.ts | 36 ++------ .../src/lib/bundle.ts | 31 +++---- .../src/openApiPlaceholderResolver.test.ts | 63 ++++++++++++++ .../src/openApiPlaceholderResolver.ts | 85 +++++++++++++++++++ 11 files changed, 237 insertions(+), 56 deletions(-) create mode 100644 .changeset/strong-birds-pretend.md create mode 100644 plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.test.ts create mode 100644 plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.ts diff --git a/.changeset/strong-birds-pretend.md b/.changeset/strong-birds-pretend.md new file mode 100644 index 0000000000..9ad3bae97b --- /dev/null +++ b/.changeset/strong-birds-pretend.md @@ -0,0 +1,21 @@ +--- +'@backstage/plugin-catalog-backend-module-openapi': patch +--- + +Add an `$openapi` placeholder resolver that supports more use cases for resolving `$ref` instances. This means that the quite recently added `OpenApiRefProcessor` has been deprecated in favor of the `openApiPlaceholderResolver`. + +An example of how to use it can be seen below. + +```yaml +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: example + description: Example API +spec: + type: openapi + lifecycle: production + owner: team + definition: + $openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances +``` diff --git a/plugins/catalog-backend-module-openapi/README.md b/plugins/catalog-backend-module-openapi/README.md index 1a133521c6..f80798e267 100644 --- a/plugins/catalog-backend-module-openapi/README.md +++ b/plugins/catalog-backend-module-openapi/README.md @@ -15,6 +15,32 @@ yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-openapi ### Adding the plugin to your `packages/backend` +#### **openApiPlaceholderResolver** + +The placeholder resolver can be added by importing `openApiPlaceholderResolver` in `src/plugins/catalog.ts` in your `backend` package and adding the following. + +```ts +builder.setPlaceholderResolver('openapi', openApiPlaceholderResolver); +``` + +This allows you to use the `$openapi` placeholder when referencing your OpenAPI specification. This will then resolve all `$ref` instances in your specification. + +```yaml +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: example + description: Example API +spec: + type: openapi + lifecycle: production + owner: team + definition: + $openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances +``` + +#### **OpenAPIRefProcessor** (deprecated) + The processor can be added by importing `OpenApiRefProcessor` in `src/plugins/catalog.ts` in your `backend` package and adding the following. ```ts diff --git a/plugins/catalog-backend-module-openapi/api-report.md b/plugins/catalog-backend-module-openapi/api-report.md index 92ddd1e3cd..d3a40067c5 100644 --- a/plugins/catalog-backend-module-openapi/api-report.md +++ b/plugins/catalog-backend-module-openapi/api-report.md @@ -6,12 +6,19 @@ import { CatalogProcessor } from '@backstage/plugin-catalog-backend'; import { Config } from '@backstage/config'; import { Entity } from '@backstage/catalog-model'; +import { JsonValue } from '@backstage/types'; import { LocationSpec } from '@backstage/plugin-catalog-backend'; import { Logger } from 'winston'; +import { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend'; import { ScmIntegrations } from '@backstage/integration'; import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) +export function openApiPlaceholderResolver( + params: PlaceholderResolverParams, +): Promise; + +// @public @deprecated (undocumented) export class OpenApiRefProcessor implements CatalogProcessor { constructor(options: { integrations: ScmIntegrations; diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index d2d4d4989c..81f8875247 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -39,6 +39,8 @@ "@backstage/config": "^1.0.1", "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/plugin-catalog-node": "^1.0.1-next.0", + "@backstage/types": "^1.0.0", "winston": "^3.2.1", "yaml": "^2.1.1" }, diff --git a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.test.ts b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.test.ts index 8f2cc571c2..21080202b5 100644 --- a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.test.ts +++ b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.test.ts @@ -86,7 +86,7 @@ describe('OpenApiRefProcessor', () => { it('should ignore other specification types', async () => { const { entity, processor } = setupTest({ - kind: 'Group', + kind: 'API', spec: { type: 'asyncapi' }, }); diff --git a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts index 01875e0779..f4cffdf48f 100644 --- a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts +++ b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts @@ -24,7 +24,10 @@ import { import { bundleOpenApiSpecification } from './lib'; import { Logger } from 'winston'; -/** @public */ +/** + * @public + * @deprecated replaced by the openApiPlaceholderResolver + */ export class OpenApiRefProcessor implements CatalogProcessor { private readonly integrations: ScmIntegrations; private readonly logger: Logger; @@ -69,17 +72,23 @@ export class OpenApiRefProcessor implements CatalogProcessor { } const scmIntegration = this.integrations.byUrl(location.target); - if (!scmIntegration) { + const definition = entity.spec!.definition; + + if (!scmIntegration || !definition) { return entity; } + const resolveUrl = (url: string, base: string): string => { + return scmIntegration.resolveUrl({ url, base }); + }; + this.logger.debug(`Bundling OpenAPI specification from ${location.target}`); try { const bundledSpec = await bundleOpenApiSpecification( - entity.spec!.definition?.toString(), + definition.toString(), location.target, - this.reader, - scmIntegration, + this.reader.read, + resolveUrl, ); return { diff --git a/plugins/catalog-backend-module-openapi/src/index.ts b/plugins/catalog-backend-module-openapi/src/index.ts index f98bee6bac..ccd3ced71e 100644 --- a/plugins/catalog-backend-module-openapi/src/index.ts +++ b/plugins/catalog-backend-module-openapi/src/index.ts @@ -14,3 +14,4 @@ * limitations under the License. */ export { OpenApiRefProcessor } from './OpenApiRefProcessor'; +export { openApiPlaceholderResolver } from './openApiPlaceholderResolver'; diff --git a/plugins/catalog-backend-module-openapi/src/lib/bundle.test.ts b/plugins/catalog-backend-module-openapi/src/lib/bundle.test.ts index 4505f158b5..0ecd9f7fd1 100644 --- a/plugins/catalog-backend-module-openapi/src/lib/bundle.test.ts +++ b/plugins/catalog-backend-module-openapi/src/lib/bundle.test.ts @@ -13,8 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { ConfigReader } from '@backstage/config'; -import { ScmIntegrations } from '@backstage/integration'; import { bundleOpenApiSpecification } from './bundle'; const specification = ` @@ -73,43 +71,21 @@ paths: `; describe('bundleOpenApiSpecification', () => { - const readUrl = jest.fn(); - const reader = { - readUrl, - read: jest.fn(), - readTree: jest.fn(), - search: jest.fn(), - }; - - const scmIntegration = ScmIntegrations.fromConfig(new ConfigReader({})).byUrl( - 'https://github.com/owner/repo/blob/main/openapi.yaml', - ); + const read = jest.fn(); + const resolveUrl = jest.fn(); beforeEach(() => { jest.clearAllMocks(); }); - it('should return undefined if no specification is supplied', async () => { - expect( - await bundleOpenApiSpecification( - undefined, - 'https://github.com/owner/repo/blob/main/openapi.yaml', - reader, - scmIntegration as any, - ), - ).toBeUndefined(); - }); - it('should return the bundled specification', async () => { - readUrl.mockResolvedValue({ - buffer: jest.fn().mockResolvedValue(list), - }); + read.mockResolvedValue(list); const result = await bundleOpenApiSpecification( specification, - 'https://github.com/owner/repo/blob/main/openapi.yaml', - reader, - scmIntegration as any, + 'https://github.com/owner/repo/blob/main/catalog-info.yaml', + read, + resolveUrl, ); expect(result).toEqual(expectedResult.trimStart()); diff --git a/plugins/catalog-backend-module-openapi/src/lib/bundle.ts b/plugins/catalog-backend-module-openapi/src/lib/bundle.ts index 3d35429d8b..6ac8d211e2 100644 --- a/plugins/catalog-backend-module-openapi/src/lib/bundle.ts +++ b/plugins/catalog-backend-module-openapi/src/lib/bundle.ts @@ -13,8 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { UrlReader } from '@backstage/backend-common'; -import { ScmIntegration } from '@backstage/integration'; import SwaggerParser from '@apidevtools/swagger-parser'; import { parse, stringify } from 'yaml'; import * as path from 'path'; @@ -28,12 +26,16 @@ const getProtocol = (refPath: string) => { return undefined; }; +export type BundlerRead = (url: string) => Promise; + +export type BundlerResolveUrl = (url: string, base: string) => string; + export async function bundleOpenApiSpecification( - specification: string | undefined, - targetUrl: string, - reader: UrlReader, - scmIntegration: ScmIntegration, -): Promise { + specification: string, + baseUrl: string, + read: BundlerRead, + resolveUrl: BundlerResolveUrl, +): Promise { const fileUrlReaderResolver: SwaggerParser.ResolverOptions = { canRead: file => { const protocol = getProtocol(file.url); @@ -41,22 +43,11 @@ export async function bundleOpenApiSpecification( }, read: async file => { const relativePath = path.relative('.', file.url); - const url = scmIntegration.resolveUrl({ - base: targetUrl, - url: relativePath, - }); - if (reader.readUrl) { - const data = await reader.readUrl(url); - return data.buffer(); - } - throw new Error('UrlReader has no readUrl method defined'); + const url = resolveUrl(relativePath, baseUrl); + return await read(url); }, }; - if (!specification) { - return undefined; - } - const options: SwaggerParser.Options = { resolve: { file: fileUrlReaderResolver, diff --git a/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.test.ts b/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.test.ts new file mode 100644 index 0000000000..f58a818ba5 --- /dev/null +++ b/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.test.ts @@ -0,0 +1,63 @@ +/* + * 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 { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend'; +import { openApiPlaceholderResolver } from './openApiPlaceholderResolver'; +import { bundleOpenApiSpecification } from './lib'; + +jest.mock('./lib', () => ({ + bundleOpenApiSpecification: jest.fn(), +})); + +const bundledSpecification = ''; + +describe('openApiPlaceholderResolver', () => { + const mockResolveUrl = jest.fn(); + mockResolveUrl.mockReturnValue('mockUrl'); + + const mockRead = jest.fn(); + mockRead.mockResolvedValue(Buffer.from('mockData')); + + const params: PlaceholderResolverParams = { + key: 'openapi', + value: './spec/openapi.yaml', + baseUrl: 'https://github.com/owner/repo/blob/main/catalog-info.yaml', + resolveUrl: mockResolveUrl, + read: mockRead, + emit: jest.fn(), + }; + + beforeEach(() => { + (bundleOpenApiSpecification as any).mockResolvedValue(bundledSpecification); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + it('should throw error if unable to bundle the OpenAPI specification', async () => { + (bundleOpenApiSpecification as any).mockRejectedValue(new Error('TEST')); + + await expect(openApiPlaceholderResolver(params)).rejects.toThrow( + 'Placeholder $openapi unable to bundle OpenAPI specification', + ); + }); + + it('should bundle the OpenAPI specification', async () => { + const result = await openApiPlaceholderResolver(params); + + expect(result).toEqual(bundledSpecification); + }); +}); diff --git a/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.ts b/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.ts new file mode 100644 index 0000000000..96fadb3cbc --- /dev/null +++ b/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.ts @@ -0,0 +1,85 @@ +/* + * 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 { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend'; +import { JsonValue } from '@backstage/types'; +import { processingResult } from '@backstage/plugin-catalog-node'; +import { bundleOpenApiSpecification } from './lib'; + +/** @public */ +export async function openApiPlaceholderResolver( + params: PlaceholderResolverParams, +): Promise { + const { content, url } = await readTextLocation(params); + + params.emit(processingResult.refresh(`url:${url}`)); + + try { + return await bundleOpenApiSpecification( + content, + url, + params.read, + params.resolveUrl, + ); + } catch (error) { + throw new Error( + `Placeholder \$${params.key} unable to bundle OpenAPI specification at ${params.value}, ${error}`, + ); + } +} + +/* + * Helpers, copied from PlaceholderProcessor + */ + +async function readTextLocation( + params: PlaceholderResolverParams, +): Promise<{ content: string; url: string }> { + const newUrl = relativeUrl(params); + + try { + const data = await params.read(newUrl); + return { content: data.toString('utf-8'), url: newUrl }; + } catch (e) { + throw new Error( + `Placeholder \$${params.key} could not read location ${params.value}, ${e}`, + ); + } +} + +function relativeUrl({ + key, + value, + baseUrl, + resolveUrl, +}: PlaceholderResolverParams): string { + if (typeof value !== 'string') { + throw new Error( + `Placeholder \$${key} expected a string value parameter, in the form of an absolute URL or a relative path`, + ); + } + + try { + return resolveUrl(value, baseUrl); + } catch (e) { + // The only remaining case that isn't support is a relative file path that should be + // resolved using a relative file location. Accessing local file paths can lead to + // path traversal attacks and access to any file on the host system. Implementing this + // would require additional security measures. + throw new Error( + `Placeholder \$${key} could not form a URL out of ${baseUrl} and ${value}, ${e}`, + ); + } +} From fcb6b2d531fa2ebc7cd1d6f4f3a69b6c3af506fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 11:13:32 +0000 Subject: [PATCH 296/377] fix(deps): update dependency rollup to v2.77.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 43f1cc89fc..76410ec502 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23320,9 +23320,9 @@ rollup@^0.63.4: "@types/node" "*" rollup@^2.60.2: - version "2.77.2" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.77.2.tgz#6b6075c55f9cc2040a5912e6e062151e42e2c4e3" - integrity sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g== + version "2.77.3" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" + integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== optionalDependencies: fsevents "~2.3.2" From 3d5ab6cb3c71bd9f0b5def268f25ab004737f834 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 11 Aug 2022 13:19:02 +0200 Subject: [PATCH 297/377] test-utils: Publish alpha types Signed-off-by: Johan Haals --- packages/backend-test-utils/package.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index c3ba763bd2..004289d448 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -8,7 +8,8 @@ "publishConfig": { "access": "public", "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "types": "dist/index.d.ts", + "alphaTypes": "dist/index.alpha.d.ts" }, "backstage": { "role": "node-library" @@ -25,7 +26,7 @@ ], "license": "Apache-2.0", "scripts": { - "build": "backstage-cli package build", + "build": "backstage-cli package build --experimental-type-build", "lint": "backstage-cli package lint", "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", @@ -49,6 +50,7 @@ "@backstage/cli": "^0.18.1-next.0" }, "files": [ - "dist" + "dist", + "alpha" ] } From 2d7e22953a7c61f6523640f07917fe48bf382ee4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 11:26:49 +0000 Subject: [PATCH 298/377] chore(deps): update dependency @graphql-codegen/cli to v2.11.6 Signed-off-by: Renovate Bot --- yarn.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index f9fd40ff2d..c1b27dc74e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2815,11 +2815,11 @@ meros "^1.1.4" "@graphql-codegen/cli@^2.3.1": - version "2.11.5" - resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.5.tgz#6e781d9e77b8a9192456a8f50059e4281be12b73" - integrity sha512-0RntZ/F/d7M7KJU24nDwfKTuuhpwQ8nSs00RgKIqsk4xSX/U9HgOp29pWZfJjHCppb0EiXKBDvK4DtQIqe3n3w== + version "2.11.6" + resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.6.tgz#3acfd7cd3bac40999ba1262063d84ca7c96172dc" + integrity sha512-0R2Bhgjt3XZTSdsn8MGGuJjDEN2z+KCo7920zLZz9boy6bQ0EyuxS9AUATePS9aC3djy2POAIPCHz8iHK68IlQ== dependencies: - "@graphql-codegen/core" "2.6.1" + "@graphql-codegen/core" "2.6.2" "@graphql-codegen/plugin-helpers" "^2.6.2" "@graphql-tools/apollo-engine-loader" "^7.3.6" "@graphql-tools/code-file-loader" "^7.3.1" @@ -2851,13 +2851,13 @@ yaml "^1.10.0" yargs "^17.0.0" -"@graphql-codegen/core@2.6.1": - version "2.6.1" - resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.1.tgz#57599a2e97d3c5109d888781587eba65f3c6cabe" - integrity sha512-X6IIQCIvEm+g6xcd/5ml/Tmz8U6pd4q9s1mM4WcstBQ26v+gzzlj6lc7+6ALhrNm25gHKQ4PiVoG2W0pw503Dw== +"@graphql-codegen/core@2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.2.tgz#29c766d2e9e5a3deeeb4f1728c1f7b1aca054a22" + integrity sha512-58T5yf9nEfAhDwN1Vz1hImqpdJ/gGpCGUaroQ5tqskZPf7eZYYVkEXbtqRZZLx1MCCKwjWX4hMtTPpHhwKCkng== dependencies: "@graphql-codegen/plugin-helpers" "^2.6.2" - "@graphql-tools/schema" "^8.5.0" + "@graphql-tools/schema" "^9.0.0" "@graphql-tools/utils" "^8.8.0" tslib "~2.4.0" @@ -3228,7 +3228,7 @@ tslib "~2.3.0" value-or-promise "1.0.11" -"@graphql-tools/schema@8.5.0", "@graphql-tools/schema@^8.5.0": +"@graphql-tools/schema@8.5.0": version "8.5.0" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.0.tgz#0332b3a2e674d16e9bf8a58dfd47432449ce2368" integrity sha512-VeFtKjM3SA9/hCJJfr95aEdC3G0xIKM9z0Qdz4i+eC1g2fdZYnfWFt2ucW4IME+2TDd0enHlKzaV0qk2SLVUww== From e58262b025d7e8387b44cc13ceda48697373e54a Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 11 Aug 2022 12:38:08 +0100 Subject: [PATCH 299/377] Include stack trace on startup errors in create app Updated the backend index.ts in create-app to log the error as an object, rather than a string. This causes the error to include a stack trace, along with the error message, as well as bringing it in line with the main app in the bakstage repo. Signed-off-by: Alex Crome --- .../templates/default-app/packages/backend/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts b/packages/create-app/templates/default-app/packages/backend/src/index.ts index 70bc66bcdd..ef05fa50ee 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts @@ -104,6 +104,6 @@ async function main() { module.hot?.accept(); main().catch(error => { - console.error(`Backend failed to start up, ${error}`); + console.error('Backend failed to start up', error); process.exit(1); }); From ab9edd8b58ac1e8d8f8b4830112c2201634c01f0 Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 11 Aug 2022 12:56:27 +0100 Subject: [PATCH 300/377] Added changeset Signed-off-by: Alex Crome --- .changeset/twenty-terms-dress.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/twenty-terms-dress.md diff --git a/.changeset/twenty-terms-dress.md b/.changeset/twenty-terms-dress.md new file mode 100644 index 0000000000..9262315326 --- /dev/null +++ b/.changeset/twenty-terms-dress.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Updated backend to include stack trace in stderr when the backend fails to start up. From dcf81f1a6e6eecd96430ae3ca5ddfae5913ff5c9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 12:04:53 +0000 Subject: [PATCH 301/377] fix(deps): update dependency @graphql-tools/schema to v9.0.1 Signed-off-by: Renovate Bot --- yarn.lock | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/yarn.lock b/yarn.lock index a3c5aacf8b..8c8279aff0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3159,12 +3159,12 @@ "@graphql-tools/utils" "8.9.0" tslib "^2.4.0" -"@graphql-tools/merge@8.3.2": - version "8.3.2" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.2.tgz#a058e0307b9a145c6965420fd67ee1405cf033e8" - integrity sha512-r8TFlDFA9N4hbkKbHCUK5pkiSnVUsB5AtcyhoY1d3b9zNa9CAYgxZMkKZgDJAf9ZTIqki9t0eOW/jn1H4MCFsg== +"@graphql-tools/merge@8.3.3": + version "8.3.3" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.3.tgz#74dd4816c3fc7af38730fc59d1cba6e687d7fb2d" + integrity sha512-EfULshN2s2s2mhBwbV9WpGnoehRLe7eIMdZrKfHhxlBWOvtNUd3KSCN0PUdAMd7lj1jXUW9KYdn624JrVn6qzg== dependencies: - "@graphql-tools/utils" "8.9.1" + "@graphql-tools/utils" "8.10.0" tslib "^2.4.0" "@graphql-tools/mock@^8.1.2": @@ -3249,12 +3249,12 @@ value-or-promise "1.0.11" "@graphql-tools/schema@^9.0.0": - version "9.0.0" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.0.tgz#a689ae23474bf662b3571a180f0e0d11c7b8f135" - integrity sha512-H1rlt0tptzYE1jnKGjfmMvvMCwsDTUgCy3Eam9agsPP4ZtHAcwijDx3BKKJaV1fDRV5ztz2aJ5Q7+4s/SMOYvQ== + version "9.0.1" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.1.tgz#ba8629107c1f0b9ffad14c08c2a85961967682fd" + integrity sha512-Y6apeiBmvXEz082IAuS/ainnEEQrzMECP1MRIV72eo2WPa6ZtLYPycvIbd56Z5uU2LKP4XcWRgK6WUbCyN16Rw== dependencies: - "@graphql-tools/merge" "8.3.2" - "@graphql-tools/utils" "8.9.1" + "@graphql-tools/merge" "8.3.3" + "@graphql-tools/utils" "8.10.0" tslib "^2.4.0" value-or-promise "1.0.11" @@ -3300,6 +3300,13 @@ value-or-promise "^1.0.11" ws "^8.3.0" +"@graphql-tools/utils@8.10.0": + version "8.10.0" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.10.0.tgz#8e76db7487e19b60cf99fb90c2d6343b2105b331" + integrity sha512-yI+V373FdXQbYfqdarehn9vRWDZZYuvyQ/xwiv5ez2BbobHrqsexF7qs56plLRaQ8ESYpVAjMQvJWe9s23O0Jg== + dependencies: + tslib "^2.4.0" + "@graphql-tools/utils@8.6.9": version "8.6.9" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.9.tgz#fe1b81df29c9418b41b7a1ffe731710b93d3a1fe" @@ -3321,13 +3328,6 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/utils@8.9.1": - version "8.9.1" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.1.tgz#11d6c8a292ac5f224dfda655b87adfece3a257c6" - integrity sha512-LHR7U4okICeUap+WV/T1FnLOmTr3KYuphgkXYendaBVO/DXKyc+TeOFBiN1LcEjPqCB8hO+0B0iTIO0cGqhNTA== - dependencies: - tslib "^2.4.0" - "@graphql-tools/wrap@8.5.0": version "8.5.0" resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.5.0.tgz#ce1b0d775e1fc3a17404df566f4d2196d31c6e20" From 62355489347052d473ff75fd618bc0597d3909fd Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 11 Aug 2022 13:06:19 +0100 Subject: [PATCH 302/377] Make Vale happy Signed-off-by: Alex Crome --- .changeset/twenty-terms-dress.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/twenty-terms-dress.md b/.changeset/twenty-terms-dress.md index 9262315326..e8ab7437ab 100644 --- a/.changeset/twenty-terms-dress.md +++ b/.changeset/twenty-terms-dress.md @@ -2,4 +2,4 @@ '@backstage/create-app': patch --- -Updated backend to include stack trace in stderr when the backend fails to start up. +Updated backend to write stack trace when the backend fails to start up. From 07efab5b291841b7e8eabf68994c575a1a807fac Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Thu, 11 Aug 2022 07:24:42 -0500 Subject: [PATCH 303/377] Corrected typo Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/dull-fans-hug.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/dull-fans-hug.md b/.changeset/dull-fans-hug.md index 6328e3d9f2..562ef62bc0 100644 --- a/.changeset/dull-fans-hug.md +++ b/.changeset/dull-fans-hug.md @@ -2,4 +2,4 @@ '@backstage/plugin-techdocs': patch --- -Added back reduction in size, this fixes the extermly large TeachDocs headings +Added back reduction in size, this fixes the extremely large TeachDocs headings From 72c228fdb8edc3258232f2f45bdba515b99c0098 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 15:38:37 +0200 Subject: [PATCH 304/377] cli: fix node env not being set for backend dev Signed-off-by: Patrik Oldsberg --- .changeset/funny-oranges-switch.md | 5 +++++ packages/cli/src/lib/bundler/backend.ts | 4 ++++ 2 files changed, 9 insertions(+) create mode 100644 .changeset/funny-oranges-switch.md diff --git a/.changeset/funny-oranges-switch.md b/.changeset/funny-oranges-switch.md new file mode 100644 index 0000000000..23c3104441 --- /dev/null +++ b/.changeset/funny-oranges-switch.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed a bug where `NODE_ENV` was not set in the environment when starting the backend in development mode. It has always been the case that Webpack transformed `NODE_ENV` when running in development mode, but this did not affect dependencies in `node_modules` as they are treated as external. diff --git a/packages/cli/src/lib/bundler/backend.ts b/packages/cli/src/lib/bundler/backend.ts index 1b161976e3..3094450d4b 100644 --- a/packages/cli/src/lib/bundler/backend.ts +++ b/packages/cli/src/lib/bundler/backend.ts @@ -26,6 +26,10 @@ export async function serveBackend(options: BackendServeOptions) { isDev: true, }); + // Webpack only replaces occurrences of this in code it touches, which does + // not include dependencies in node_modules. So we set it here at runtime as well. + (process.env as { NODE_ENV: string }).NODE_ENV = 'development'; + const compiler = webpack(config, (err: Error | undefined) => { if (err) { console.error(err); From 56e1b4b89cd9dc314890daeebc7e97e5d7bc7e4b Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 11 Aug 2022 16:19:58 +0200 Subject: [PATCH 305/377] Add test helpers for new backend system MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: blam Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .changeset/selfish-items-play.md | 7 ++ .changeset/seven-nails-cough.md | 5 ++ packages/backend-test-utils/package.json | 2 + packages/backend-test-utils/src/index.ts | 1 + packages/backend-test-utils/src/next/index.ts | 17 +++++ .../src/next/wiring/TestBackend.test.ts | 76 +++++++++++++++++++ .../src/next/wiring/TestBackend.ts | 66 ++++++++++++++++ .../src/next/wiring/index.ts | 18 +++++ .../src/service/CatalogPlugin.ts | 4 +- plugins/catalog-node/src/extensions.ts | 2 +- plugins/catalog-node/src/index.ts | 2 +- .../extension/ScaffolderCatalogModule.test.ts | 24 ++---- .../src/extension/ScaffolderCatalogModule.ts | 10 +-- 13 files changed, 208 insertions(+), 26 deletions(-) create mode 100644 .changeset/selfish-items-play.md create mode 100644 .changeset/seven-nails-cough.md create mode 100644 packages/backend-test-utils/src/next/index.ts create mode 100644 packages/backend-test-utils/src/next/wiring/TestBackend.test.ts create mode 100644 packages/backend-test-utils/src/next/wiring/TestBackend.ts create mode 100644 packages/backend-test-utils/src/next/wiring/index.ts diff --git a/.changeset/selfish-items-play.md b/.changeset/selfish-items-play.md new file mode 100644 index 0000000000..6df9bd0de1 --- /dev/null +++ b/.changeset/selfish-items-play.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-catalog-node': patch +'@backstage/plugin-scaffolder-backend': patch +--- + +Fixed typos in alpha types. diff --git a/.changeset/seven-nails-cough.md b/.changeset/seven-nails-cough.md new file mode 100644 index 0000000000..eefef0b376 --- /dev/null +++ b/.changeset/seven-nails-cough.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-test-utils': patch +--- + +Added alpha test helpers for the new experimental backen system. diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 004289d448..3b490b625d 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -36,6 +36,8 @@ }, "dependencies": { "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-app-api": "^0.1.1-next.0", + "@backstage/backend-plugin-api": "^0.1.1-next.0", "@backstage/cli": "^0.18.1-next.0", "@backstage/config": "^1.0.1", "better-sqlite3": "^7.5.0", diff --git a/packages/backend-test-utils/src/index.ts b/packages/backend-test-utils/src/index.ts index 5fef4e6b55..ae937d2fc8 100644 --- a/packages/backend-test-utils/src/index.ts +++ b/packages/backend-test-utils/src/index.ts @@ -22,4 +22,5 @@ export * from './database'; export * from './msw'; +export * from './next'; export * from './util'; diff --git a/packages/backend-test-utils/src/next/index.ts b/packages/backend-test-utils/src/next/index.ts new file mode 100644 index 0000000000..9bb5431772 --- /dev/null +++ b/packages/backend-test-utils/src/next/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 './wiring'; diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts new file mode 100644 index 0000000000..279667560f --- /dev/null +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts @@ -0,0 +1,76 @@ +/* + * 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 { + createBackendModule, + createServiceFactory, + createServiceRef, +} from '@backstage/backend-plugin-api'; +import { createTestBackend, startTestBackend } from './TestBackend'; + +describe('TestBackend', () => { + it('should get a type error if service implementation does not match', () => { + const serviceRef = createServiceRef<{ a: string; b: string }>({ id: 'a' }); + const backend = createTestBackend({ + services: [ + [serviceRef, { a: 'a' }], + [serviceRef, { a: 'a', b: 'b' }], + // @ts-expect-error + [serviceRef, { c: 'c' }], + // @ts-expect-error + [serviceRef, { a: 'a', c: 'c' }], + // @ts-expect-error + [serviceRef, { a: 'a', b: 'b', c: 'c' }], + ], + }); + expect(backend).toBeDefined(); + }); + + it('should start the test backend', async () => { + const testRef = createServiceRef<(v: string) => void>({ id: 'test' }); + const testFn = jest.fn(); + + const sf = createServiceFactory({ + deps: {}, + service: testRef, + factory: async () => { + return async () => testFn; + }, + }); + + const testModule = createBackendModule({ + moduleId: 'test.module', + pluginId: 'test', + register(env) { + env.registerInit({ + deps: { + test: testRef, + }, + async init({ test }) { + test('winning'); + }, + }); + }, + }); + + await startTestBackend({ + services: [sf], + registrables: [testModule({})], + }); + + expect(testFn).toBeCalledWith('winning'); + }); +}); diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts new file mode 100644 index 0000000000..49acb07ab4 --- /dev/null +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -0,0 +1,66 @@ +/* + * 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 { Backend, createSpecializedBackend } from '@backstage/backend-app-api'; +import { + AnyServiceFactory, + ServiceRef, + createServiceFactory, + BackendRegistrable, +} from '@backstage/backend-plugin-api'; + +/** @alpha */ +export interface TestBackendOptions { + services: readonly [ + ...{ + [index in keyof TServices]: + | AnyServiceFactory + | [ServiceRef, Partial]; + }, + ]; +} + +/** @alpha */ +export function createTestBackend( + options: TestBackendOptions, +): Backend { + const factories = + options.services?.map(serviceDef => { + if (Array.isArray(serviceDef)) { + return createServiceFactory({ + service: serviceDef[0], + deps: {}, + factory: async () => async () => serviceDef[1], + }); + } + return serviceDef as AnyServiceFactory; + }) ?? []; + return createSpecializedBackend({ services: factories }); +} + +/** @alpha */ +export async function startTestBackend( + options: TestBackendOptions & { + registrables?: BackendRegistrable[]; + }, +): Promise { + const { registrables = [], ...otherOptions } = options; + const backend = createTestBackend(otherOptions); + for (const reg of registrables) { + backend.add(reg); + } + return backend.start(); +} diff --git a/packages/backend-test-utils/src/next/wiring/index.ts b/packages/backend-test-utils/src/next/wiring/index.ts new file mode 100644 index 0000000000..18a35c2b66 --- /dev/null +++ b/packages/backend-test-utils/src/next/wiring/index.ts @@ -0,0 +1,18 @@ +/* + * 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 { createTestBackend, startTestBackend } from './TestBackend'; +export type { TestBackendOptions } from './TestBackend'; diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index b82797ec8b..ed356df5a2 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -27,7 +27,7 @@ import { CatalogBuilder } from './CatalogBuilder'; import { CatalogProcessor, CatalogProcessingExtensionPoint, - catalogProcessingExtentionPoint, + catalogProcessingExtensionPoint, EntityProvider, } from '@backstage/plugin-catalog-node'; @@ -62,7 +62,7 @@ export const catalogPlugin = createBackendPlugin({ const processingExtensions = new CatalogExtensionPointImpl(); // plugins depending on this API will be initialized before this plugins init method is executed. env.registerExtensionPoint( - catalogProcessingExtentionPoint, + catalogProcessingExtensionPoint, processingExtensions, ); diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 560d9d4db1..9f76946d30 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -28,7 +28,7 @@ export interface CatalogProcessingExtensionPoint { /** * @alpha */ -export const catalogProcessingExtentionPoint = +export const catalogProcessingExtensionPoint = createServiceRef({ id: 'catalog.processing', }); diff --git a/plugins/catalog-node/src/index.ts b/plugins/catalog-node/src/index.ts index fc7a1b1b67..02ae325a9a 100644 --- a/plugins/catalog-node/src/index.ts +++ b/plugins/catalog-node/src/index.ts @@ -21,6 +21,6 @@ */ export type { CatalogProcessingExtensionPoint } from './extensions'; -export { catalogProcessingExtentionPoint } from './extensions'; +export { catalogProcessingExtensionPoint } from './extensions'; export * from './api'; export * from './processing'; diff --git a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts index f07eb0f7ae..a969d80a1b 100644 --- a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts +++ b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts @@ -14,27 +14,19 @@ * limitations under the License. */ -import { BackendInitRegistry } from '@backstage/backend-plugin-api'; +import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node'; import { ScaffolderEntitiesProcessor } from '../processor'; import { scaffolderCatalogModule } from './ScaffolderCatalogModule'; +import { startTestBackend } from '@backstage/backend-test-utils'; describe('ScaffolderCatalogModule', () => { - it('should register the extension point', () => { - // TODO(jhaals): clean this up and add test helpers for backend system. - const ext = scaffolderCatalogModule({}); - expect(ext.id).toBe('catalog.scaffolder.module'); - const registry: jest.Mocked = { - registerInit: jest.fn(), - } as any; - ext.register(registry); - - const extensionPoint = { - addProcessor: jest.fn(), - }; - - registry.registerInit.mock.calls[0][0].init({ - catalogProcessingExtensionPoint: extensionPoint, + it('should register the extension point', async () => { + const extensionPoint = { addProcessor: jest.fn() }; + await startTestBackend({ + services: [[catalogProcessingExtensionPoint, extensionPoint]], + registrables: [scaffolderCatalogModule({})], }); + expect(extensionPoint.addProcessor).toHaveBeenCalledWith( new ScaffolderEntitiesProcessor(), ); diff --git a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.ts b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.ts index bdce46a31a..0fb3c2e428 100644 --- a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.ts +++ b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.ts @@ -14,7 +14,7 @@ * limitations under the License. */ import { createBackendModule } from '@backstage/backend-plugin-api'; -import { catalogProcessingExtentionPoint } from '@backstage/plugin-catalog-node'; +import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node'; import { ScaffolderEntitiesProcessor } from '../processor'; /** @@ -27,12 +27,10 @@ export const scaffolderCatalogModule = createBackendModule({ register(env) { env.registerInit({ deps: { - catalogProcessingExtensionPoint: catalogProcessingExtentionPoint, + catalog: catalogProcessingExtensionPoint, }, - async init({ catalogProcessingExtensionPoint }) { - catalogProcessingExtensionPoint.addProcessor( - new ScaffolderEntitiesProcessor(), - ); + async init({ catalog }) { + catalog.addProcessor(new ScaffolderEntitiesProcessor()); }, }); }, From 60833f16d746d3e487d11c410adff4a92dc1fc9d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 11 Aug 2022 16:23:10 +0200 Subject: [PATCH 306/377] fix typo Co-authored-by: Patrik Oldsberg Signed-off-by: Johan Haals --- .changeset/seven-nails-cough.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/seven-nails-cough.md b/.changeset/seven-nails-cough.md index eefef0b376..1464e29235 100644 --- a/.changeset/seven-nails-cough.md +++ b/.changeset/seven-nails-cough.md @@ -2,4 +2,4 @@ '@backstage/backend-test-utils': patch --- -Added alpha test helpers for the new experimental backen system. +Added alpha test helpers for the new experimental backend system. From 7d80daf594a9e2666d63fce928337be15efdaec9 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 11 Aug 2022 16:24:24 +0200 Subject: [PATCH 307/377] update api reports Signed-off-by: Johan Haals --- packages/backend-test-utils/api-report.md | 28 +++++++++++++++++++++++ plugins/catalog-node/api-report.md | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/backend-test-utils/api-report.md b/packages/backend-test-utils/api-report.md index cba8953432..9c75402b43 100644 --- a/packages/backend-test-utils/api-report.md +++ b/packages/backend-test-utils/api-report.md @@ -3,7 +3,16 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; +import { Backend } from '@backstage/backend-app-api'; +import { BackendRegistrable } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; +import { ServiceRef } from '@backstage/backend-plugin-api'; + +// @alpha (undocumented) +export function createTestBackend( + options: TestBackendOptions, +): Backend; // @public (undocumented) export function isDockerDisabledForTests(): boolean; @@ -15,6 +24,25 @@ export function setupRequestMockHandlers(worker: { resetHandlers: () => void; }): void; +// @alpha (undocumented) +export function startTestBackend( + options: TestBackendOptions & { + registrables?: BackendRegistrable[]; + }, +): Promise; + +// @alpha (undocumented) +export interface TestBackendOptions { + // (undocumented) + services: readonly [ + ...{ + [index in keyof TServices]: + | AnyServiceFactory + | [ServiceRef, Partial]; + }, + ]; +} + // @public export type TestDatabaseId = | 'POSTGRES_13' diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md index 0449708bc3..47a9bdf45c 100644 --- a/plugins/catalog-node/api-report.md +++ b/plugins/catalog-node/api-report.md @@ -19,7 +19,7 @@ export interface CatalogProcessingExtensionPoint { } // @alpha (undocumented) -export const catalogProcessingExtentionPoint: ServiceRef; +export const catalogProcessingExtensionPoint: ServiceRef; // @public (undocumented) export type CatalogProcessor = { From 57e550fae1a2402208350d06d0acb9b9f0884a51 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 15:13:13 +0000 Subject: [PATCH 308/377] fix(deps): update dependency @octokit/webhooks to v10.1.3 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 96f098eeed..9bd862beb8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5837,19 +5837,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" integrity sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA== -"@octokit/webhooks-types@6.3.2": - version "6.3.2" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.2.tgz#752497434e735874ba985ea0d53d63e2568e838d" - integrity sha512-6DSvdzg7AIVgLjIjqf5BDrloMs7zUfpF0EJhLiOjXtuLr38W5pWSC7aHr7V59LCEDueJRfKZ6c9ZyuLLqVgx8g== +"@octokit/webhooks-types@6.3.4": + version "6.3.4" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.4.tgz#b553da7479edfb04218160c85f16dbbc68251533" + integrity sha512-9E0HNgHqc5v22+9IzCSEZ9iXnBJ/n+GM9gZye0kp7XmzcOfrnAKZzd4km269n6/vVOkmXwT11DbbQFukWOvbdw== "@octokit/webhooks@^10.0.0": - version "10.1.2" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.2.tgz#78396b6d32c60789f6031d2551a2cd598c157627" - integrity sha512-jxISKMLiYebQ/EByLXDEWQMcHASKUVl1T0EuCnpHTYjELsDXg7BEw0FCInlc8RpWmmPp4sMsh3Dd86spXAIp1A== + version "10.1.3" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.3.tgz#415bb4f826167b15da4dede81c14cb7a8978ac9a" + integrity sha512-c5uQW0HJbI5mcQpUFcM7LVs1gbdEiHD6OLXZcwxLJeNUmI8Cy9uzfCib6HguARKgnz3tSavYX/teHq7brm05iQ== dependencies: "@octokit/request-error" "^3.0.0" "@octokit/webhooks-methods" "^3.0.0" - "@octokit/webhooks-types" "6.3.2" + "@octokit/webhooks-types" "6.3.4" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3": From 0e2be112e472e42dd2a5468496a05ac383577426 Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 11 Aug 2022 16:28:01 +0100 Subject: [PATCH 309/377] Added diff to change set Signed-off-by: Alex Crome --- .changeset/twenty-terms-dress.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.changeset/twenty-terms-dress.md b/.changeset/twenty-terms-dress.md index e8ab7437ab..99acaf612a 100644 --- a/.changeset/twenty-terms-dress.md +++ b/.changeset/twenty-terms-dress.md @@ -3,3 +3,12 @@ --- Updated backend to write stack trace when the backend fails to start up. + +To apply this change to your Backstage installation, make the following change to `packages/backend/src/index.ts` + +```diff + cors: + origin: http://localhost:3000 +- console.error(`Backend failed to start up, ${error}`); ++ console.error('Backend failed to start up', error); +``` From 90b66621fbef0d37f6c804480cea8846f08424ea Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 17:49:46 +0200 Subject: [PATCH 310/377] backend-plugin-api: move wiring factories to separate file and add tests Signed-off-by: Patrik Oldsberg --- .../src/wiring/factories.test.ts | 64 +++++++++++++++ .../src/wiring/factories.ts | 80 +++++++++++++++++++ .../backend-plugin-api/src/wiring/index.ts | 13 ++- .../backend-plugin-api/src/wiring/types.ts | 59 -------------- 4 files changed, 155 insertions(+), 61 deletions(-) create mode 100644 packages/backend-plugin-api/src/wiring/factories.test.ts create mode 100644 packages/backend-plugin-api/src/wiring/factories.ts diff --git a/packages/backend-plugin-api/src/wiring/factories.test.ts b/packages/backend-plugin-api/src/wiring/factories.test.ts new file mode 100644 index 0000000000..d92ccc1bf6 --- /dev/null +++ b/packages/backend-plugin-api/src/wiring/factories.test.ts @@ -0,0 +1,64 @@ +/* + * 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 { + createBackendModule, + createBackendPlugin, + createExtensionPoint, +} from './factories'; + +describe('createExtensionPoint', () => { + it('should create an ExtensionPoint', () => { + const extensionPoint = createExtensionPoint({ id: 'x' }); + expect(extensionPoint).toBeDefined(); + expect(extensionPoint.id).toBe('x'); + expect(() => extensionPoint.T).toThrow(); + expect(String(extensionPoint)).toBe('extensionPoint{x}'); + }); +}); + +describe('createBackendPlugin', () => { + it('should create an BackendPlugin', () => { + const plugin = createBackendPlugin({ + id: 'x', + register(_reg, _options: { a: string }) {}, + }); + expect(plugin).toBeDefined(); + expect(plugin({ a: 'a' })).toBeDefined(); + expect(plugin({ a: 'a' }).id).toBe('x'); + // @ts-expect-error + expect(plugin()).toBeDefined(); + // @ts-expect-error + expect(plugin({ b: 'b' })).toBeDefined(); + }); +}); + +describe('createBackendModule', () => { + it('should create an BackendModule', () => { + const mod = createBackendModule({ + pluginId: 'x', + moduleId: 'y', + register(_reg, _options: { a: string }) {}, + }); + expect(mod).toBeDefined(); + expect(mod({ a: 'a' })).toBeDefined(); + expect(mod({ a: 'a' }).id).toBe('x.y'); + // @ts-expect-error + expect(mod()).toBeDefined(); + // @ts-expect-error + expect(mod({ b: 'b' })).toBeDefined(); + }); +}); diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts new file mode 100644 index 0000000000..9b971311d0 --- /dev/null +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -0,0 +1,80 @@ +/* + * 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 { + BackendInitRegistry, + BackendRegistrable, + ExtensionPoint, +} from './types'; + +/** @public */ +export function createExtensionPoint(options: { + id: string; +}): ExtensionPoint { + return { + id: options.id, + get T(): T { + throw new Error(`tried to read ExtensionPoint.T of ${this}`); + }, + toString() { + return `extensionPoint{${options.id}}`; + }, + $$ref: 'extension-point', // TODO: declare + }; +} + +/** @public */ +export interface BackendPluginConfig { + id: string; + register(reg: BackendInitRegistry, options: TOptions): void; +} + +// TODO: Make option optional in the returned factory if they are indeed optional +/** @public */ +export function createBackendPlugin( + config: BackendPluginConfig, +): (option: TOptions) => BackendRegistrable { + return options => ({ + id: config.id, + register(register) { + return config.register(register, options); + }, + }); +} + +/** @public */ +export interface BackendModuleConfig { + pluginId: string; + moduleId: string; + register( + reg: Omit, + options: TOptions, + ): void; +} + +// TODO: Make option optional in the returned factory if they are indeed optional +/** @public */ +export function createBackendModule( + config: BackendModuleConfig, +): (option: TOptions) => BackendRegistrable { + return options => ({ + id: `${config.pluginId}.${config.moduleId}`, + register(register) { + // TODO: Hide registerExtensionPoint + return config.register(register, options); + }, + }); +} diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 9340dc8fa9..342a922dbd 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -14,5 +14,14 @@ * limitations under the License. */ -export type { BackendRegistrable } from './types'; -export * from './types'; +export type { BackendModuleConfig, BackendPluginConfig } from './factories'; +export { + createBackendModule, + createBackendPlugin, + createExtensionPoint, +} from './factories'; +export type { + BackendInitRegistry, + BackendRegistrable, + ExtensionPoint, +} from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 2b0bef16f7..65525fd8aa 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -35,22 +35,6 @@ export type ExtensionPoint = { $$ref: 'extension-point'; }; -/** @public */ -export function createExtensionPoint(options: { - id: string; -}): ExtensionPoint { - return { - id: options.id, - get T(): T { - throw new Error(`tried to read ExtensionPoint.T of ${this}`); - }, - toString() { - return `extensionPoint{${options.id}}`; - }, - $$ref: 'extension-point', // TODO: declare - }; -} - /** @public */ export interface BackendInitRegistry { registerExtensionPoint( @@ -68,46 +52,3 @@ export interface BackendRegistrable { id: string; register(reg: BackendInitRegistry): void; } - -/** @public */ -export interface BackendPluginConfig { - id: string; - register(reg: BackendInitRegistry, options: TOptions): void; -} - -// TODO: Make option optional in the returned factory if they are indeed optional -/** @public */ -export function createBackendPlugin( - config: BackendPluginConfig, -): (option: TOptions) => BackendRegistrable { - return options => ({ - id: config.id, - register(register) { - return config.register(register, options); - }, - }); -} - -/** @public */ -export interface BackendModuleConfig { - pluginId: string; - moduleId: string; - register( - reg: Omit, - options: TOptions, - ): void; -} - -// TODO: Make option optional in the returned factory if they are indeed optional -/** @public */ -export function createBackendModule( - config: BackendModuleConfig, -): (option: TOptions) => BackendRegistrable { - return options => ({ - id: `${config.pluginId}.${config.moduleId}`, - register(register) { - // TODO: Hide registerExtensionPoint - return config.register(register, options); - }, - }); -} From f8e891d081592049a37381ec564767ecea55c1e3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 18:18:41 +0200 Subject: [PATCH 311/377] backend-plugin-api: handle optional options for plugins and modules Signed-off-by: Patrik Oldsberg --- .../src/wiring/factories.test.ts | 25 +++++++++++++++++++ .../src/wiring/factories.ts | 22 ++++++++-------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/packages/backend-plugin-api/src/wiring/factories.test.ts b/packages/backend-plugin-api/src/wiring/factories.test.ts index d92ccc1bf6..6cfcdd06cc 100644 --- a/packages/backend-plugin-api/src/wiring/factories.test.ts +++ b/packages/backend-plugin-api/src/wiring/factories.test.ts @@ -44,6 +44,18 @@ describe('createBackendPlugin', () => { // @ts-expect-error expect(plugin({ b: 'b' })).toBeDefined(); }); + + it('should create plugins with optional options', () => { + const plugin = createBackendPlugin({ + id: 'x', + register(_reg, _options?: { a: string }) {}, + }); + expect(plugin).toBeDefined(); + expect(plugin({ a: 'a' })).toBeDefined(); + expect(plugin()).toBeDefined(); + // @ts-expect-error + expect(plugin({ b: 'b' })).toBeDefined(); + }); }); describe('createBackendModule', () => { @@ -61,4 +73,17 @@ describe('createBackendModule', () => { // @ts-expect-error expect(mod({ b: 'b' })).toBeDefined(); }); + + it('should create modules with optional options', () => { + const mod = createBackendModule({ + pluginId: 'x', + moduleId: 'y', + register(_reg, _options?: { a: string }) {}, + }); + expect(mod).toBeDefined(); + expect(mod({ a: 'a' })).toBeDefined(); + expect(mod()).toBeDefined(); + // @ts-expect-error + expect(mod({ b: 'b' })).toBeDefined(); + }); }); diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index 9b971311d0..1c3a27bb1c 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -42,15 +42,16 @@ export interface BackendPluginConfig { register(reg: BackendInitRegistry, options: TOptions): void; } -// TODO: Make option optional in the returned factory if they are indeed optional /** @public */ export function createBackendPlugin( config: BackendPluginConfig, -): (option: TOptions) => BackendRegistrable { - return options => ({ +): undefined extends TOptions + ? (options?: TOptions) => BackendRegistrable + : (options: TOptions) => BackendRegistrable { + return (options?: TOptions) => ({ id: config.id, - register(register) { - return config.register(register, options); + register(register: BackendInitRegistry) { + return config.register(register, options!); }, }); } @@ -65,16 +66,17 @@ export interface BackendModuleConfig { ): void; } -// TODO: Make option optional in the returned factory if they are indeed optional /** @public */ export function createBackendModule( config: BackendModuleConfig, -): (option: TOptions) => BackendRegistrable { - return options => ({ +): undefined extends TOptions + ? (options?: TOptions) => BackendRegistrable + : (options: TOptions) => BackendRegistrable { + return (options?: TOptions) => ({ id: `${config.pluginId}.${config.moduleId}`, - register(register) { + register(register: BackendInitRegistry) { // TODO: Hide registerExtensionPoint - return config.register(register, options); + return config.register(register, options!); }, }); } From 34c2f5aca11326df67f82ffe073b1450a0ef2441 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 18:19:39 +0200 Subject: [PATCH 312/377] changesets: added changeset for optional options Signed-off-by: Patrik Oldsberg --- .changeset/giant-swans-change.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/giant-swans-change.md diff --git a/.changeset/giant-swans-change.md b/.changeset/giant-swans-change.md new file mode 100644 index 0000000000..bff90db2b1 --- /dev/null +++ b/.changeset/giant-swans-change.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +The factory returned by `createBackendPlugin` and `createBackendModule` no longer require a parameter to be passed if the options are optional. From 3dd5ab857c82042f62e998a1aec8528902ce18a0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 22:47:43 +0200 Subject: [PATCH 313/377] update API reports Signed-off-by: Patrik Oldsberg --- packages/backend-plugin-api/api-report.md | 8 ++++++-- plugins/catalog-backend/api-report.md | 2 +- plugins/scaffolder-backend/api-report.md | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index df8474d670..44791f5744 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -83,12 +83,16 @@ export const configServiceRef: ServiceRef; // @public (undocumented) export function createBackendModule( config: BackendModuleConfig, -): (option: TOptions) => BackendRegistrable; +): undefined extends TOptions + ? (options?: TOptions) => BackendRegistrable + : (options: TOptions) => BackendRegistrable; // @public (undocumented) export function createBackendPlugin( config: BackendPluginConfig, -): (option: TOptions) => BackendRegistrable; +): undefined extends TOptions + ? (options?: TOptions) => BackendRegistrable + : (options: TOptions) => BackendRegistrable; // @public (undocumented) export function createExtensionPoint(options: { diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index 22a7f8192c..fa6806933d 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -224,7 +224,7 @@ export type CatalogPermissionRule = PermissionRule; // @alpha -export const catalogPlugin: (option: unknown) => BackendRegistrable; +export const catalogPlugin: (options?: unknown) => BackendRegistrable; // @public (undocumented) export interface CatalogProcessingEngine { diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 7c24bdc572..6e7220964d 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -566,7 +566,7 @@ export type RunCommandOptions = { }; // @alpha -export const scaffolderCatalogModule: (option: unknown) => BackendRegistrable; +export const scaffolderCatalogModule: (options?: unknown) => BackendRegistrable; // @public (undocumented) export class ScaffolderEntitiesProcessor implements CatalogProcessor { From 7152961286a8595cd3b0ffbc366aeb0ca3bd5806 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 21:44:53 +0000 Subject: [PATCH 314/377] fix(deps): update dependency aws-sdk to v2.1193.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9bd862beb8..08386c58dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9106,9 +9106,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1192.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1192.0.tgz#13fe38ec8dae3232f17d52b370e69daa9c7a0e9c" - integrity sha512-6uzrlG1Ow3qcOnL0+et+DBTGhYgJzgNydVvos1Eg01vPc/ZhxR7roZ3epZQcPmOR0thQuzzckTq7FBO6wzZA2w== + version "2.1193.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1193.0.tgz#34d3ed3ea19a776dafd954183588169c6daa4764" + integrity sha512-nSbljBZhxNn+LmENc14md+y1Z+U8BUcS1LLlOxeJvjYAkkGbPf29Bl8FvzbRsZuoxtF6N1Mkel3AI5XIx7mkew== dependencies: buffer "4.9.2" events "1.1.1" From 333448fb12e59e7390c378c5ed47c739b475588c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 22:38:16 +0000 Subject: [PATCH 315/377] chore(deps): update dependency @types/semver to v7.3.12 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 08386c58dc..b2f61d3e33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7678,9 +7678,9 @@ integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== "@types/semver@^7.3.8": - version "7.3.11" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.11.tgz#7a84d3228f34e68d14955fc406f8e66fdbe9e65e" - integrity sha512-R9HhjC4aKx3jL0FLwU7x6qMTysTvLh7jesRslXmxgCOXZwyh5dsnmrPQQToMyess8D4U+8G9x9mBFZoC/1o/Tw== + version "7.3.12" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" + integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== "@types/serve-handler@^6.1.0": version "6.1.1" From 9a20067f441d142e5c04412742e494a573280ffd Mon Sep 17 00:00:00 2001 From: Robert Cen Date: Fri, 12 Aug 2022 10:01:16 +1000 Subject: [PATCH 316/377] Use FetchApi wrapper instead of manually passing through the token Signed-off-by: Robert Cen --- .changeset/weak-drinks-report.md | 2 +- plugins/code-climate/api-report.md | 2 +- .../code-climate/src/api/production-api.ts | 33 ++++++------------- plugins/code-climate/src/plugin.ts | 8 ++--- 4 files changed, 16 insertions(+), 29 deletions(-) diff --git a/.changeset/weak-drinks-report.md b/.changeset/weak-drinks-report.md index d9ab3880f7..1f8ee512ba 100644 --- a/.changeset/weak-drinks-report.md +++ b/.changeset/weak-drinks-report.md @@ -2,4 +2,4 @@ '@backstage/plugin-code-climate': patch --- -Send Authorization headers in fetch requests in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled as per https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/authenticate-api-requests.md. +Send Authorization headers in fetch requests using FetchApi in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled. diff --git a/plugins/code-climate/api-report.md b/plugins/code-climate/api-report.md index 13231361dc..5ef53cf543 100644 --- a/plugins/code-climate/api-report.md +++ b/plugins/code-climate/api-report.md @@ -8,7 +8,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; import { DiscoveryApi } from '@backstage/core-plugin-api'; -import { IdentityApi } from '@backstage/core-plugin-api'; +import { FetchApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; // Warning: (ae-missing-release-tag) "CodeClimateApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/code-climate/src/api/production-api.ts b/plugins/code-climate/src/api/production-api.ts index d37ec61458..81ba6b9ad6 100644 --- a/plugins/code-climate/src/api/production-api.ts +++ b/plugins/code-climate/src/api/production-api.ts @@ -22,7 +22,7 @@ import { CodeClimateIssuesData, } from './code-climate-data'; import { CodeClimateApi } from './code-climate-api'; -import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; +import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api'; import { Duration } from 'luxon'; import humanizeDuration from 'humanize-duration'; @@ -36,16 +36,16 @@ const otherIssuesQuery = `${basicIssuesOptions}&${categoriesFilter}=Bug%20Risk`; type Options = { discoveryApi: DiscoveryApi; - identityApi: IdentityApi; + fetchApi: FetchApi; }; export class ProductionCodeClimateApi implements CodeClimateApi { private readonly discoveryApi: DiscoveryApi; - private readonly identityApi: IdentityApi; + private readonly fetchApi: FetchApi; constructor(options: Options) { this.discoveryApi = options.discoveryApi; - this.identityApi = options.identityApi; + this.fetchApi = options.fetchApi; } async fetchAllData(options: { @@ -55,11 +55,6 @@ export class ProductionCodeClimateApi implements CodeClimateApi { testReportID: string; }): Promise { const { apiUrl, repoID, snapshotID, testReportID } = options; - - const { token } = await this.identityApi.getCredentials(); - const headersWithAuth = { - headers: { Authorization: `Bearer ${token}` }, - }; const [ maintainabilityResponse, testCoverageResponse, @@ -67,25 +62,20 @@ export class ProductionCodeClimateApi implements CodeClimateApi { duplicationResponse, otherIssuesResponse, ] = await Promise.all([ - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}`, - headersWithAuth, ), - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/test_reports/${testReportID}`, - headersWithAuth, ), - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${codeSmellsQuery}`, - headersWithAuth, ), - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${duplicationQuery}`, - headersWithAuth, ), - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${otherIssuesQuery}`, - headersWithAuth, ), ]); @@ -132,11 +122,8 @@ export class ProductionCodeClimateApi implements CodeClimateApi { const apiUrl = `${await this.discoveryApi.getBaseUrl( 'proxy', )}/codeclimate/api`; - const { token } = await this.identityApi.getCredentials(); - const repoResponse = await fetch(`${apiUrl}/repos/${repoID}`, { - headers: { Authorization: `Bearer ${token}` }, - }); + const repoResponse = await this.fetchApi.fetch(`${apiUrl}/repos/${repoID}`); if (!repoResponse.ok) { throw new Error('Failed fetching Code Climate info'); diff --git a/plugins/code-climate/src/plugin.ts b/plugins/code-climate/src/plugin.ts index d8f7ea5028..54502b6355 100644 --- a/plugins/code-climate/src/plugin.ts +++ b/plugins/code-climate/src/plugin.ts @@ -20,7 +20,7 @@ import { createPlugin, createRouteRef, discoveryApiRef, - identityApiRef, + fetchApiRef, createComponentExtension, } from '@backstage/core-plugin-api'; @@ -37,10 +37,10 @@ export const codeClimatePlugin = createPlugin({ api: codeClimateApiRef, deps: { discoveryApi: discoveryApiRef, - identityApi: identityApiRef, + fetchApi: fetchApiRef, }, - factory: ({ discoveryApi, identityApi }) => - new ProductionCodeClimateApi({ discoveryApi, identityApi }), + factory: ({ discoveryApi, fetchApi }) => + new ProductionCodeClimateApi({ discoveryApi, fetchApi }), }), ], routes: { From c676a9e07bd0150eb9cabc3da41f5de838811b31 Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Mon, 8 Aug 2022 18:13:44 -0300 Subject: [PATCH 317/377] fix(auth-plugin-backend): Allow it to skip migrations When auth plugin is using database provider it verify if needs to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- .changeset/fuzzy-months-study.md | 5 ++++ .../src/identity/DatabaseKeyStore.test.ts | 26 ++++++++++++---- .../src/identity/DatabaseKeyStore.ts | 30 +++++++++++-------- .../auth-backend/src/identity/KeyStores.ts | 4 +-- 4 files changed, 45 insertions(+), 20 deletions(-) create mode 100644 .changeset/fuzzy-months-study.md diff --git a/.changeset/fuzzy-months-study.md b/.changeset/fuzzy-months-study.md new file mode 100644 index 0000000000..024349f90b --- /dev/null +++ b/.changeset/fuzzy-months-study.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': patch +--- + +Fixed a bug in auth plugin on the backend where it ignores the skip migration database options when using the database provider. diff --git a/plugins/auth-backend/src/identity/DatabaseKeyStore.test.ts b/plugins/auth-backend/src/identity/DatabaseKeyStore.test.ts index fa7b251780..da67a2f88f 100644 --- a/plugins/auth-backend/src/identity/DatabaseKeyStore.test.ts +++ b/plugins/auth-backend/src/identity/DatabaseKeyStore.test.ts @@ -14,10 +14,22 @@ * limitations under the License. */ -import Knex from 'knex'; +import Knex, { Knex as KnexType } from 'knex'; import { DatabaseKeyStore } from './DatabaseKeyStore'; import { DateTime } from 'luxon'; +function createDatabaseManager( + client: KnexType, + skipMigrations: boolean = false, +) { + return { + getClient: async () => client, + migrations: { + skip: skipMigrations, + }, + }; +} + function createDB() { const knex = Knex({ client: 'better-sqlite3', @@ -38,8 +50,10 @@ const keyBase = { describe('DatabaseKeyStore', () => { it('should store a key', async () => { - const database = createDB(); - const store = await DatabaseKeyStore.create({ database }); + const client = createDB(); + const store = await DatabaseKeyStore.create({ + database: createDatabaseManager(client), + }); const key = { kid: '123', @@ -59,8 +73,10 @@ describe('DatabaseKeyStore', () => { }); it('should remove stored keys', async () => { - const database = createDB(); - const store = await DatabaseKeyStore.create({ database }); + const client = createDB(); + const store = await DatabaseKeyStore.create({ + database: createDatabaseManager(client), + }); const key1 = { kid: '1', ...keyBase }; const key2 = { kid: '2', ...keyBase }; diff --git a/plugins/auth-backend/src/identity/DatabaseKeyStore.ts b/plugins/auth-backend/src/identity/DatabaseKeyStore.ts index 6bae1f4412..8039837469 100644 --- a/plugins/auth-backend/src/identity/DatabaseKeyStore.ts +++ b/plugins/auth-backend/src/identity/DatabaseKeyStore.ts @@ -14,7 +14,10 @@ * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { + PluginDatabaseManager, + resolvePackagePath, +} from '@backstage/backend-common'; import { Knex } from 'knex'; import { DateTime } from 'luxon'; import { AnyJWK, KeyStore, StoredKey } from './types'; @@ -33,7 +36,7 @@ type Row = { }; type Options = { - database: Knex; + database: PluginDatabaseManager; }; const parseDate = (date: string | Date) => { @@ -54,29 +57,32 @@ const parseDate = (date: string | Date) => { export class DatabaseKeyStore implements KeyStore { static async create(options: Options): Promise { const { database } = options; + const client = await database.getClient(); - await database.migrate.latest({ - directory: migrationsDir, - }); + if (!database.migrations?.skip) { + await client.migrate.latest({ + directory: migrationsDir, + }); + } - return new DatabaseKeyStore(options); + return new DatabaseKeyStore(client); } - private readonly database: Knex; + private readonly client: Knex; - private constructor(options: Options) { - this.database = options.database; + private constructor(client: Knex) { + this.client = client; } async addKey(key: AnyJWK): Promise { - await this.database(TABLE).insert({ + await this.client(TABLE).insert({ kid: key.kid, key: JSON.stringify(key), }); } async listKeys(): Promise<{ items: StoredKey[] }> { - const rows = await this.database(TABLE).select(); + const rows = await this.client(TABLE).select(); return { items: rows.map(row => ({ @@ -87,6 +93,6 @@ export class DatabaseKeyStore implements KeyStore { } async removeKeys(kids: string[]): Promise { - await this.database(TABLE).delete().whereIn('kid', kids); + await this.client(TABLE).delete().whereIn('kid', kids); } } diff --git a/plugins/auth-backend/src/identity/KeyStores.ts b/plugins/auth-backend/src/identity/KeyStores.ts index 3d238adba9..e29b4b6fc4 100644 --- a/plugins/auth-backend/src/identity/KeyStores.ts +++ b/plugins/auth-backend/src/identity/KeyStores.ts @@ -53,9 +53,7 @@ export class KeyStores { throw new Error('This KeyStore provider requires a database'); } - return await DatabaseKeyStore.create({ - database: await database.getClient(), - }); + return await DatabaseKeyStore.create({ database }); } if (provider === 'memory') { From f027a34a28a7d3cc7dabfe63c27f4e27e3a0b6f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 10:18:45 +0000 Subject: [PATCH 318/377] chore(deps): update dependency @types/node to v16.11.48 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b2f61d3e33..99e9e46942 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7382,9 +7382,9 @@ integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== "@types/node@^16.0.0", "@types/node@^16.11.26", "@types/node@^16.9.2": - version "16.11.47" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.47.tgz#efa9e3e0f72e7aa6a138055dace7437a83d9f91c" - integrity sha512-fpP+jk2zJ4VW66+wAMFoBJlx1bxmBKx4DUFf68UHgdGCOuyUTDlLWqsaNPJh7xhNDykyJ9eIzAygilP/4WoN8g== + version "16.11.48" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.48.tgz#22d386f32b24fb644940b606ed393b56be7d8686" + integrity sha512-Z9r9UWlNeNkYnxybm+1fc0jxUNjZqRekTAr1pG0qdXe9apT9yCiqk1c4VvKQJsFpnchU4+fLl25MabSLA2wxIw== "@types/normalize-package-data@^2.4.0": version "2.4.1" From b4d3f115fa762aab3b23b9a9989bee72119ccd01 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 13:25:09 +0200 Subject: [PATCH 319/377] await backend start Signed-off-by: Johan Haals --- .../src/next/wiring/TestBackend.ts | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 49acb07ab4..c7bc987cb8 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -37,18 +37,17 @@ export interface TestBackendOptions { export function createTestBackend( options: TestBackendOptions, ): Backend { - const factories = - options.services?.map(serviceDef => { - if (Array.isArray(serviceDef)) { - return createServiceFactory({ - service: serviceDef[0], - deps: {}, - factory: async () => async () => serviceDef[1], - }); - } - return serviceDef as AnyServiceFactory; - }) ?? []; - return createSpecializedBackend({ services: factories }); + const factories = options.services?.map(serviceDef => { + if (Array.isArray(serviceDef)) { + return createServiceFactory({ + service: serviceDef[0], + deps: {}, + factory: async () => async () => serviceDef[1], + }); + } + return serviceDef as AnyServiceFactory; + }); + return createSpecializedBackend({ services: factories ?? [] }); } /** @alpha */ @@ -62,5 +61,5 @@ export async function startTestBackend( for (const reg of registrables) { backend.add(reg); } - return backend.start(); + await backend.start(); } From e3d514507a88d71cc09ab6d23b14ca8f87fcf23d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 13:40:59 +0200 Subject: [PATCH 320/377] backend-app-api: rename BackendRegistrable to BackendFeature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../src/wiring/BackendInitializer.ts | 22 +++++++++---------- .../src/wiring/BackstageBackend.ts | 6 ++--- packages/backend-app-api/src/wiring/types.ts | 4 ++-- .../src/wiring/factories.ts | 14 +++++------- .../backend-plugin-api/src/wiring/index.ts | 2 +- .../backend-plugin-api/src/wiring/types.ts | 2 +- .../src/next/wiring/TestBackend.ts | 4 ++-- 7 files changed, 24 insertions(+), 30 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index ab086f4144..0c2cd3e541 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -15,7 +15,7 @@ */ import { - BackendRegistrable, + BackendFeature, ExtensionPoint, ServiceRef, } from '@backstage/backend-plugin-api'; @@ -25,7 +25,7 @@ type ServiceOrExtensionPoint = ExtensionPoint | ServiceRef; export class BackendInitializer { #started = false; - #extensions = new Map(); + #features = new Map(); #registerInits = new Array(); #extensionPoints = new Map(); #serviceHolder: ServiceHolder; @@ -51,13 +51,11 @@ export class BackendInitializer { ); } - add(extension: BackendRegistrable, options?: TOptions) { + add(feature: BackendFeature, options?: TOptions) { if (this.#started) { - throw new Error( - 'extension can not be added after the backend has started', - ); + throw new Error('feature can not be added after the backend has started'); } - this.#extensions.set(extension, options); + this.#features.set(feature, options); } async start(): Promise { @@ -67,13 +65,13 @@ export class BackendInitializer { } this.#started = true; - for (const [extension] of this.#extensions) { + for (const [feature] of this.#features) { const provides = new Set>(); let registerInit: BackendRegisterInit | undefined = undefined; - console.log('Registering', extension.id); - extension.register({ + console.log('Registering', feature.id); + feature.register({ registerExtensionPoint: (extensionPointRef, impl) => { if (registerInit) { throw new Error('registerExtensionPoint called after registerInit'); @@ -89,7 +87,7 @@ export class BackendInitializer { throw new Error('registerInit must only be called once'); } registerInit = { - id: extension.id, + id: feature.id, provides, consumes: new Set(Object.values(registerOptions.deps)), deps: registerOptions.deps, @@ -100,7 +98,7 @@ export class BackendInitializer { if (!registerInit) { throw new Error( - `registerInit was not called by register in ${extension.id}`, + `registerInit was not called by register in ${feature.id}`, ); } diff --git a/packages/backend-app-api/src/wiring/BackstageBackend.ts b/packages/backend-app-api/src/wiring/BackstageBackend.ts index 104d2b6fc8..1e09ed77ba 100644 --- a/packages/backend-app-api/src/wiring/BackstageBackend.ts +++ b/packages/backend-app-api/src/wiring/BackstageBackend.ts @@ -16,7 +16,7 @@ import { AnyServiceFactory, - BackendRegistrable, + BackendFeature, } from '@backstage/backend-plugin-api'; import { BackendInitializer } from './BackendInitializer'; import { ServiceRegistry } from './ServiceRegistry'; @@ -31,8 +31,8 @@ export class BackstageBackend implements Backend { this.#initializer = new BackendInitializer(this.#services); } - add(extension: BackendRegistrable): void { - this.#initializer.add(extension); + add(feature: BackendFeature): void { + this.#initializer.add(feature); } async start(): Promise { diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index 2aaead805d..cdd4578789 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -16,7 +16,7 @@ import { AnyServiceFactory, - BackendRegistrable, + BackendFeature, FactoryFunc, ServiceRef, } from '@backstage/backend-plugin-api'; @@ -26,7 +26,7 @@ import { BackstageBackend } from './BackstageBackend'; * @public */ export interface Backend { - add(extension: BackendRegistrable): void; + add(feature: BackendFeature): void; start(): Promise; } diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index 1c3a27bb1c..a057c0d6ec 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -14,11 +14,7 @@ * limitations under the License. */ -import { - BackendInitRegistry, - BackendRegistrable, - ExtensionPoint, -} from './types'; +import { BackendInitRegistry, BackendFeature, ExtensionPoint } from './types'; /** @public */ export function createExtensionPoint(options: { @@ -46,8 +42,8 @@ export interface BackendPluginConfig { export function createBackendPlugin( config: BackendPluginConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable { + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: config.id, register(register: BackendInitRegistry) { @@ -70,8 +66,8 @@ export interface BackendModuleConfig { export function createBackendModule( config: BackendModuleConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable { + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: `${config.pluginId}.${config.moduleId}`, register(register: BackendInitRegistry) { diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 342a922dbd..2ad414beca 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -22,6 +22,6 @@ export { } from './factories'; export type { BackendInitRegistry, - BackendRegistrable, + BackendFeature, ExtensionPoint, } from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 65525fd8aa..3f01879f80 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -48,7 +48,7 @@ export interface BackendInitRegistry { } /** @public */ -export interface BackendRegistrable { +export interface BackendFeature { id: string; register(reg: BackendInitRegistry): void; } diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index c7bc987cb8..30dbe7f804 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -19,7 +19,7 @@ import { AnyServiceFactory, ServiceRef, createServiceFactory, - BackendRegistrable, + BackendFeature, } from '@backstage/backend-plugin-api'; /** @alpha */ @@ -53,7 +53,7 @@ export function createTestBackend( /** @alpha */ export async function startTestBackend( options: TestBackendOptions & { - registrables?: BackendRegistrable[]; + registrables?: BackendFeature[]; }, ): Promise { const { registrables = [], ...otherOptions } = options; From 04525293745fdb736d9918042633a3cc9d077c49 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 14:02:15 +0200 Subject: [PATCH 321/377] BackendInitRegistry -> BackendRegistrationPoints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Co-authored-by: Patrik Oldsberg Signed-off-by: Johan Haals --- .../backend-plugin-api/src/wiring/factories.ts | 14 +++++++++----- packages/backend-plugin-api/src/wiring/index.ts | 2 +- packages/backend-plugin-api/src/wiring/types.ts | 5 +++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index a057c0d6ec..68f13f6c30 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -14,7 +14,11 @@ * limitations under the License. */ -import { BackendInitRegistry, BackendFeature, ExtensionPoint } from './types'; +import { + BackendRegistrationPoints, + BackendFeature, + ExtensionPoint, +} from './types'; /** @public */ export function createExtensionPoint(options: { @@ -35,7 +39,7 @@ export function createExtensionPoint(options: { /** @public */ export interface BackendPluginConfig { id: string; - register(reg: BackendInitRegistry, options: TOptions): void; + register(reg: BackendRegistrationPoints, options: TOptions): void; } /** @public */ @@ -46,7 +50,7 @@ export function createBackendPlugin( : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: config.id, - register(register: BackendInitRegistry) { + register(register: BackendRegistrationPoints) { return config.register(register, options!); }, }); @@ -57,7 +61,7 @@ export interface BackendModuleConfig { pluginId: string; moduleId: string; register( - reg: Omit, + reg: Omit, options: TOptions, ): void; } @@ -70,7 +74,7 @@ export function createBackendModule( : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: `${config.pluginId}.${config.moduleId}`, - register(register: BackendInitRegistry) { + register(register: BackendRegistrationPoints) { // TODO: Hide registerExtensionPoint return config.register(register, options!); }, diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 2ad414beca..8f85edb2eb 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -21,7 +21,7 @@ export { createExtensionPoint, } from './factories'; export type { - BackendInitRegistry, + BackendRegistrationPoints, BackendFeature, ExtensionPoint, } from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 3f01879f80..1801127ddb 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -36,7 +36,7 @@ export type ExtensionPoint = { }; /** @public */ -export interface BackendInitRegistry { +export interface BackendRegistrationPoints { registerExtensionPoint( ref: ServiceRef, impl: TExtensionPoint, @@ -49,6 +49,7 @@ export interface BackendInitRegistry { /** @public */ export interface BackendFeature { + // TODO(Rugvip): Try to get rid of the ID at this level, allowing for a feature to register multiple features as a bundle id: string; - register(reg: BackendInitRegistry): void; + register(reg: BackendRegistrationPoints): void; } From 0ef2719b11ba98a167cfafa86787fd71dfa09c96 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 14:13:02 +0200 Subject: [PATCH 322/377] registrables -> feature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../backend-test-utils/src/next/wiring/TestBackend.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 30dbe7f804..150d4ce2af 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -53,13 +53,13 @@ export function createTestBackend( /** @alpha */ export async function startTestBackend( options: TestBackendOptions & { - registrables?: BackendFeature[]; + features?: BackendFeature[]; }, ): Promise { - const { registrables = [], ...otherOptions } = options; + const { features = [], ...otherOptions } = options; const backend = createTestBackend(otherOptions); - for (const reg of registrables) { - backend.add(reg); + for (const feature of features) { + backend.add(feature); } await backend.start(); } From 0d2e6197d8e775fcf9b146f8b7735d2a45b2f893 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:30:24 +0200 Subject: [PATCH 323/377] =?UTF-8?q?Refactor=20backend-test-utils=20Co-auth?= =?UTF-8?q?ored-by:=20Fredrik=20Adel=C3=B6w=20=20Co-authored-by:=20Patrik=20Oldsberg=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johan Haals --- .../src/wiring/BackendInitializer.ts | 21 +++--- packages/backend-app-api/src/wiring/index.ts | 6 +- packages/backend-app-api/src/wiring/types.ts | 14 +++- .../backend-plugin-api/src/wiring/types.ts | 8 ++- .../src/next/wiring/TestBackend.test.ts | 6 +- .../src/next/wiring/TestBackend.ts | 64 ++++++++++++++----- .../src/next/wiring/index.ts | 2 +- plugins/catalog-node/src/extensions.ts | 4 +- .../extension/ScaffolderCatalogModule.test.ts | 5 +- 9 files changed, 89 insertions(+), 41 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 0c2cd3e541..c1b7089827 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -19,15 +19,17 @@ import { ExtensionPoint, ServiceRef, } from '@backstage/backend-plugin-api'; -import { BackendRegisterInit, ServiceHolder } from './types'; - -type ServiceOrExtensionPoint = ExtensionPoint | ServiceRef; +import { + BackendRegisterInit, + ServiceHolder, + ServiceOrExtensionPoint, +} from './types'; export class BackendInitializer { #started = false; #features = new Map(); #registerInits = new Array(); - #extensionPoints = new Map(); + #extensionPoints = new Map, unknown>(); #serviceHolder: ServiceHolder; constructor(serviceHolder: ServiceHolder) { @@ -42,7 +44,7 @@ export class BackendInitializer { await Promise.all( Object.entries(deps).map(async ([name, ref]) => [ name, - this.#extensionPoints.get(ref) || + this.#extensionPoints.get(ref as ExtensionPoint) || (await this.#serviceHolder.get(ref as ServiceRef)!( pluginId, )), @@ -66,7 +68,7 @@ export class BackendInitializer { this.#started = true; for (const [feature] of this.#features) { - const provides = new Set>(); + const provides = new Set>(); let registerInit: BackendRegisterInit | undefined = undefined; @@ -129,13 +131,13 @@ export class BackendInitializer { for (const registerInit of registerInitsToOrder) { const unInitializedDependents = []; - for (const serviceRef of registerInit.provides) { + for (const provided of registerInit.provides) { if ( registerInitsToOrder.some( - init => init !== registerInit && init.consumes.has(serviceRef), + init => init !== registerInit && init.consumes.has(provided), ) ) { - unInitializedDependents.push(serviceRef); + unInitializedDependents.push(provided); } } @@ -148,6 +150,7 @@ export class BackendInitializer { registerInitsToOrder = registerInitsToOrder.filter(r => !toRemove.has(r)); } + return orderedRegisterInits; } } diff --git a/packages/backend-app-api/src/wiring/index.ts b/packages/backend-app-api/src/wiring/index.ts index d6e4de9145..2f55076922 100644 --- a/packages/backend-app-api/src/wiring/index.ts +++ b/packages/backend-app-api/src/wiring/index.ts @@ -14,5 +14,9 @@ * limitations under the License. */ -export type { Backend, CreateSpecializedBackendOptions } from './types'; +export type { + Backend, + CreateSpecializedBackendOptions, + ServiceOrExtensionPoint, +} from './types'; export { createSpecializedBackend } from './types'; diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index cdd4578789..0ca40b5660 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -17,6 +17,7 @@ import { AnyServiceFactory, BackendFeature, + ExtensionPoint, FactoryFunc, ServiceRef, } from '@backstage/backend-plugin-api'; @@ -32,9 +33,9 @@ export interface Backend { export interface BackendRegisterInit { id: string; - consumes: Set>; - provides: Set>; - deps: { [name: string]: ServiceRef }; + consumes: Set; + provides: Set; + deps: { [name: string]: ServiceOrExtensionPoint }; init: (deps: { [name: string]: unknown }) => Promise; } @@ -57,3 +58,10 @@ export function createSpecializedBackend( ): Backend { return new BackstageBackend(options.services); } + +/** + * @public + */ +export type ServiceOrExtensionPoint = + | ExtensionPoint + | ServiceRef; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 1801127ddb..cdb56ea2e4 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -38,12 +38,14 @@ export type ExtensionPoint = { /** @public */ export interface BackendRegistrationPoints { registerExtensionPoint( - ref: ServiceRef, + ref: ExtensionPoint, impl: TExtensionPoint, ): void; registerInit(options: { - deps: { [name in keyof Deps]: ServiceRef }; - init: (deps: Deps) => Promise; + deps: { + [name in keyof Deps]: ServiceRef | ExtensionPoint; + }; + init(deps: Deps): Promise; }): void; } diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts index 279667560f..6b3f8e270f 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts @@ -19,12 +19,12 @@ import { createServiceFactory, createServiceRef, } from '@backstage/backend-plugin-api'; -import { createTestBackend, startTestBackend } from './TestBackend'; +import { startTestBackend } from './TestBackend'; describe('TestBackend', () => { it('should get a type error if service implementation does not match', () => { const serviceRef = createServiceRef<{ a: string; b: string }>({ id: 'a' }); - const backend = createTestBackend({ + const backend = startTestBackend({ services: [ [serviceRef, { a: 'a' }], [serviceRef, { a: 'a', b: 'b' }], @@ -68,7 +68,7 @@ describe('TestBackend', () => { await startTestBackend({ services: [sf], - registrables: [testModule({})], + features: [testModule({})], }); expect(testFn).toBeCalledWith('winning'); diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 150d4ce2af..b9276fa9b9 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -14,31 +14,54 @@ * limitations under the License. */ -import { Backend, createSpecializedBackend } from '@backstage/backend-app-api'; +import { createSpecializedBackend } from '@backstage/backend-app-api'; import { AnyServiceFactory, ServiceRef, createServiceFactory, BackendFeature, + ExtensionPoint, } from '@backstage/backend-plugin-api'; /** @alpha */ -export interface TestBackendOptions { - services: readonly [ +export interface TestBackendOptions< + TServices extends any[], + TExtensionPoints extends any[], +> { + services?: readonly [ ...{ [index in keyof TServices]: | AnyServiceFactory | [ServiceRef, Partial]; }, ]; + extensionPoints?: readonly [ + ...{ + [index in keyof TExtensionPoints]: [ + ExtensionPoint, + Partial, + ]; + }, + ]; + features?: BackendFeature[]; } /** @alpha */ -export function createTestBackend( - options: TestBackendOptions, -): Backend { - const factories = options.services?.map(serviceDef => { +export async function startTestBackend< + TServices extends any[], + TExtensionPoints extends any[], +>(options: TestBackendOptions): Promise { + const { + services = [], + extensionPoints = [], + features = [], + ...otherOptions + } = options; + + const factories = services.map(serviceDef => { if (Array.isArray(serviceDef)) { + // if type is ExtensionPoint? + // do something differently? return createServiceFactory({ service: serviceDef[0], deps: {}, @@ -47,19 +70,26 @@ export function createTestBackend( } return serviceDef as AnyServiceFactory; }); - return createSpecializedBackend({ services: factories ?? [] }); -} -/** @alpha */ -export async function startTestBackend( - options: TestBackendOptions & { - features?: BackendFeature[]; - }, -): Promise { - const { features = [], ...otherOptions } = options; - const backend = createTestBackend(otherOptions); + const backend = createSpecializedBackend({ + ...otherOptions, + services: factories, + }); + + backend.add({ + id: `---test-extension-point-registrar`, + register(reg) { + for (const [ref, impl] of extensionPoints) { + reg.registerExtensionPoint(ref, impl); + } + + reg.registerInit({ deps: {}, async init() {} }); + }, + }); + for (const feature of features) { backend.add(feature); } + await backend.start(); } diff --git a/packages/backend-test-utils/src/next/wiring/index.ts b/packages/backend-test-utils/src/next/wiring/index.ts index 18a35c2b66..eb7b773e33 100644 --- a/packages/backend-test-utils/src/next/wiring/index.ts +++ b/packages/backend-test-utils/src/next/wiring/index.ts @@ -14,5 +14,5 @@ * limitations under the License. */ -export { createTestBackend, startTestBackend } from './TestBackend'; +export { startTestBackend } from './TestBackend'; export type { TestBackendOptions } from './TestBackend'; diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 9f76946d30..80fbd7630f 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { createServiceRef } from '@backstage/backend-plugin-api'; +import { createExtensionPoint } from '@backstage/backend-plugin-api'; import { EntityProvider } from './api'; import { CatalogProcessor } from './api/processor'; @@ -29,6 +29,6 @@ export interface CatalogProcessingExtensionPoint { * @alpha */ export const catalogProcessingExtensionPoint = - createServiceRef({ + createExtensionPoint({ id: 'catalog.processing', }); diff --git a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts index a969d80a1b..e8ed3bf505 100644 --- a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts +++ b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts @@ -23,8 +23,9 @@ describe('ScaffolderCatalogModule', () => { it('should register the extension point', async () => { const extensionPoint = { addProcessor: jest.fn() }; await startTestBackend({ - services: [[catalogProcessingExtensionPoint, extensionPoint]], - registrables: [scaffolderCatalogModule({})], + services: [], + extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], + features: [scaffolderCatalogModule({})], }); expect(extensionPoint.addProcessor).toHaveBeenCalledWith( From 3f37ff4c42a90a403e05524d0027513743d75bf9 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:32:25 +0200 Subject: [PATCH 324/377] chore: remove unused parameter Signed-off-by: Johan Haals --- .../src/extension/ScaffolderCatalogModule.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts index e8ed3bf505..1ced3dd676 100644 --- a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts +++ b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts @@ -23,7 +23,6 @@ describe('ScaffolderCatalogModule', () => { it('should register the extension point', async () => { const extensionPoint = { addProcessor: jest.fn() }; await startTestBackend({ - services: [], extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], features: [scaffolderCatalogModule({})], }); From 0599732ec0dd8b392f525ce24ababa38da541945 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:40:23 +0200 Subject: [PATCH 325/377] add changeset Signed-off-by: Johan Haals --- .changeset/cyan-pens-suffer.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/cyan-pens-suffer.md diff --git a/.changeset/cyan-pens-suffer.md b/.changeset/cyan-pens-suffer.md new file mode 100644 index 0000000000..b7d3a3a096 --- /dev/null +++ b/.changeset/cyan-pens-suffer.md @@ -0,0 +1,8 @@ +--- +'@backstage/backend-app-api': patch +'@backstage/backend-plugin-api': patch +'@backstage/backend-test-utils': patch +'@backstage/plugin-catalog-node': patch +--- + +Refactored experimental backend system with new type names. From c2e7491890a6ac0deb360e90e6c075f77fdee659 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:58:36 +0200 Subject: [PATCH 326/377] backend-app-api: Improve error handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../src/wiring/BackendInitializer.ts | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index c1b7089827..afb5250504 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -40,17 +40,35 @@ export class BackendInitializer { deps: { [name: string]: ServiceOrExtensionPoint }, pluginId: string, ) { - return Object.fromEntries( - await Promise.all( - Object.entries(deps).map(async ([name, ref]) => [ - name, - this.#extensionPoints.get(ref as ExtensionPoint) || - (await this.#serviceHolder.get(ref as ServiceRef)!( - pluginId, - )), - ]), - ), - ); + const result = new Map(); + const missingRefs = new Set(); + + for (const [name, ref] of Object.entries(deps)) { + const extensionPoint = this.#extensionPoints.get( + ref as ExtensionPoint, + ); + if (extensionPoint) { + result.set(name, extensionPoint); + } else { + const factory = await this.#serviceHolder.get( + ref as ServiceRef, + ); + if (factory) { + result.set(name, await factory(pluginId)); + } else { + missingRefs.add(ref); + } + } + } + + if (missingRefs.size > 0) { + const missing = Array.from(missingRefs).join(', '); + throw new Error( + `No extension point or service available for the following ref(s): ${missing}`, + ); + } + + return Object.fromEntries(result); } add(feature: BackendFeature, options?: TOptions) { @@ -61,7 +79,6 @@ export class BackendInitializer { } async start(): Promise { - console.log(`Starting backend`); if (this.#started) { throw new Error('Backend has already started'); } @@ -72,7 +89,6 @@ export class BackendInitializer { let registerInit: BackendRegisterInit | undefined = undefined; - console.log('Registering', feature.id); feature.register({ registerExtensionPoint: (extensionPointRef, impl) => { if (registerInit) { @@ -107,8 +123,6 @@ export class BackendInitializer { this.#registerInits.push(registerInit); } - this.validateSetup(); - const orderedRegisterResults = this.#resolveInitOrder(this.#registerInits); for (const registerInit of orderedRegisterResults) { @@ -117,8 +131,6 @@ export class BackendInitializer { } } - private validateSetup() {} - #resolveInitOrder(registerInits: Array) { let registerInitsToOrder = registerInits.slice(); const orderedRegisterInits = new Array(); @@ -142,7 +154,6 @@ export class BackendInitializer { } if (unInitializedDependents.length === 0) { - console.log(`DEBUG: pushed ${registerInit.id} to results`); orderedRegisterInits.push(registerInit); toRemove.add(registerInit); } From b76eeaf302b691705ba9737d59e36aa3f87efc6a Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:58:52 +0200 Subject: [PATCH 327/377] add api reports Signed-off-by: Johan Haals --- packages/backend-app-api/api-report.md | 11 +++++- packages/backend-plugin-api/api-report.md | 48 +++++++++++------------ packages/backend-test-utils/api-report.md | 36 ++++++++++------- plugins/catalog-backend/api-report.md | 4 +- plugins/catalog-node/api-report.md | 4 +- plugins/scaffolder-backend/api-report.md | 4 +- 6 files changed, 61 insertions(+), 46 deletions(-) diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 130ad6d1f1..26c8179771 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -4,8 +4,9 @@ ```ts import { AnyServiceFactory } from '@backstage/backend-plugin-api'; -import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { HttpRouterService } from '@backstage/backend-plugin-api'; import { Logger } from '@backstage/backend-plugin-api'; import { PermissionAuthorizer } from '@backstage/plugin-permission-common'; @@ -15,13 +16,14 @@ import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { ServiceFactory } from '@backstage/backend-plugin-api'; +import { ServiceRef } from '@backstage/backend-plugin-api'; import { TokenManager } from '@backstage/backend-common'; import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) export interface Backend { // (undocumented) - add(extension: BackendRegistrable): void; + add(feature: BackendFeature): void; // (undocumented) start(): Promise; } @@ -85,6 +87,11 @@ export const schedulerFactory: ServiceFactory< {} >; +// @public (undocumented) +export type ServiceOrExtensionPoint = + | ExtensionPoint + | ServiceRef; + // @public (undocumented) export const tokenManagerFactory: ServiceFactory< TokenManager, diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index 44791f5744..fa5097be64 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -26,23 +26,11 @@ export type AnyServiceFactory = ServiceFactory< >; // @public (undocumented) -export interface BackendInitRegistry { +export interface BackendFeature { // (undocumented) - registerExtensionPoint( - ref: ServiceRef, - impl: TExtensionPoint, - ): void; + id: string; // (undocumented) - registerInit< - Deps extends { - [name in string]: unknown; - }, - >(options: { - deps: { - [name in keyof Deps]: ServiceRef; - }; - init: (deps: Deps) => Promise; - }): void; + register(reg: BackendRegistrationPoints): void; } // @public (undocumented) @@ -53,7 +41,7 @@ export interface BackendModuleConfig { pluginId: string; // (undocumented) register( - reg: Omit, + reg: Omit, options: TOptions, ): void; } @@ -63,15 +51,27 @@ export interface BackendPluginConfig { // (undocumented) id: string; // (undocumented) - register(reg: BackendInitRegistry, options: TOptions): void; + register(reg: BackendRegistrationPoints, options: TOptions): void; } // @public (undocumented) -export interface BackendRegistrable { +export interface BackendRegistrationPoints { // (undocumented) - id: string; + registerExtensionPoint( + ref: ExtensionPoint, + impl: TExtensionPoint, + ): void; // (undocumented) - register(reg: BackendInitRegistry): void; + registerInit< + Deps extends { + [name in string]: unknown; + }, + >(options: { + deps: { + [name in keyof Deps]: ServiceRef | ExtensionPoint; + }; + init(deps: Deps): Promise; + }): void; } // @public (undocumented) @@ -84,15 +84,15 @@ export const configServiceRef: ServiceRef; export function createBackendModule( config: BackendModuleConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable; + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature; // @public (undocumented) export function createBackendPlugin( config: BackendPluginConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable; + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature; // @public (undocumented) export function createExtensionPoint(options: { diff --git a/packages/backend-test-utils/api-report.md b/packages/backend-test-utils/api-report.md index 9c75402b43..b8881e659d 100644 --- a/packages/backend-test-utils/api-report.md +++ b/packages/backend-test-utils/api-report.md @@ -4,16 +4,11 @@ ```ts import { AnyServiceFactory } from '@backstage/backend-plugin-api'; -import { Backend } from '@backstage/backend-app-api'; -import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; import { ServiceRef } from '@backstage/backend-plugin-api'; -// @alpha (undocumented) -export function createTestBackend( - options: TestBackendOptions, -): Backend; - // @public (undocumented) export function isDockerDisabledForTests(): boolean; @@ -25,16 +20,29 @@ export function setupRequestMockHandlers(worker: { }): void; // @alpha (undocumented) -export function startTestBackend( - options: TestBackendOptions & { - registrables?: BackendRegistrable[]; - }, -): Promise; +export function startTestBackend< + TServices extends any[], + TExtensionPoints extends any[], +>(options: TestBackendOptions): Promise; // @alpha (undocumented) -export interface TestBackendOptions { +export interface TestBackendOptions< + TServices extends any[], + TExtensionPoints extends any[], +> { // (undocumented) - services: readonly [ + extensionPoints?: readonly [ + ...{ + [index in keyof TExtensionPoints]: [ + ExtensionPoint, + Partial, + ]; + }, + ]; + // (undocumented) + features?: BackendFeature[]; + // (undocumented) + services?: readonly [ ...{ [index in keyof TServices]: | AnyServiceFactory diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index fa6806933d..55f2d114db 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -5,7 +5,7 @@ ```ts /// -import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { CatalogEntityDocument } from '@backstage/plugin-catalog-common'; import { CatalogProcessor } from '@backstage/plugin-catalog-node'; @@ -224,7 +224,7 @@ export type CatalogPermissionRule = PermissionRule; // @alpha -export const catalogPlugin: (options?: unknown) => BackendRegistrable; +export const catalogPlugin: (options?: unknown) => BackendFeature; // @public (undocumented) export interface CatalogProcessingEngine { diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md index 47a9bdf45c..46e3efef99 100644 --- a/plugins/catalog-node/api-report.md +++ b/plugins/catalog-node/api-report.md @@ -7,8 +7,8 @@ import { CompoundEntityRef } from '@backstage/catalog-model'; import { Entity } from '@backstage/catalog-model'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { JsonValue } from '@backstage/types'; -import { ServiceRef } from '@backstage/backend-plugin-api'; // @alpha (undocumented) export interface CatalogProcessingExtensionPoint { @@ -19,7 +19,7 @@ export interface CatalogProcessingExtensionPoint { } // @alpha (undocumented) -export const catalogProcessingExtensionPoint: ServiceRef; +export const catalogProcessingExtensionPoint: ExtensionPoint; // @public (undocumented) export type CatalogProcessor = { diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 6e7220964d..96a4d7b400 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -5,7 +5,7 @@ ```ts /// -import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { CatalogProcessor } from '@backstage/plugin-catalog-backend'; import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend'; @@ -566,7 +566,7 @@ export type RunCommandOptions = { }; // @alpha -export const scaffolderCatalogModule: (options?: unknown) => BackendRegistrable; +export const scaffolderCatalogModule: (options?: unknown) => BackendFeature; // @public (undocumented) export class ScaffolderEntitiesProcessor implements CatalogProcessor { From 91dd47a6a182641d880b265244f8f2e2114a87a1 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 16:09:17 +0200 Subject: [PATCH 328/377] chore: update backend tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../src/next/wiring/TestBackend.test.ts | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts index 6b3f8e270f..488a258388 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts @@ -16,16 +16,25 @@ import { createBackendModule, + createExtensionPoint, createServiceFactory, createServiceRef, } from '@backstage/backend-plugin-api'; import { startTestBackend } from './TestBackend'; describe('TestBackend', () => { - it('should get a type error if service implementation does not match', () => { - const serviceRef = createServiceRef<{ a: string; b: string }>({ id: 'a' }); - const backend = startTestBackend({ + it('should get a type error if service implementation does not match', async () => { + type Obj = { a: string; b: string }; + const serviceRef = createServiceRef({ id: 'a' }); + const extensionPoint1 = createExtensionPoint({ id: 'b1' }); + const extensionPoint2 = createExtensionPoint({ id: 'b2' }); + const extensionPoint3 = createExtensionPoint({ id: 'b3' }); + const extensionPoint4 = createExtensionPoint({ id: 'b4' }); + const extensionPoint5 = createExtensionPoint({ id: 'b5' }); + await startTestBackend({ services: [ + // @ts-expect-error + [extensionPoint1, { a: 'a' }], [serviceRef, { a: 'a' }], [serviceRef, { a: 'a', b: 'b' }], // @ts-expect-error @@ -35,8 +44,20 @@ describe('TestBackend', () => { // @ts-expect-error [serviceRef, { a: 'a', b: 'b', c: 'c' }], ], + extensionPoints: [ + // @ts-expect-error + [serviceRef, { a: 'a' }], + [extensionPoint1, { a: 'a' }], + [extensionPoint2, { a: 'a', b: 'b' }], + // @ts-expect-error + [extensionPoint3, { c: 'c' }], + // @ts-expect-error + [extensionPoint4, { a: 'a', c: 'c' }], + // @ts-expect-error + [extensionPoint5, { a: 'a', b: 'b', c: 'c' }], + ], }); - expect(backend).toBeDefined(); + expect(1).toBe(1); }); it('should start the test backend', async () => { From 48b8deeaa919358ca1cbf0fd4b4f7f2f98e5a5af Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 17:08:31 +0000 Subject: [PATCH 329/377] fix(deps): update dependency terser-webpack-plugin to v5.3.4 Signed-off-by: Renovate Bot --- yarn.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index 99e9e46942..355006a095 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4048,10 +4048,10 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.7": - version "0.3.13" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== +"@jridgewell/trace-mapping@^0.3.14": + version "0.3.15" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -25046,17 +25046,17 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@*, terser-webpack-plugin@^5.1.3: - version "5.3.3" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz#8033db876dd5875487213e87c627bca323e5ed90" - integrity sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ== + version "5.3.4" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.4.tgz#f4d31e265883d20fda3ca9c0fc6a53f173ae62e3" + integrity sha512-SmnkUhBxLDcBfTIeaq+ZqJXLVEyXxSaNcCeSezECdKjfkMrTTnPvapBILylYwyEvHFZAn2cJ8dtiXel5XnfOfQ== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.14" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.0" - terser "^5.7.2" + terser "^5.14.1" -terser@^5.10.0, terser@^5.7.2: +terser@^5.10.0, terser@^5.14.1: version "5.14.2" resolved "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== From 844757ef480a636733fba2d151727a4455a0fdc5 Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 12:18:48 -0400 Subject: [PATCH 330/377] Fixing issue #13126 Fixing evaluation grouping with ternary. Regex match was returning all archived repos as matching along with the ones that actually matched. Signed-off-by: Tim Harris Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index 991b380112..346d4d9097 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -185,9 +185,9 @@ export class GitHubEntityProvider implements EntityProvider { const repositoryFilter = this.config.filters?.repository; const matchingRepositories = repositories.filter(r => { - return !r.isArchived && repositoryFilter + return !r.isArchived && ( repositoryFilter ? repositoryFilter?.test(r.name) - : true && r.defaultBranchRef?.name; + : true && r.defaultBranchRef?.name) ; }); return matchingRepositories; } From 62bf7826546b4be8daae32b3651cc2971a55d9ee Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 12:20:15 -0400 Subject: [PATCH 331/377] Removing extra space Signed-off-by: Tim Harris Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index 346d4d9097..35d2b66de5 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -185,7 +185,7 @@ export class GitHubEntityProvider implements EntityProvider { const repositoryFilter = this.config.filters?.repository; const matchingRepositories = repositories.filter(r => { - return !r.isArchived && ( repositoryFilter + return !r.isArchived && (repositoryFilter ? repositoryFilter?.test(r.name) : true && r.defaultBranchRef?.name) ; }); From 341d50570e4e6f7ab6bcd571d8335134fe945a99 Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 12:28:42 -0400 Subject: [PATCH 332/377] Removing extra whitespace Signed-off-by: Tim Harris Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index 35d2b66de5..ec7e598327 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -187,7 +187,7 @@ export class GitHubEntityProvider implements EntityProvider { const matchingRepositories = repositories.filter(r => { return !r.isArchived && (repositoryFilter ? repositoryFilter?.test(r.name) - : true && r.defaultBranchRef?.name) ; + : true && r.defaultBranchRef?.name); }); return matchingRepositories; } From a63ffec08af50772d61681660b8439413fb8a10b Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 13:13:16 -0400 Subject: [PATCH 333/377] Apply Prettier formatting Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index ec7e598327..e47ed62890 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -185,9 +185,12 @@ export class GitHubEntityProvider implements EntityProvider { const repositoryFilter = this.config.filters?.repository; const matchingRepositories = repositories.filter(r => { - return !r.isArchived && (repositoryFilter - ? repositoryFilter?.test(r.name) - : true && r.defaultBranchRef?.name); + return ( + !r.isArchived && + (repositoryFilter + ? repositoryFilter?.test(r.name) + : true && r.defaultBranchRef?.name) + ); }); return matchingRepositories; } From c59d1ce48796b2ae99272fd97f3fb957a2c6cf31 Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 13:16:18 -0400 Subject: [PATCH 334/377] Adding changeset Signed-off-by: Tim Harris --- .changeset/serious-flowers-smash.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/serious-flowers-smash.md diff --git a/.changeset/serious-flowers-smash.md b/.changeset/serious-flowers-smash.md new file mode 100644 index 0000000000..274250b1dd --- /dev/null +++ b/.changeset/serious-flowers-smash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Fixed bug where repository filter was including all archived repositories From 4b3c5df733087fd31024c70950dff057eb35827d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 20:32:42 +0000 Subject: [PATCH 335/377] fix(deps): update dependency aws-sdk to v2.1194.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 355006a095..4455ceac5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9106,9 +9106,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1193.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1193.0.tgz#34d3ed3ea19a776dafd954183588169c6daa4764" - integrity sha512-nSbljBZhxNn+LmENc14md+y1Z+U8BUcS1LLlOxeJvjYAkkGbPf29Bl8FvzbRsZuoxtF6N1Mkel3AI5XIx7mkew== + version "2.1194.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1194.0.tgz#6a820684fa3f58ea40caf90d302414a23df7c308" + integrity sha512-wbgib7r7sHPkZIhqSMduueKYqe+DrFyxsKnUKHj6hdNcRKqEeqzvKp4olWmFs/3z3qU8+g78kBXr9rujvko1ug== dependencies: buffer "4.9.2" events "1.1.1" From d45bbfeb6935075963f146e5716640b206959065 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 31 Jul 2022 12:59:46 +0200 Subject: [PATCH 336/377] cli: lint ignore any eslintrc files Signed-off-by: Patrik Oldsberg --- .changeset/blue-hairs-prove.md | 5 +++++ packages/cli/config/eslint-factory.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/blue-hairs-prove.md diff --git a/.changeset/blue-hairs-prove.md b/.changeset/blue-hairs-prove.md new file mode 100644 index 0000000000..7812825da6 --- /dev/null +++ b/.changeset/blue-hairs-prove.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Linting is now ignored for any `.eslintrc.*` files, not just `.eslintrc.js`. diff --git a/packages/cli/config/eslint-factory.js b/packages/cli/config/eslint-factory.js index e86146048e..6e2a510c4a 100644 --- a/packages/cli/config/eslint-factory.js +++ b/packages/cli/config/eslint-factory.js @@ -76,7 +76,7 @@ function createConfig(dir, extraConfig = {}) { ...parserOptions, }, ignorePatterns: [ - '.eslintrc.js', + '.eslintrc.*', '**/dist/**', '**/dist-types/**', ...(ignorePatterns ?? []), From 3a8ab72248ef9eaa32c93ed28791d491be7c1f37 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 31 Jul 2022 18:34:37 +0200 Subject: [PATCH 337/377] graphiql: avoid using dynamic default import Signed-off-by: Patrik Oldsberg --- .changeset/late-dolphins-leave.md | 5 +++++ .../src/components/GraphiQLBrowser/GraphiQLBrowser.tsx | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/late-dolphins-leave.md diff --git a/.changeset/late-dolphins-leave.md b/.changeset/late-dolphins-leave.md new file mode 100644 index 0000000000..796b9a7a21 --- /dev/null +++ b/.changeset/late-dolphins-leave.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-graphiql': patch +--- + +Minor internal tweak to lazy loading in order to improve module compatibility. diff --git a/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx b/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx index 87419aec94..dd38f513be 100644 --- a/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx +++ b/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx @@ -22,7 +22,9 @@ import { GraphQLEndpoint } from '../../lib/api'; import { BackstageTheme } from '@backstage/theme'; import { Progress } from '@backstage/core-components'; -const GraphiQL = React.lazy(() => import('graphiql')); +const GraphiQL = React.lazy(() => + import('graphiql').then(m => ({ default: m.GraphiQL })), +); const useStyles = makeStyles(theme => ({ root: { From fe1e075b5a820758384e749f46a77858fb2494d1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 31 Jul 2022 18:35:10 +0200 Subject: [PATCH 338/377] core-app-api: fix import syntax Signed-off-by: Patrik Oldsberg --- .../apis/implementations/IdentityApi/AppIdentityProxy.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy.test.ts b/packages/core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy.test.ts index 3d4f83b05d..6fa46db7c9 100644 --- a/packages/core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy.test.ts +++ b/packages/core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { withLogCollector } from '@backstage//test-utils'; +import { withLogCollector } from '@backstage/test-utils'; import { AppIdentityProxy } from './AppIdentityProxy'; describe('AppIdentityProxy', () => { From 175849ac98468f34894bac6250416deee95292e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Aug 2022 02:38:48 +0000 Subject: [PATCH 339/377] fix(deps): update dependency eslint to v8.22.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4455ceac5a..7185ca594a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13054,9 +13054,9 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.6.0: - version "8.21.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz#1940a68d7e0573cef6f50037addee295ff9be9ef" - integrity sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA== + version "8.22.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" + integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.10.4" From ef0393fac03f6f53a88d90c3388a75c9e499bf49 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Aug 2022 09:46:11 +0000 Subject: [PATCH 340/377] chore(deps): update dependency @changesets/cli to v2.24.3 Signed-off-by: Renovate Bot --- yarn.lock | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7185ca594a..b1de8458fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2249,10 +2249,10 @@ resolve-from "^5.0.0" semver "^5.4.1" -"@changesets/assemble-release-plan@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.2.0.tgz#35158dc9b496a4c108936ae8ad776ef855795ff6" - integrity sha512-ewY24PEbSec2eKX0+KM7eyENA2hUUp6s4LF9p/iBxTtc+TX2Xbx5rZnlLKZkc8tpuQ3PZbyjLFXWhd1PP6SjCg== +"@changesets/assemble-release-plan@^5.2.1": + version "5.2.1" + resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.2.1.tgz#b66df8d4a5615d4d904b75f7b60faeb64eb1d506" + integrity sha512-d6ckasOWlKF9Mzs82jhl6TKSCgVvfLoUK1ERySrTg2TQJdrVUteZue6uEIYUTA7SgMu67UOSwol6R9yj1nTdjw== dependencies: "@babel/runtime" "^7.10.4" "@changesets/errors" "^0.1.4" @@ -2269,18 +2269,18 @@ "@changesets/types" "^5.1.0" "@changesets/cli@^2.14.0": - version "2.24.2" - resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.24.2.tgz#333ad412c821b582680fbc7f0d0596ebba442c2d" - integrity sha512-Bya7bnxF8Sz+O25M6kseAludVsCy5nXSW9u2Lbje/XbJTyU5q/xwIiXF9aTUzVi/4jyKoKoOasx7B1/z+NJLzg== + version "2.24.3" + resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.24.3.tgz#e6d8ab5d831d2249ca482955232a9a1c9ff02c21" + integrity sha512-okhRV+0WCQJa2Kmil/WvN5TK1o3+1JYSjrsGHqhjv+PYcDgDDgQ6I9J9OMBO9lfmNIpN7xSO80/BzxgvReO4Wg== dependencies: "@babel/runtime" "^7.10.4" "@changesets/apply-release-plan" "^6.0.4" - "@changesets/assemble-release-plan" "^5.2.0" + "@changesets/assemble-release-plan" "^5.2.1" "@changesets/changelog-git" "^0.1.12" "@changesets/config" "^2.1.1" "@changesets/errors" "^0.1.4" "@changesets/get-dependents-graph" "^1.3.3" - "@changesets/get-release-plan" "^3.0.13" + "@changesets/get-release-plan" "^3.0.14" "@changesets/git" "^1.4.1" "@changesets/logger" "^0.0.5" "@changesets/pre" "^1.0.12" @@ -2338,13 +2338,13 @@ fs-extra "^7.0.1" semver "^5.4.1" -"@changesets/get-release-plan@^3.0.13": - version "3.0.13" - resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.13.tgz#f5f7b67b798d1bf2d6e8e546a60c199dd09bfeaf" - integrity sha512-Zl/UN4FUzb5LwmzhO2STRijJT5nQCN4syPEs0p1HSIR+O2iVOzes+2yTLF2zGiOx8qPOsFx/GRSAvuhSzm+9ig== +"@changesets/get-release-plan@^3.0.14": + version "3.0.14" + resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.14.tgz#b4423028a90c63feec12e22c48078f106f8d01f4" + integrity sha512-xzSfeyIOvUnbqMuQXVKTYUizreWQfICwoQpvEHoePVbERLocc1tPo5lzR7dmVCFcaA/DcnbP6mxyioeq+JuzSg== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/assemble-release-plan" "^5.2.0" + "@changesets/assemble-release-plan" "^5.2.1" "@changesets/config" "^2.1.1" "@changesets/pre" "^1.0.12" "@changesets/read" "^0.5.7" @@ -20065,7 +20065,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.2: +object.assign@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -20075,6 +20075,16 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" +object.assign@^4.1.2: + version "4.1.3" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz#d36b7700ddf0019abb6b1df1bb13f6445f79051f" + integrity sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + object.entries@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" From 8a5680cb3165cac1b5f97bf13357ab87f26401fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Aug 2022 19:38:45 +0000 Subject: [PATCH 341/377] fix(deps): update dependency @react-hookz/web to v15.1.0 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index b1de8458fb..e880888d6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5981,17 +5981,17 @@ resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@react-hookz/deep-equal@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.2.tgz#4e8bdeda027379dcf8b62a42e5f75f0351b11b35" - integrity sha512-cM5kPFb6EFH5q52WzRxfRX9+8g5kq78McWOYs6e1seo+nK6NpfLupT5uOCIJp37jU8ayd4Su8ni3HRFTN2C2kg== +"@react-hookz/deep-equal@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.3.tgz#e044bca38c1612ea8c1596ef858ef7cfea49dd7a" + integrity sha512-lGZR5l3YRjzeIOHtJhiq96vQKrsq+9lsCyv+0fROMQeSNWtLLzX3R+psHNi6nsoP3XEhspiZ92nsiPmdNo8ztQ== "@react-hookz/web@^15.0.0": - version "15.0.1" - resolved "https://registry.npmjs.org/@react-hookz/web/-/web-15.0.1.tgz#a6e5460dd16e54ccc0b899e1eed4ae29e871060f" - integrity sha512-nvVLUsDFv3fpZcINoy3I4MeaX8+yoKU21m2Ey2g0VAVqOMp+0GBBC6OHkzT2lRa2fiPIVuJwlmboSKQt7segfQ== + version "15.1.0" + resolved "https://registry.npmjs.org/@react-hookz/web/-/web-15.1.0.tgz#62f7cedb98f345a1cdc7437673ea93dfb4d753d1" + integrity sha512-AsmqeZDg22JnpQS1hGIjLbue4LPmcsgyoPzgmKt6WDeqIUWFL20cgowiGBMFNLvL5Cc9XdusVY720S+CpLyT4Q== dependencies: - "@react-hookz/deep-equal" "^1.0.2" + "@react-hookz/deep-equal" "^1.0.3" "@rjsf/core@^3.2.1": version "3.2.1" From 76f2a1b4e0524dfd27e01232a837575e2f7c6e9b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 05:40:38 +0000 Subject: [PATCH 342/377] fix(deps): update dependency rollup-plugin-esbuild to v4.9.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e880888d6f..051d3ae98c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23300,9 +23300,9 @@ rollup-plugin-dts@^4.0.1: "@babel/code-frame" "^7.16.7" rollup-plugin-esbuild@^4.7.2: - version "4.9.1" - resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.1.tgz#369d137e2b1542c8ee459495fd4f10de812666aa" - integrity sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw== + version "4.9.3" + resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.3.tgz#8c62042bdda9f33d18b1c280914394e5a842dd53" + integrity sha512-bxfUNYTa9Tw/4kdFfT9gtidDtqXyRdCW11ctZM7D8houCCVqp5qHzQF7hhIr31rqMA0APbG47fgVbbCGXgM49Q== dependencies: "@rollup/pluginutils" "^4.1.1" debug "^4.3.3" From fcbafccd0520c804e1d00cc4cdff7e38099cb3a5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 15 Aug 2022 11:25:01 +0200 Subject: [PATCH 343/377] github-issues: remove dependency on prettier Signed-off-by: Patrik Oldsberg --- plugins/github-issues/package.json | 5 +---- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 109c825994..2ddb8481c4 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -21,7 +21,6 @@ "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack" }, - "prettier": "@spotify/prettier-config", "dependencies": { "@backstage/catalog-model": "^1.0.3", "@backstage/core-components": "^0.11.0-next.2", @@ -44,7 +43,6 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", - "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", @@ -52,8 +50,7 @@ "@types/node": "*", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", - "msw": "^0.44.0", - "prettier": "^2.7.1" + "msw": "^0.44.0" }, "files": [ "dist" diff --git a/yarn.lock b/yarn.lock index 051d3ae98c..f8d31be28f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21589,7 +21589,7 @@ prettier@^1.16.4, prettier@^1.19.1: resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.2.1, prettier@^2.7.1: +prettier@^2.2.1: version "2.7.1" resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== From acdf7c40ecde4916447a42b755710310e15df953 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 11:29:43 +0200 Subject: [PATCH 344/377] chore: add the documentation to the sidebar Signed-off-by: blam --- docs/plugins/customization.md | 2 +- microsite/sidebars.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/plugins/customization.md b/docs/plugins/customization.md index 0477ba18a7..44ca5147ea 100644 --- a/docs/plugins/customization.md +++ b/docs/plugins/customization.md @@ -1,6 +1,6 @@ --- id: customization -title: Customization +title: Customization (Experimental) description: Documentation on adding a customization logic to the plugin --- diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 2ae7f5e81d..27ae9c8295 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -219,6 +219,7 @@ "plugins/integrating-plugin-into-software-catalog", "plugins/integrating-search-into-plugins", "plugins/composability", + "plugins/customization", "plugins/analytics", { "type": "subcategory", From 381ff8164f6df9d01f9d3c7e38990b9813922cd9 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 11:41:47 +0200 Subject: [PATCH 345/377] chore: set as undefined if there's an error in the grabbing of the user entity Signed-off-by: blam --- plugins/scaffolder-backend/src/service/router.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 2f72004afe..1a1077cccf 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -192,7 +192,12 @@ export async function createRouter( ); const userEntity = userEntityRef - ? await catalogClient.getEntityByRef(userEntityRef, { token }) + ? await catalogClient + .getEntityByRef(userEntityRef, { token }) + .catch(e => { + logger.error(`Failed to get user entity: ${stringifyError(e)}`); + return undefined; + }) : undefined; let auditLog = `Scaffolding task for ${templateRef}`; From 471dc5699f5b06185ef1d2789acfe8e893fe2b9d Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 11:43:27 +0200 Subject: [PATCH 346/377] chore: a little more refactoring here if it's undefined Signed-off-by: blam --- plugins/scaffolder-backend/src/service/router.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 1a1077cccf..beaa0388dc 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -241,10 +241,12 @@ export async function createRouter( })), output: template.spec.output ?? {}, parameters: values, - user: { - entity: userEntity as UserEntity, - ref: userEntityRef, - }, + user: userEntity + ? { + entity: userEntity as UserEntity, + ref: userEntityRef, + } + : undefined, templateInfo: { entityRef: stringifyEntityRef({ kind, From dad0f65494036639ba487be0d2cbe67f13817830 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 11:44:38 +0200 Subject: [PATCH 347/377] chore: add changeset Signed-off-by: blam --- .changeset/smooth-planes-itch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/smooth-planes-itch.md diff --git a/.changeset/smooth-planes-itch.md b/.changeset/smooth-planes-itch.md new file mode 100644 index 0000000000..638a2e0bf6 --- /dev/null +++ b/.changeset/smooth-planes-itch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Fail gracefully if an invalid `Authorization` header is passed to `POST /v2/tasks` From 0ba7c724054c8871036ced048d2aacefdd377d15 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 12:58:10 +0200 Subject: [PATCH 348/377] chore: reworking the parsing so that we verify it's a valid entity ref before calling out anywhere Signed-off-by: blam --- .../src/service/router.test.ts | 51 +++++++++++++++++++ .../scaffolder-backend/src/service/router.ts | 48 ++++++++++------- 2 files changed, 80 insertions(+), 19 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.test.ts b/plugins/scaffolder-backend/src/service/router.test.ts index f545e57f85..f769038369 100644 --- a/plugins/scaffolder-backend/src/service/router.test.ts +++ b/plugins/scaffolder-backend/src/service/router.test.ts @@ -267,6 +267,57 @@ describe('createRouter', () => { ); }); + it('should not throw when an invalid authorization header is passed', async () => { + const broker = taskBroker.dispatch as jest.Mocked['dispatch']; + const mockToken = 'blob.eyJzdWIiOiIiLCJuYW1lIjoiSm9obiBEb2UifQ.blob'; + + await request(app) + .post('/v2/tasks') + .set('Authorization', `Bearer ${mockToken}`) + .send({ + templateRef: stringifyEntityRef({ + kind: 'template', + name: 'create-react-app-template', + }), + values: { + required: 'required-value', + }, + }); + expect(broker).toHaveBeenCalledWith( + expect.objectContaining({ + createdBy: undefined, + secrets: { + backstageToken: undefined, + }, + + spec: { + apiVersion: mockTemplate.apiVersion, + steps: mockTemplate.spec.steps.map((step, index) => ({ + ...step, + id: step.id ?? `step-${index + 1}`, + name: step.name ?? step.action, + })), + output: mockTemplate.spec.output ?? {}, + parameters: { + required: 'required-value', + }, + user: { + entity: undefined, + ref: undefined, + }, + templateInfo: { + entityRef: stringifyEntityRef({ + kind: 'Template', + namespace: 'Default', + name: mockTemplate.metadata?.name, + }), + baseUrl: 'https://dev.azure.com', + }, + }, + }), + ); + }); + it('should not decorate a user when no backstage auth is passed', async () => { const broker = taskBroker.dispatch as jest.Mocked['dispatch']; diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index beaa0388dc..2a8f15d967 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -146,7 +146,10 @@ export async function createRouter( '/v2/templates/:namespace/:kind/:name/parameter-schema', async (req, res) => { const { namespace, kind, name } = req.params; - const { token } = parseBearerToken(req.headers.authorization); + const { token } = parseBearerToken({ + header: req.headers.authorization, + logger, + }); const template = await findTemplate({ catalogApi: catalogClient, entityRef: { kind, namespace, name }, @@ -187,17 +190,13 @@ export async function createRouter( const { kind, namespace, name } = parseEntityRef(templateRef, { defaultKind: 'template', }); - const { token, entityRef: userEntityRef } = parseBearerToken( - req.headers.authorization, - ); + const { token, entityRef: userEntityRef } = parseBearerToken({ + header: req.headers.authorization, + logger, + }); const userEntity = userEntityRef - ? await catalogClient - .getEntityByRef(userEntityRef, { token }) - .catch(e => { - logger.error(`Failed to get user entity: ${stringifyError(e)}`); - return undefined; - }) + ? await catalogClient.getEntityByRef(userEntityRef, { token }) : undefined; let auditLog = `Scaffolding task for ${templateRef}`; @@ -241,12 +240,10 @@ export async function createRouter( })), output: template.spec.output ?? {}, parameters: values, - user: userEntity - ? { - entity: userEntity as UserEntity, - ref: userEntityRef, - } - : undefined, + user: { + entity: userEntity as UserEntity, + ref: userEntityRef, + }, templateInfo: { entityRef: stringifyEntityRef({ kind, @@ -396,7 +393,10 @@ export async function createRouter( throw new InputError('Input template is not a template'); } - const { token } = parseBearerToken(req.headers.authorization); + const { token } = parseBearerToken({ + header: req.headers.authorization, + logger, + }); for (const parameters of [template.spec.parameters ?? []].flat()) { const result = validate(body.values, parameters); @@ -447,7 +447,13 @@ export async function createRouter( return app; } -function parseBearerToken(header?: string): { +function parseBearerToken({ + header, + logger, +}: { + header?: string; + logger: Logger; +}): { token?: string; entityRef?: string; } { @@ -479,8 +485,12 @@ function parseBearerToken(header?: string): { throw new TypeError('Expected string sub claim'); } + // Check that it's a valid ref, otherwise this will throw. + parseEntityRef(sub); + return { entityRef: sub, token }; } catch (e) { - throw new InputError(`Invalid authorization header: ${stringifyError(e)}`); + logger.error(`Invalid authorization header: ${stringifyError(e)}`); + return {}; } } From a2ee1d73d1f5ba2da31f7d4eb3d4b98c253a2537 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 9 Aug 2022 23:27:46 +0100 Subject: [PATCH 349/377] feat: generate test issue + new dependencies Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 4 +- .../src/utils/generateTestIssue.ts | 53 +++++++++++++++++++ plugins/github-issues/src/utils/index.ts | 16 ++++++ yarn.lock | 7 ++- 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 plugins/github-issues/src/utils/generateTestIssue.ts create mode 100644 plugins/github-issues/src/utils/index.ts diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 2ddb8481c4..98434ce748 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -25,15 +25,17 @@ "@backstage/catalog-model": "^1.0.3", "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", + "@faker-js/faker": "^7.4.0", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", "luxon": "^2.4.0", "octokit": "^2.0.4", - "react-use": "^17.2.4" + "react-use": "^17.4.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0" diff --git a/plugins/github-issues/src/utils/generateTestIssue.ts b/plugins/github-issues/src/utils/generateTestIssue.ts new file mode 100644 index 0000000000..a07c8dfc57 --- /dev/null +++ b/plugins/github-issues/src/utils/generateTestIssue.ts @@ -0,0 +1,53 @@ +/* + * 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 { faker } from '@faker-js/faker'; +import { Issue } from '../api'; + +export const generateTestIssue = ( + overwrites: Partial = {}, +): { node: Issue } => ({ + node: { + ...{ + assignees: { + edges: [ + { + node: { + avatarUrl: faker.internet.avatar(), + login: `${faker.word.adjective()}-${faker.animal.type()}`, + }, + }, + ], + }, + author: { + login: `${faker.word.adjective()}-${faker.animal.type()}`, + }, + repository: { + nameWithOwner: `${faker.animal.type()}/${faker.animal.type()}`, + }, + title: faker.lorem.words(3), + url: faker.internet.url(), + participants: { + totalCount: +faker.random.numeric(), + }, + updatedAt: faker.date.past().toISOString(), + createdAt: faker.date.past().toISOString(), + comments: { + totalCount: +faker.random.numeric(), + }, + }, + ...overwrites, + }, +}); diff --git a/plugins/github-issues/src/utils/index.ts b/plugins/github-issues/src/utils/index.ts new file mode 100644 index 0000000000..16740dac94 --- /dev/null +++ b/plugins/github-issues/src/utils/index.ts @@ -0,0 +1,16 @@ +/* + * 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 './generateTestIssue'; diff --git a/yarn.lock b/yarn.lock index f8d31be28f..4bebec76e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2673,6 +2673,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@faker-js/faker@^7.4.0": + version "7.4.0" + resolved "https://registry.npmjs.org/@faker-js/faker/-/faker-7.4.0.tgz#cac720d860a89d487b47e55e66a4fd114f1d3fe5" + integrity sha512-xDd3Tvkt2jgkx1LkuwwxpNBy/Oe+LkZBTwkgEFTiWpVSZgQ5sc/LenbHKRHbFl0dq/KFeeq/szyyPtpJRKY0fg== + "@fmvilas/pseudo-yaml-ast@^0.3.1": version "0.3.1" resolved "https://registry.npmjs.org/@fmvilas/pseudo-yaml-ast/-/pseudo-yaml-ast-0.3.1.tgz#66c5df2c2d76ba8571dc5bd98fda4d7dce6121de" @@ -22465,7 +22470,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, 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, react-use@^17.4.0: version "17.4.0" resolved "https://registry.npmjs.org/react-use/-/react-use-17.4.0.tgz#cefef258b0a6c534a5c8021c2528ac6e1a4cdc6d" integrity sha512-TgbNTCA33Wl7xzIJegn1HndB4qTS9u03QUwyNycUnXaweZkE4Kq2SB+Yoxx8qbshkZGYBDvUXbXWRUmQDcZZ/Q== From e1c5cd7dbe3f67af2012d1ea447197691ff0b3ab Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 9 Aug 2022 23:34:21 +0100 Subject: [PATCH 350/377] feat: github graphql communicationg moved to new github issues api + fixes the issue with no data rendered on partial failure from api Signed-off-by: Kamil Wolny --- .../src/api/gitHubIssuesApi.test.ts | 300 ++++++++++++++++++ .../github-issues/src/api/gitHubIssuesApi.ts | 207 ++++++++++++ plugins/github-issues/src/api/index.ts | 16 + plugins/github-issues/src/plugin.ts | 17 + 4 files changed, 540 insertions(+) create mode 100644 plugins/github-issues/src/api/gitHubIssuesApi.test.ts create mode 100644 plugins/github-issues/src/api/gitHubIssuesApi.ts create mode 100644 plugins/github-issues/src/api/index.ts diff --git a/plugins/github-issues/src/api/gitHubIssuesApi.test.ts b/plugins/github-issues/src/api/gitHubIssuesApi.test.ts new file mode 100644 index 0000000000..4d1c3ffff3 --- /dev/null +++ b/plugins/github-issues/src/api/gitHubIssuesApi.test.ts @@ -0,0 +1,300 @@ +/* + * 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 mockGraphQLQuery = jest.fn(() => ({})); +jest.mock('octokit', () => ({ + Octokit: jest.fn(() => ({ graphql: mockGraphQLQuery })), +})); + +import { ConfigApi, ErrorApi } from '@backstage/core-plugin-api'; +import { ForwardedError } from '@backstage/errors'; +import { gitHubIssuesApi } from './gitHubIssuesApi'; + +describe('gitHubIssuesApi', () => { + describe('fetchIssuesByRepoFromGitHub', () => { + it('should call GitHub API with correct query with fragment for each repo', async () => { + const api = gitHubIssuesApi( + { getAccessToken: jest.fn() }, + { + getOptionalConfigArray: jest.fn(), + } as unknown as ConfigApi, + { post: jest.fn() } as unknown as ErrorApi, + ); + + await api.fetchIssuesByRepoFromGitHub( + ['mrwolny/yo-yo', 'mrwolny/yoyo', 'mrwolny/yo.yo'], + 10, + ); + expect(mockGraphQLQuery).toHaveBeenCalledTimes(1); + expect(mockGraphQLQuery).toHaveBeenCalledWith( + '\n' + + ' \n' + + ' fragment issues on Repository {\n' + + ' issues(\n' + + ' states: OPEN\n' + + ' first: 10\n' + + ' orderBy: { field: UPDATED_AT, direction: DESC }\n' + + ' ) {\n' + + ' totalCount\n' + + ' edges {\n' + + ' node {\n' + + ' assignees(first: 10) {\n' + + ' edges {\n' + + ' node {\n' + + ' avatarUrl\n' + + ' login\n' + + ' }\n' + + ' }\n' + + ' }\n' + + ' author {\n' + + ' login\n' + + ' }\n' + + ' repository {\n' + + ' nameWithOwner\n' + + ' }\n' + + ' title\n' + + ' url\n' + + ' participants {\n' + + ' totalCount\n' + + ' }\n' + + ' updatedAt\n' + + ' createdAt\n' + + ' comments(last: 1) {\n' + + ' totalCount\n' + + ' }\n' + + ' }\n' + + ' }\n' + + ' }\n' + + ' }\n' + + ' \n' + + '\n' + + ' query {\n' + + ' \n' + + ' yoyo: repository(name: "yo-yo", owner: "mrwolny") {\n' + + ' ...issues\n' + + ' }\n' + + ' ,\n' + + ' yoyox: repository(name: "yoyo", owner: "mrwolny") {\n' + + ' ...issues\n' + + ' }\n' + + ' ,\n' + + ' yoyoxx: repository(name: "yo.yo", owner: "mrwolny") {\n' + + ' ...issues\n' + + ' }\n' + + ' \n' + + ' } \n' + + ' ', + ); + }); + }); + + it('should return data for repos with successfully retrieved issues when GitHub returns partial failure', async () => { + mockGraphQLQuery.mockImplementationOnce(() => + Promise.reject({ + data: { + yoyo: { + issues: { + totalCount: 1, + edges: [ + { + node: { + assignees: { + edges: [], + }, + author: { + login: 'mrwolny', + }, + repository: { + nameWithOwner: 'mrwolny/yo-yo', + }, + title: "It's the ISSUE!", + url: 'https://github.com/mrwolny/yo-yo/issues/1', + participants: { + totalCount: 1, + }, + updatedAt: '2022-07-04T18:47:33Z', + createdAt: '2022-06-23T18:14:26Z', + comments: { + totalCount: 4, + }, + }, + }, + ], + }, + }, + notfound: null, + }, + errors: [ + { + type: 'NOT_FOUND', + path: ['notfound'], + locations: [ + { + line: 48, + column: 9, + }, + ], + message: + "Could not resolve to a Repository with the name 'notfound/notfound'.", + }, + ], + }), + ); + + const api = gitHubIssuesApi( + { getAccessToken: jest.fn() }, + { + getOptionalConfigArray: jest.fn(), + } as unknown as ConfigApi, + { post: jest.fn() } as unknown as ErrorApi, + ); + + const data = await api.fetchIssuesByRepoFromGitHub( + ['mrwolny/yo-yo', 'mrwolny/notfound'], + 10, + ); + + expect(data).toEqual({ + 'mrwolny/yo-yo': { + issues: { + totalCount: 1, + edges: [ + { + node: { + assignees: { + edges: [], + }, + author: { + login: 'mrwolny', + }, + repository: { + nameWithOwner: 'mrwolny/yo-yo', + }, + title: "It's the ISSUE!", + url: 'https://github.com/mrwolny/yo-yo/issues/1', + participants: { + totalCount: 1, + }, + updatedAt: '2022-07-04T18:47:33Z', + createdAt: '2022-06-23T18:14:26Z', + comments: { + totalCount: 4, + }, + }, + }, + ], + }, + }, + }); + }); + + it('should return empty object when GitHub returns failure with no data', async () => { + mockGraphQLQuery.mockImplementationOnce(() => + Promise.reject({ + data: { + notfound: null, + }, + errors: [ + { + type: 'NOT_FOUND', + path: ['notfound'], + locations: [ + { + line: 48, + column: 9, + }, + ], + message: + "Could not resolve to a Repository with the name 'notfound/notfound'.", + }, + ], + }), + ); + + const api = gitHubIssuesApi( + { getAccessToken: jest.fn() }, + { + getOptionalConfigArray: jest.fn(), + } as unknown as ConfigApi, + { post: jest.fn() } as unknown as ErrorApi, + ); + + const data = await api.fetchIssuesByRepoFromGitHub( + ['mrwolny/notfound'], + 10, + ); + + expect(data).toEqual({}); + }); + + it('should post error to the backstage error API when GitHub returns failure', async () => { + mockGraphQLQuery.mockImplementationOnce(() => + Promise.reject({ + data: { + notfound: null, + }, + errors: [ + { + type: 'NOT_FOUND', + path: ['notfound'], + locations: [ + { + line: 48, + column: 9, + }, + ], + message: + "Could not resolve to a Repository with the name 'notfound/notfound'.", + }, + ], + }), + ); + + const mockErrorApi = { post: jest.fn() }; + + const api = gitHubIssuesApi( + { getAccessToken: jest.fn() }, + { + getOptionalConfigArray: jest.fn(), + } as unknown as ConfigApi, + mockErrorApi as unknown as ErrorApi, + ); + + await api.fetchIssuesByRepoFromGitHub(['mrwolny/notfound'], 10); + + expect(mockErrorApi.post).toHaveBeenCalledTimes(1); + expect(mockErrorApi.post).toHaveBeenCalledWith( + new ForwardedError('GitHub Issues Plugin failure', { + data: { + notfound: null, + }, + errors: [ + { + type: 'NOT_FOUND', + path: ['notfound'], + locations: [ + { + line: 48, + column: 9, + }, + ], + message: + "Could not resolve to a Repository with the name 'notfound/notfound'.", + }, + ], + }), + ); + }); +}); diff --git a/plugins/github-issues/src/api/gitHubIssuesApi.ts b/plugins/github-issues/src/api/gitHubIssuesApi.ts new file mode 100644 index 0000000000..06fdf3d452 --- /dev/null +++ b/plugins/github-issues/src/api/gitHubIssuesApi.ts @@ -0,0 +1,207 @@ +/* + * 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 { Octokit } from 'octokit'; +import { + createApiRef, + ConfigApi, + ErrorApi, + OAuthApi, +} from '@backstage/core-plugin-api'; +import { readGitHubIntegrationConfigs } from '@backstage/integration'; +import { ForwardedError } from '@backstage/errors'; + +type Assignee = { + avatarUrl: string; + login: string; +}; + +type EdgesWithNodes = { + edges: Array<{ + node: T; + }>; +}; + +type IssueAuthor = { + login: string; +}; + +export type Issue = { + assignees: EdgesWithNodes; + author: IssueAuthor; + repository: { + nameWithOwner: string; + }; + title: string; + url: string; + participants: { + totalCount: number; + }; + createdAt: string; + updatedAt: string; + comments: { + totalCount: number; + }; +}; + +export type RepoIssues = { + issues: { + totalCount: number; + } & EdgesWithNodes; +}; +export type IssuesByRepo = Record; + +export type GitHubIssuesApi = ReturnType; + +export const gitHubIssuesApiRef = createApiRef({ + id: 'plugin.githubissues.service', +}); + +export const gitHubIssuesApi = ( + githubAuthApi: OAuthApi, + configApi: ConfigApi, + errorApi: ErrorApi, +) => { + let octokit: Octokit; + + const getOctokit = async () => { + const baseUrl = readGitHubIntegrationConfigs( + configApi.getOptionalConfigArray('integrations.github') ?? [], + )[0].apiBaseUrl; + + const token = await githubAuthApi.getAccessToken(['repo']); + + if (!octokit) { + octokit = new Octokit({ auth: token, ...(baseUrl && { baseUrl }) }); + } + + return octokit.graphql; + }; + + const fetchIssuesByRepoFromGitHub = async ( + repos: Array, + itemsPerRepo: number, + ): Promise => { + const graphql = await getOctokit(); + const safeNames: Array = []; + + const repositories = repos.map(repo => { + const [owner, name] = repo.split('/'); + + const safeNameRegex = /-|\./gi; + let safeName = name.replace(safeNameRegex, ''); + + while (safeNames.includes(safeName)) { + safeName += 'x'; + } + + safeNames.push(safeName); + + return { + safeName, + name, + owner, + }; + }); + + let issuesByRepo: IssuesByRepo = {}; + try { + issuesByRepo = await graphql( + createIssueByRepoQuery(repositories, itemsPerRepo), + ); + } catch (e) { + if (e.data) { + issuesByRepo = e.data; + } + + errorApi.post(new ForwardedError('GitHub Issues Plugin failure', e)); + } + + return repositories.reduce((acc, { safeName, name, owner }) => { + if (issuesByRepo[safeName]) { + acc[`${owner}/${name}`] = issuesByRepo[safeName]; + } + + return acc; + }, {} as IssuesByRepo); + }; + + return { fetchIssuesByRepoFromGitHub }; +}; + +function createIssueByRepoQuery( + repositories: Array<{ + safeName: string; + name: string; + owner: string; + }>, + itemsPerRepo: number, +): string { + const fragment = ` + fragment issues on Repository { + issues( + states: OPEN + first: ${itemsPerRepo} + orderBy: { field: UPDATED_AT, direction: DESC } + ) { + totalCount + edges { + node { + assignees(first: 10) { + edges { + node { + avatarUrl + login + } + } + } + author { + login + } + repository { + nameWithOwner + } + title + url + participants { + totalCount + } + updatedAt + createdAt + comments(last: 1) { + totalCount + } + } + } + } + } + `; + + const query = ` + ${fragment} + + query { + ${repositories.map( + ({ safeName, name, owner }) => ` + ${safeName}: repository(name: "${name}", owner: "${owner}") { + ...issues + } + `, + )} + } + `; + + return query; +} diff --git a/plugins/github-issues/src/api/index.ts b/plugins/github-issues/src/api/index.ts new file mode 100644 index 0000000000..4cc3372c45 --- /dev/null +++ b/plugins/github-issues/src/api/index.ts @@ -0,0 +1,16 @@ +/* + * 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 './gitHubIssuesApi'; diff --git a/plugins/github-issues/src/plugin.ts b/plugins/github-issues/src/plugin.ts index ece3fd09a2..3d845f4adf 100644 --- a/plugins/github-issues/src/plugin.ts +++ b/plugins/github-issues/src/plugin.ts @@ -15,15 +15,32 @@ */ import { createPlugin, + createApiFactory, createComponentExtension, createRoutableExtension, + configApiRef, + errorApiRef, + githubAuthApiRef, } from '@backstage/core-plugin-api'; +import { gitHubIssuesApi, gitHubIssuesApiRef } from './api'; import { rootRouteRef } from './routes'; /** @public */ export const gitHubIssuesPlugin = createPlugin({ id: 'github-issues', + apis: [ + createApiFactory({ + api: gitHubIssuesApiRef, + deps: { + configApi: configApiRef, + githubAuthApi: githubAuthApiRef, + errorApi: errorApiRef, + }, + factory: ({ configApi, githubAuthApi, errorApi }) => + gitHubIssuesApi(githubAuthApi, configApi, errorApi), + }), + ], routes: { root: rootRouteRef, }, From 19eb6499999e1129e943042effa38b1f844fe414 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 9 Aug 2022 23:39:14 +0100 Subject: [PATCH 351/377] feat: hooks refactor to use new plugin api Signed-off-by: Kamil Wolny --- .../useGetIssuesBeRepoFromGitHub.test.tsx | 100 ----------- .../src/hooks/useGetIssuesByRepoFromGitHub.ts | 170 +++--------------- .../src/hooks/useOctokitGraphQL.ts | 47 ----- 3 files changed, 20 insertions(+), 297 deletions(-) delete mode 100644 plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx delete mode 100644 plugins/github-issues/src/hooks/useOctokitGraphQL.ts diff --git a/plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx b/plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx deleted file mode 100644 index 547e32db22..0000000000 --- a/plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx +++ /dev/null @@ -1,100 +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. - */ -const mockGraphQLQuery = jest.fn(() => ({})); -jest.mock('./useOctokitGraphQL', () => ({ - useOctokitGraphQL: jest.fn(() => mockGraphQLQuery), -})); - -import React from 'react'; -import { render } from '@testing-library/react'; -import { useGetIssuesByRepoFromGitHub } from './useGetIssuesByRepoFromGitHub'; - -describe('useGetIssuesBeRepoFromGitHub', () => { - it('should call GitHub API with correct query with fragment for each repo', async () => { - const Helper = () => { - const getIssues = useGetIssuesByRepoFromGitHub(); - - getIssues(['mrwolny/yo-yo', 'mrwolny/yoyo', 'mrwolny/yo.yo'], 10); - - return
; - }; - - render(); - - expect(mockGraphQLQuery).toHaveBeenCalledTimes(1); - expect(mockGraphQLQuery).toHaveBeenCalledWith( - '\n' + - ' \n' + - ' fragment issues on Repository {\n' + - ' issues(\n' + - ' states: OPEN\n' + - ' first: 10\n' + - ' orderBy: { field: UPDATED_AT, direction: DESC }\n' + - ' ) {\n' + - ' totalCount\n' + - ' edges {\n' + - ' node {\n' + - ' assignees(first: 10) {\n' + - ' edges {\n' + - ' node {\n' + - ' avatarUrl\n' + - ' login\n' + - ' }\n' + - ' }\n' + - ' }\n' + - ' author {\n' + - ' login\n' + - ' avatarUrl\n' + - ' url\n' + - ' }\n' + - ' repository {\n' + - ' nameWithOwner\n' + - ' }\n' + - ' title\n' + - ' url\n' + - ' participants {\n' + - ' totalCount\n' + - ' }\n' + - ' updatedAt\n' + - ' createdAt\n' + - ' comments(last: 1) {\n' + - ' totalCount\n' + - ' }\n' + - ' }\n' + - ' }\n' + - ' }\n' + - ' }\n' + - ' \n' + - '\n' + - ' query {\n' + - ' \n' + - ' yoyo: repository(name: "yo-yo", owner: "mrwolny") {\n' + - ' ...issues\n' + - ' }\n' + - ' ,\n' + - ' yoyox: repository(name: "yoyo", owner: "mrwolny") {\n' + - ' ...issues\n' + - ' }\n' + - ' ,\n' + - ' yoyoxx: repository(name: "yo.yo", owner: "mrwolny") {\n' + - ' ...issues\n' + - ' }\n' + - ' \n' + - ' } \n' + - ' ', - ); - }); -}); diff --git a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts index 271cd6c741..29e89213dc 100644 --- a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts +++ b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts @@ -13,161 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; -import { useOctokitGraphQL } from './useOctokitGraphQL'; +import { useApi } from '@backstage/core-plugin-api'; -type Assignee = { - avatarUrl: string; - login: string; -}; +import { useAsyncRetry } from 'react-use'; +import { gitHubIssuesApiRef } from '../api'; -export type EdgesWithNodes = { - edges: Array<{ - node: T; - }>; -}; - -export type Node = { - node: T; -}; - -type IssueAuthor = { - login: string; -}; - -export type Issue = { - assignees: EdgesWithNodes; - author: IssueAuthor; - repository: { - nameWithOwner: string; - }; - title: string; - url: string; - participants: { - totalCount: number; - }; - createdAt: string; - updatedAt: string; - comments: { - totalCount: number; - }; -}; - -export type RepoIssues = { - issues: { - totalCount: number; - } & EdgesWithNodes; -}; - -export type RepoIssuesQueryResults = Record; - -const createQuery = ( - repositories: Array<{ - safeName: string; - name: string; - owner: string; - }>, +export const useGetIssuesByRepoFromGitHub = ( + repos: Array, itemsPerRepo: number, -): string => { - const fragment = ` - fragment issues on Repository { - issues( - states: OPEN - first: ${itemsPerRepo} - orderBy: { field: UPDATED_AT, direction: DESC } - ) { - totalCount - edges { - node { - assignees(first: 10) { - edges { - node { - avatarUrl - login - } - } - } - author { - login - avatarUrl - url - } - repository { - nameWithOwner - } - title - url - participants { - totalCount - } - updatedAt - createdAt - comments(last: 1) { - totalCount - } - } - } - } - } - `; +) => { + const gitHubIssuesApi = useApi(gitHubIssuesApiRef); - const query = ` - ${fragment} - - query { - ${repositories.map( - ({ safeName, name, owner }) => ` - ${safeName}: repository(name: "${name}", owner: "${owner}") { - ...issues - } - `, - )} - } - `; - - return query; -}; - -export const useGetIssuesByRepoFromGitHub = () => { - const graphql = useOctokitGraphQL(); - - const fn = React.useRef( - async ( - repos: Array, - itemsPerRepo: number, - ): Promise> => { - const safeNames: Array = []; - - const repositories = repos.map(repo => { - const [owner, name] = repo.split('/'); - - const safeNameRegex = /-|\./gi; - let safeName = name.replace(safeNameRegex, ''); - - while (safeNames.includes(safeName)) { - safeName += 'x'; - } - - safeNames.push(safeName); - - return { - safeName, - name, - owner, - }; - }); - - const issuesByRepo: RepoIssuesQueryResults = await graphql( - createQuery(repositories, itemsPerRepo), + const { + value: issues, + loading: isLoading, + retry, + } = useAsyncRetry(async () => { + if (repos.length > 0) { + return await gitHubIssuesApi.fetchIssuesByRepoFromGitHub( + repos, + itemsPerRepo, ); + } - return repositories.reduce((acc, { safeName, name, owner }) => { - acc[`${owner}/${name}`] = issuesByRepo[safeName]; + return {}; + }, [repos]); - return acc; - }, {} as Record); - }, - ); - - return fn.current; + return { isLoading, gitHubIssuesByRepo: issues, retry }; }; diff --git a/plugins/github-issues/src/hooks/useOctokitGraphQL.ts b/plugins/github-issues/src/hooks/useOctokitGraphQL.ts deleted file mode 100644 index 6b783efd6f..0000000000 --- a/plugins/github-issues/src/hooks/useOctokitGraphQL.ts +++ /dev/null @@ -1,47 +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 { Octokit } from 'octokit'; -import { - useApi, - githubAuthApiRef, - configApiRef, -} from '@backstage/core-plugin-api'; -import { readGitHubIntegrationConfigs } from '@backstage/integration'; - -let octokit: Octokit; - -export const useOctokitGraphQL = () => { - const auth = useApi(githubAuthApiRef); - const config = useApi(configApiRef); - - const baseUrl = readGitHubIntegrationConfigs( - config.getOptionalConfigArray('integrations.github') ?? [], - )[0].apiBaseUrl; - - return (path: string, options?: any): Promise => - auth - .getAccessToken(['repo']) - .then((token: string) => { - if (!octokit) { - octokit = new Octokit({ auth: token, ...(baseUrl && { baseUrl }) }); - } - - return octokit; - }) - .then(octokitInstance => { - return octokitInstance.graphql(path, options); - }); -}; From f9f9aa64f8a394bd0fbe641596631ce81a846e43 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 9 Aug 2022 23:43:17 +0100 Subject: [PATCH 352/377] feat: use refactored hooks in components and component tests for basic rendering of the plugin Signed-off-by: Kamil Wolny --- .../GitHubIssues/GitHubIssues.test.tsx | 127 ++++++++++++++++++ .../components/GitHubIssues/GitHubIssues.tsx | 38 ++---- .../GitHubIssues/IssueCard/IssueCard.tsx | 2 +- .../GitHubIssues/IssuesList/IssuesList.tsx | 9 +- 4 files changed, 142 insertions(+), 34 deletions(-) create mode 100644 plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx new file mode 100644 index 0000000000..7b9d6d87b2 --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx @@ -0,0 +1,127 @@ +/* + * 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, TestApiProvider } from '@backstage/test-utils'; +import { + EntityProvider, + catalogApiRef, + CatalogApi, +} from '@backstage/plugin-catalog-react'; + +import { generateTestIssue } from '../../utils'; +import { GitHubIssuesApi, gitHubIssuesApiRef } from '../../api'; + +import { GitHubIssues } from './GitHubIssues'; +import { Entity } from '@backstage/catalog-model'; + +jest + .useFakeTimers() + .setSystemTime(new Date('2020-04-20T08:15:47.614Z').getTime()); + +const entityComponent = { + metadata: { + annotations: { + 'github.com/project-slug': 'backstage/backstage', + }, + name: 'backstage', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', +} as unknown as Entity; + +const mockCatalogApi = { + getEntities: () => ({}), +} as CatalogApi; + +describe('GitHubIssues', () => { + it('should render correctly when there are no issues in GitHub', async () => { + const mockApi = { + fetchIssuesByRepoFromGitHub: async () => ({ + backstage: { + issues: { + totalCount: 0, + edges: [], + }, + }, + }), + } as GitHubIssuesApi; + + const apis = [ + [gitHubIssuesApiRef, mockApi], + [catalogApiRef, mockCatalogApi], + ] as const; + + const { getByTestId } = await renderInTestApp( + + + + + , + ); + + expect(getByTestId('no-issues-msg')).toHaveTextContent( + 'Hurray! No Issues 🚀', + ); + }); + + it('should render correctly', async () => { + const testIssue = generateTestIssue({ + createdAt: '2020-04-19T10:15:47.614Z', + updatedAt: '2020-04-20T00:15:47.614Z', + }); + + const mockApi = { + fetchIssuesByRepoFromGitHub: async () => ({ + backstage: { + issues: { + totalCount: 1, + edges: [testIssue], + }, + }, + }), + } as GitHubIssuesApi; + const apis = [ + [gitHubIssuesApiRef, mockApi], + [catalogApiRef, mockCatalogApi], + ] as const; + + const { getByText, getByTestId } = await renderInTestApp( + + + + + , + ); + + getByText('All repositories (1 Issue)'); + + expect(getByTestId(`issue-${testIssue.node.url}`)).toHaveTextContent( + testIssue.node.title, + ); + + expect(getByTestId(`issue-${testIssue.node.url}`)).toHaveTextContent( + testIssue.node.repository.nameWithOwner, + ); + + expect(getByTestId(`issue-${testIssue.node.url}`)).toHaveTextContent( + `Created at: 22 hours ago by ${testIssue.node.author.login}`, + ); + + expect(getByTestId(`issue-${testIssue.node.url}`)).toHaveTextContent( + `Last update at: 8 hours ago`, + ); + }); +}); diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx index 5380c8eb22..574c15d3b3 100644 --- a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx @@ -20,12 +20,9 @@ import { InfoCard, Progress } from '@backstage/core-components'; import RefreshIcon from '@material-ui/icons/Refresh'; import { useEntityGitHubRepositories } from '../../hooks/useEntityGitHubRepositories'; -import { - RepoIssues, - useGetIssuesByRepoFromGitHub, -} from '../../hooks/useGetIssuesByRepoFromGitHub'; +import { useGetIssuesByRepoFromGitHub } from '../../hooks/useGetIssuesByRepoFromGitHub'; -import { IssueList } from './IssuesList'; +import { IssuesList } from './IssuesList'; import { NoRepositoriesInfo } from './NoRepositoriesInfo'; /** @@ -39,29 +36,12 @@ export type GitHubIssuesProps = { export const GitHubIssues = (props: GitHubIssuesProps) => { const { itemsPerPage = 10, itemsPerRepo = 40 } = props; - const [isLoading, setIsLoading] = React.useState(true); - - const [issuesByRepository, setIssuesByRepository] = - React.useState>(); - const { repositories } = useEntityGitHubRepositories(); - const getIssues = useGetIssuesByRepoFromGitHub(); - - const fetchGitHubIssues = React.useCallback(async () => { - setIsLoading(true); - const issuesByRepo = await getIssues(repositories, itemsPerRepo); - - setIssuesByRepository(issuesByRepo); - setIsLoading(false); - }, [itemsPerRepo, getIssues, repositories]); - - React.useEffect(() => { - if (repositories.length) { - fetchGitHubIssues(); - } else { - setIsLoading(false); - } - }, [repositories.length, fetchGitHubIssues]); + const { + isLoading, + gitHubIssuesByRepo: issuesByRepository, + retry, + } = useGetIssuesByRepoFromGitHub(repositories, itemsPerRepo); if (!repositories.length) { return ; @@ -72,7 +52,7 @@ export const GitHubIssues = (props: GitHubIssuesProps) => { title={ Open GitHub Issues - + @@ -80,7 +60,7 @@ export const GitHubIssues = (props: GitHubIssuesProps) => { > {isLoading && } - diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx b/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx index 95658fb343..ccf30a9a84 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx @@ -59,7 +59,7 @@ export const IssueCard = (props: IssueCardProps) => { } = props; return ( - + diff --git a/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx b/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx index f279294928..b46eab22b6 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx @@ -19,14 +19,14 @@ import { Box } from '@material-ui/core'; import { Pagination } from '@material-ui/lab'; import { IssueCard } from '../IssueCard'; -import { RepoIssues } from '../../../hooks/useGetIssuesByRepoFromGitHub'; +import { IssuesByRepo } from '../../../api'; import { RepositoryFilters } from './Filters'; export type PluginMode = 'page' | 'card'; export type IssueListProps = { itemsPerPage?: number; - issuesByRepository?: Record; + issuesByRepository?: IssuesByRepo; }; const getIssuesCountForFilterLabel = ( @@ -37,7 +37,7 @@ const getIssuesCountForFilterLabel = ( issuesAvailable < totalIssues ? '*' : '' }`; -export const IssueList = ({ +export const IssuesList = ({ itemsPerPage = 10, issuesByRepository, }: IssueListProps) => { @@ -140,6 +140,7 @@ export const IssueList = ({ index, ) => ( Hurray! No Issues 🚀 +

Hurray! No Issues 🚀

)} {issues.length / itemsPerPage > 1 ? ( Date: Tue, 9 Aug 2022 23:46:18 +0100 Subject: [PATCH 353/377] feat: add basic plugin render page with mocked data for standalon local developement Signed-off-by: Kamil Wolny --- plugins/github-issues/dev/index.tsx | 83 +++++++++++++++++++++++++++++ plugins/github-issues/src/index.ts | 2 + 2 files changed, 85 insertions(+) create mode 100644 plugins/github-issues/dev/index.tsx diff --git a/plugins/github-issues/dev/index.tsx b/plugins/github-issues/dev/index.tsx new file mode 100644 index 0000000000..c214334780 --- /dev/null +++ b/plugins/github-issues/dev/index.tsx @@ -0,0 +1,83 @@ +/* + * Copyright 2021 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 { createDevApp } from '@backstage/dev-utils'; +import { + CatalogApi, + catalogApiRef, + EntityProvider, +} from '@backstage/plugin-catalog-react'; + +import { + gitHubIssuesPlugin, + GitHubIssuesPage, + GitHubIssuesApi, + gitHubIssuesApiRef, + IssuesByRepo, +} from '../src'; +import { generateTestIssue } from '../src/utils'; + +const response: IssuesByRepo = { + backstage: { + issues: { + totalCount: 464, + edges: Array.from(Array(40)).map(() => + generateTestIssue({ + repository: { nameWithOwner: 'backstage/backstage' }, + }), + ), + }, + }, +}; + +createDevApp() + .registerPlugin(gitHubIssuesPlugin) + .registerApi({ + api: gitHubIssuesApiRef, + deps: {}, + factory: () => + ({ + fetchIssuesByRepoFromGitHub: async () => response, + } as GitHubIssuesApi), + }) + .registerApi({ + api: catalogApiRef, + deps: {}, + factory: () => + ({ + getEntities: () => ({}), + } as CatalogApi), + }) + .addPage({ + title: 'Component Issues', + element: ( + + + + ), + }) + .render(); diff --git a/plugins/github-issues/src/index.ts b/plugins/github-issues/src/index.ts index 5f6c248db7..d69719d136 100644 --- a/plugins/github-issues/src/index.ts +++ b/plugins/github-issues/src/index.ts @@ -19,4 +19,6 @@ export { GitHubIssuesCard, } from './plugin'; +export * from './api'; + export type { GitHubIssuesProps } from './components/GitHubIssues'; From 347ea327c2f015593dc78da8290d9a07d460c33e Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Wed, 10 Aug 2022 09:24:12 +0100 Subject: [PATCH 354/377] feat: changeset added Signed-off-by: Kamil Wolny --- .changeset/gold-dots-search.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/gold-dots-search.md diff --git a/.changeset/gold-dots-search.md b/.changeset/gold-dots-search.md new file mode 100644 index 0000000000..e2a679dff7 --- /dev/null +++ b/.changeset/gold-dots-search.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-github-issues': patch +--- + +Moved communication with GitHub graphql API to the dedicated plugin API. +Fixes issue when no GitHub Issues are rendered when partial failure is returned from GitHub API. From 9e64dd3032c35708adf5db8272716b274ba394ab Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Wed, 10 Aug 2022 10:14:45 +0100 Subject: [PATCH 355/377] feat: fix plugin api report Signed-off-by: Kamil Wolny --- plugins/github-issues/api-report.md | 74 +++++++++++++++++++ .../github-issues/src/api/gitHubIssuesApi.ts | 16 +++- 2 files changed, 87 insertions(+), 3 deletions(-) diff --git a/plugins/github-issues/api-report.md b/plugins/github-issues/api-report.md index eb69fc8e8e..9852ec80c9 100644 --- a/plugins/github-issues/api-report.md +++ b/plugins/github-issues/api-report.md @@ -5,9 +5,49 @@ ```ts /// +import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { ConfigApi } from '@backstage/core-plugin-api'; +import { ErrorApi } from '@backstage/core-plugin-api'; +import { OAuthApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; +// @public (undocumented) +export type Assignee = { + avatarUrl: string; + login: string; +}; + +// @public (undocumented) +export type EdgesWithNodes = { + edges: Array<{ + node: T; + }>; +}; + +// @public (undocumented) +export type GitHubIssuesApi = ReturnType; + +// @public (undocumented) +export const gitHubIssuesApi: ( + githubAuthApi: OAuthApi, + configApi: ConfigApi, + errorApi: ErrorApi, +) => { + fetchIssuesByRepoFromGitHub: ( + repos: Array, + itemsPerRepo: number, + ) => Promise; +}; + +// @public (undocumented) +export const gitHubIssuesApiRef: ApiRef<{ + fetchIssuesByRepoFromGitHub: ( + repos: Array, + itemsPerRepo: number, + ) => Promise; +}>; + // @public (undocumented) export const GitHubIssuesCard: (props: GitHubIssuesProps) => JSX.Element; @@ -29,5 +69,39 @@ export type GitHubIssuesProps = { itemsPerRepo?: number; }; +// @public (undocumented) +export type Issue = { + assignees: EdgesWithNodes; + author: IssueAuthor; + repository: { + nameWithOwner: string; + }; + title: string; + url: string; + participants: { + totalCount: number; + }; + createdAt: string; + updatedAt: string; + comments: { + totalCount: number; + }; +}; + +// @public (undocumented) +export type IssueAuthor = { + login: string; +}; + +// @public (undocumented) +export type IssuesByRepo = Record; + +// @public (undocumented) +export type RepoIssues = { + issues: { + totalCount: number; + } & EdgesWithNodes; +}; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/github-issues/src/api/gitHubIssuesApi.ts b/plugins/github-issues/src/api/gitHubIssuesApi.ts index 06fdf3d452..2fea0dd759 100644 --- a/plugins/github-issues/src/api/gitHubIssuesApi.ts +++ b/plugins/github-issues/src/api/gitHubIssuesApi.ts @@ -23,21 +23,25 @@ import { import { readGitHubIntegrationConfigs } from '@backstage/integration'; import { ForwardedError } from '@backstage/errors'; -type Assignee = { +/** @public */ +export type Assignee = { avatarUrl: string; login: string; }; -type EdgesWithNodes = { +/** @public */ +export type EdgesWithNodes = { edges: Array<{ node: T; }>; }; -type IssueAuthor = { +/** @public */ +export type IssueAuthor = { login: string; }; +/** @public */ export type Issue = { assignees: EdgesWithNodes; author: IssueAuthor; @@ -56,19 +60,25 @@ export type Issue = { }; }; +/** @public */ export type RepoIssues = { issues: { totalCount: number; } & EdgesWithNodes; }; + +/** @public */ export type IssuesByRepo = Record; +/** @public */ export type GitHubIssuesApi = ReturnType; +/** @public */ export const gitHubIssuesApiRef = createApiRef({ id: 'plugin.githubissues.service', }); +/** @public */ export const gitHubIssuesApi = ( githubAuthApi: OAuthApi, configApi: ConfigApi, From eb23e4b36298d66db8ad3bcc076c887e0f099254 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Wed, 10 Aug 2022 10:15:27 +0100 Subject: [PATCH 356/377] fix: fix the react-use import to mitigate ts error Signed-off-by: Kamil Wolny --- plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts index 29e89213dc..8d1d0c2056 100644 --- a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts +++ b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts @@ -15,7 +15,7 @@ */ import { useApi } from '@backstage/core-plugin-api'; -import { useAsyncRetry } from 'react-use'; +import useAsyncRetry from 'react-use/lib/useAsyncRetry'; import { gitHubIssuesApiRef } from '../api'; export const useGetIssuesByRepoFromGitHub = ( From 07096fa8432088ba9109d97e6abe7c55052ee519 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Wed, 10 Aug 2022 17:14:21 +0100 Subject: [PATCH 357/377] feat: make plugin api internal Signed-off-by: Kamil Wolny --- plugins/github-issues/api-report.md | 74 ------------------- .../github-issues/src/api/gitHubIssuesApi.ts | 18 ++--- 2 files changed, 9 insertions(+), 83 deletions(-) diff --git a/plugins/github-issues/api-report.md b/plugins/github-issues/api-report.md index 9852ec80c9..eb69fc8e8e 100644 --- a/plugins/github-issues/api-report.md +++ b/plugins/github-issues/api-report.md @@ -5,49 +5,9 @@ ```ts /// -import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { ConfigApi } from '@backstage/core-plugin-api'; -import { ErrorApi } from '@backstage/core-plugin-api'; -import { OAuthApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; -// @public (undocumented) -export type Assignee = { - avatarUrl: string; - login: string; -}; - -// @public (undocumented) -export type EdgesWithNodes = { - edges: Array<{ - node: T; - }>; -}; - -// @public (undocumented) -export type GitHubIssuesApi = ReturnType; - -// @public (undocumented) -export const gitHubIssuesApi: ( - githubAuthApi: OAuthApi, - configApi: ConfigApi, - errorApi: ErrorApi, -) => { - fetchIssuesByRepoFromGitHub: ( - repos: Array, - itemsPerRepo: number, - ) => Promise; -}; - -// @public (undocumented) -export const gitHubIssuesApiRef: ApiRef<{ - fetchIssuesByRepoFromGitHub: ( - repos: Array, - itemsPerRepo: number, - ) => Promise; -}>; - // @public (undocumented) export const GitHubIssuesCard: (props: GitHubIssuesProps) => JSX.Element; @@ -69,39 +29,5 @@ export type GitHubIssuesProps = { itemsPerRepo?: number; }; -// @public (undocumented) -export type Issue = { - assignees: EdgesWithNodes; - author: IssueAuthor; - repository: { - nameWithOwner: string; - }; - title: string; - url: string; - participants: { - totalCount: number; - }; - createdAt: string; - updatedAt: string; - comments: { - totalCount: number; - }; -}; - -// @public (undocumented) -export type IssueAuthor = { - login: string; -}; - -// @public (undocumented) -export type IssuesByRepo = Record; - -// @public (undocumented) -export type RepoIssues = { - issues: { - totalCount: number; - } & EdgesWithNodes; -}; - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/github-issues/src/api/gitHubIssuesApi.ts b/plugins/github-issues/src/api/gitHubIssuesApi.ts index 2fea0dd759..816345940c 100644 --- a/plugins/github-issues/src/api/gitHubIssuesApi.ts +++ b/plugins/github-issues/src/api/gitHubIssuesApi.ts @@ -23,25 +23,25 @@ import { import { readGitHubIntegrationConfigs } from '@backstage/integration'; import { ForwardedError } from '@backstage/errors'; -/** @public */ +/** @internal */ export type Assignee = { avatarUrl: string; login: string; }; -/** @public */ +/** @internal */ export type EdgesWithNodes = { edges: Array<{ node: T; }>; }; -/** @public */ +/** @internal */ export type IssueAuthor = { login: string; }; -/** @public */ +/** @internal */ export type Issue = { assignees: EdgesWithNodes; author: IssueAuthor; @@ -60,25 +60,25 @@ export type Issue = { }; }; -/** @public */ +/** @internal */ export type RepoIssues = { issues: { totalCount: number; } & EdgesWithNodes; }; -/** @public */ +/** @internal */ export type IssuesByRepo = Record; -/** @public */ +/** @internal */ export type GitHubIssuesApi = ReturnType; -/** @public */ +/** @internal */ export const gitHubIssuesApiRef = createApiRef({ id: 'plugin.githubissues.service', }); -/** @public */ +/** @internal */ export const gitHubIssuesApi = ( githubAuthApi: OAuthApi, configApi: ConfigApi, From f9a16edaf3e136246bbdafa613417759aa8d4e8a Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 12 Aug 2022 13:16:37 +0100 Subject: [PATCH 358/377] feat: remove traces of plugin api + moved faker to dev deps Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 3 ++- plugins/github-issues/src/index.ts | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 98434ce748..21693740c7 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -29,7 +29,6 @@ "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", - "@faker-js/faker": "^7.4.0", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", @@ -45,6 +44,8 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", + "@faker-js/faker": "^7.4.0", + "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/github-issues/src/index.ts b/plugins/github-issues/src/index.ts index d69719d136..5f6c248db7 100644 --- a/plugins/github-issues/src/index.ts +++ b/plugins/github-issues/src/index.ts @@ -19,6 +19,4 @@ export { GitHubIssuesCard, } from './plugin'; -export * from './api'; - export type { GitHubIssuesProps } from './components/GitHubIssues'; From 5e615bf99cd7cc7660515717a021536830a6123e Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 12 Aug 2022 14:26:22 +0100 Subject: [PATCH 359/377] feat: fix local dev environment Signed-off-by: Kamil Wolny --- plugins/github-issues/dev/index.tsx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/plugins/github-issues/dev/index.tsx b/plugins/github-issues/dev/index.tsx index c214334780..57fd1a86e0 100644 --- a/plugins/github-issues/dev/index.tsx +++ b/plugins/github-issues/dev/index.tsx @@ -21,13 +21,9 @@ import { EntityProvider, } from '@backstage/plugin-catalog-react'; -import { - gitHubIssuesPlugin, - GitHubIssuesPage, - GitHubIssuesApi, - gitHubIssuesApiRef, - IssuesByRepo, -} from '../src'; +import { gitHubIssuesPlugin, GitHubIssuesPage } from '../src'; +import { GitHubIssuesApi, gitHubIssuesApiRef, IssuesByRepo } from '../src/api'; + import { generateTestIssue } from '../src/utils'; const response: IssuesByRepo = { From 824f8dcce071abd224b8178465af1a1ec88cf24a Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Mon, 15 Aug 2022 09:15:06 +0100 Subject: [PATCH 360/377] feat: move faker to regular deps of github issues plugin Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 21693740c7..d7accb907e 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -29,6 +29,7 @@ "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", + "@faker-js/faker": "^7.4.0", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", @@ -44,7 +45,6 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", - "@faker-js/faker": "^7.4.0", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", From f6fb510ec4ab9162bd9b0d6de5a07493da358e7d Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Mon, 15 Aug 2022 12:09:37 +0100 Subject: [PATCH 361/377] feat: faker as dev dependency + use static json as test data for the local dev Signed-off-by: Kamil Wolny --- .../__fixtures__/component-issues-data.json | 1209 +++++++++++++++++ plugins/github-issues/dev/index.tsx | 19 +- plugins/github-issues/package.json | 2 +- 3 files changed, 1213 insertions(+), 17 deletions(-) create mode 100644 plugins/github-issues/dev/__fixtures__/component-issues-data.json diff --git a/plugins/github-issues/dev/__fixtures__/component-issues-data.json b/plugins/github-issues/dev/__fixtures__/component-issues-data.json new file mode 100644 index 0000000000..8192f38838 --- /dev/null +++ b/plugins/github-issues/dev/__fixtures__/component-issues-data.json @@ -0,0 +1,1209 @@ +{ + "backstage": { + "issues": { + "totalCount": 464, + "edges": [ + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1112.jpg", + "login": "worthless-horse" + } + } + ] + }, + "author": { + "login": "next-dog" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "quasi labore qui", + "url": "http://flowery-muscatel.net", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2022-05-02T09:46:35.885Z", + "createdAt": "2022-06-03T07:11:22.320Z", + "comments": { + "totalCount": 6 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1061.jpg", + "login": "colorful-bird" + } + } + ] + }, + "author": { + "login": "loud-cow" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "debitis alias voluptatem", + "url": "https://complete-grief.biz", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-05-04T19:44:01.090Z", + "createdAt": "2022-02-21T08:07:57.434Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1222.jpg", + "login": "sharp-cetacean" + } + } + ] + }, + "author": { + "login": "growing-dog" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "non accusamus occaecati", + "url": "http://medium-choosing.com", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2021-10-28T00:36:58.871Z", + "createdAt": "2021-11-08T02:21:55.269Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/513.jpg", + "login": "crafty-crocodilia" + } + } + ] + }, + "author": { + "login": "wooden-crocodilia" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "tenetur distinctio sint", + "url": "http://opulent-prejudice.biz", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-08-10T19:22:08.823Z", + "createdAt": "2022-02-21T06:24:45.090Z", + "comments": { + "totalCount": 7 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/785.jpg", + "login": "genuine-cow" + } + } + ] + }, + "author": { + "login": "likely-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "eveniet sed nesciunt", + "url": "http://flickering-atmosphere.com", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-02-26T15:54:42.831Z", + "createdAt": "2022-02-13T14:52:35.327Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/503.jpg", + "login": "imaginary-lion" + } + } + ] + }, + "author": { + "login": "lame-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "saepe sequi dolore", + "url": "https://short-term-broccoli.org", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2021-10-11T01:31:28.508Z", + "createdAt": "2022-04-11T12:41:01.234Z", + "comments": { + "totalCount": 3 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/590.jpg", + "login": "funny-snake" + } + } + ] + }, + "author": { + "login": "hollow-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "enim quia magni", + "url": "https://scornful-servant.name", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-03-05T19:19:15.147Z", + "createdAt": "2022-03-13T09:25:35.802Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/588.jpg", + "login": "zigzag-bear" + } + } + ] + }, + "author": { + "login": "growling-cow" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "omnis ut nostrum", + "url": "https://worthy-minority.net", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2021-08-18T19:21:40.603Z", + "createdAt": "2022-06-04T16:06:26.277Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1134.jpg", + "login": "composed-lion" + } + } + ] + }, + "author": { + "login": "overjoyed-crocodilia" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sit est corrupti", + "url": "http://vital-armpit.com", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2022-07-26T22:13:34.123Z", + "createdAt": "2022-02-28T17:59:42.677Z", + "comments": { + "totalCount": 3 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/802.jpg", + "login": "sarcastic-bear" + } + } + ] + }, + "author": { + "login": "utilized-insect" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "illo perferendis suscipit", + "url": "http://snappy-skywalk.info", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2021-10-02T21:22:35.070Z", + "createdAt": "2021-10-25T11:36:35.561Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/232.jpg", + "login": "pristine-cow" + } + } + ] + }, + "author": { + "login": "adorable-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "assumenda nostrum aut", + "url": "http://loud-legend.info", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-06-16T22:45:23.107Z", + "createdAt": "2022-05-23T01:10:35.755Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/652.jpg", + "login": "wrong-insect" + } + } + ] + }, + "author": { + "login": "grizzled-cow" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "qui magnam dolorem", + "url": "http://exhausted-horn.org", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2021-12-18T18:46:10.828Z", + "createdAt": "2022-03-27T06:42:04.192Z", + "comments": { + "totalCount": 7 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/838.jpg", + "login": "humming-cow" + } + } + ] + }, + "author": { + "login": "profuse-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "nostrum numquam porro", + "url": "https://unusual-reaction.org", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-05-11T15:14:57.433Z", + "createdAt": "2022-05-06T10:48:16.946Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/573.jpg", + "login": "prime-cow" + } + } + ] + }, + "author": { + "login": "forthright-lion" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "in inventore pariatur", + "url": "https://cheery-accord.info", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2022-06-30T16:22:46.819Z", + "createdAt": "2022-05-11T12:37:36.848Z", + "comments": { + "totalCount": 6 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1143.jpg", + "login": "limp-bear" + } + } + ] + }, + "author": { + "login": "faraway-rabbit" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "et dolores eaque", + "url": "http://overjoyed-former.info", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2022-04-19T15:14:58.698Z", + "createdAt": "2022-04-28T23:15:49.918Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/347.jpg", + "login": "same-insect" + } + } + ] + }, + "author": { + "login": "smoggy-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "vel error numquam", + "url": "http://submissive-ladder.org", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2021-12-19T23:43:44.987Z", + "createdAt": "2022-01-04T11:52:01.233Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/951.jpg", + "login": "round-dog" + } + } + ] + }, + "author": { + "login": "humming-cetacean" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "doloribus asperiores occaecati", + "url": "http://webbed-underclothes.biz", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2022-04-19T07:07:21.270Z", + "createdAt": "2022-04-20T10:41:00.681Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1123.jpg", + "login": "tepid-cat" + } + } + ] + }, + "author": { + "login": "colossal-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "reiciendis illum quos", + "url": "http://rusty-repeat.com", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-08-04T06:35:11.880Z", + "createdAt": "2022-07-16T15:11:56.116Z", + "comments": { + "totalCount": 7 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1068.jpg", + "login": "grown-cat" + } + } + ] + }, + "author": { + "login": "superficial-lion" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "tempore et sequi", + "url": "https://defenseless-signal.info", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2022-03-12T10:17:20.598Z", + "createdAt": "2022-05-31T20:12:43.316Z", + "comments": { + "totalCount": 7 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/468.jpg", + "login": "blissful-horse" + } + } + ] + }, + "author": { + "login": "positive-insect" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "aut minima odit", + "url": "https://well-groomed-octave.biz", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2021-08-20T21:00:05.294Z", + "createdAt": "2022-04-11T23:51:45.727Z", + "comments": { + "totalCount": 9 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1044.jpg", + "login": "crowded-bird" + } + } + ] + }, + "author": { + "login": "unlined-horse" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "aut sunt quisquam", + "url": "https://realistic-student.com", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2021-11-07T11:13:39.158Z", + "createdAt": "2022-01-30T19:35:35.546Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/691.jpg", + "login": "loathsome-insect" + } + } + ] + }, + "author": { + "login": "kooky-crocodilia" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "reprehenderit non eos", + "url": "https://alert-testimony.net", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2022-04-24T16:34:36.616Z", + "createdAt": "2021-11-01T21:35:35.900Z", + "comments": { + "totalCount": 5 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/691.jpg", + "login": "dear-insect" + } + } + ] + }, + "author": { + "login": "wavy-bear" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "quis in earum", + "url": "https://radiant-posterior.net", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2021-09-26T08:50:55.755Z", + "createdAt": "2022-04-10T00:03:40.290Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/952.jpg", + "login": "prestigious-cat" + } + } + ] + }, + "author": { + "login": "quick-cetacean" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sed ut exercitationem", + "url": "https://portly-clasp.name", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2022-04-06T03:04:16.077Z", + "createdAt": "2022-01-14T10:22:19.619Z", + "comments": { + "totalCount": 5 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/768.jpg", + "login": "fatal-cetacean" + } + } + ] + }, + "author": { + "login": "pricey-dog" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "voluptas error sunt", + "url": "http://second-outcome.info", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2021-08-19T20:35:40.281Z", + "createdAt": "2021-10-02T12:24:16.983Z", + "comments": { + "totalCount": 6 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/283.jpg", + "login": "double-fish" + } + } + ] + }, + "author": { + "login": "liquid-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sed reprehenderit sunt", + "url": "https://playful-fibrosis.com", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-05-24T19:35:19.804Z", + "createdAt": "2022-04-04T20:15:10.303Z", + "comments": { + "totalCount": 3 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/38.jpg", + "login": "separate-cat" + } + } + ] + }, + "author": { + "login": "jolly-bear" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "accusantium cupiditate et", + "url": "http://lined-flood.biz", + "participants": { + "totalCount": 9 + }, + "updatedAt": "2022-01-23T15:45:04.503Z", + "createdAt": "2021-11-29T07:20:44.372Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/410.jpg", + "login": "yummy-dog" + } + } + ] + }, + "author": { + "login": "pesky-bear" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "eum molestiae accusantium", + "url": "http://vast-grub.biz", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-05-24T12:02:33.225Z", + "createdAt": "2022-02-26T14:40:38.285Z", + "comments": { + "totalCount": 5 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/186.jpg", + "login": "unique-cow" + } + } + ] + }, + "author": { + "login": "remorseful-horse" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "ea eligendi dolore", + "url": "http://mammoth-wick.biz", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-07-02T12:23:03.701Z", + "createdAt": "2022-06-30T03:56:08.273Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/605.jpg", + "login": "soft-insect" + } + } + ] + }, + "author": { + "login": "vengeful-fish" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "eum in esse", + "url": "https://immaculate-liability.info", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2022-06-14T02:40:34.008Z", + "createdAt": "2022-04-07T14:46:48.442Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/916.jpg", + "login": "wretched-cow" + } + } + ] + }, + "author": { + "login": "popular-insect" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "est voluptatem molestiae", + "url": "http://venerated-chocolate.biz", + "participants": { + "totalCount": 1 + }, + "updatedAt": "2021-10-08T18:02:11.052Z", + "createdAt": "2021-09-28T09:48:13.138Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/218.jpg", + "login": "flawless-dog" + } + } + ] + }, + "author": { + "login": "made-up-lion" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sunt atque corrupti", + "url": "https://secondary-flight.biz", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2021-12-31T07:36:01.831Z", + "createdAt": "2022-03-29T20:52:30.083Z", + "comments": { + "totalCount": 6 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1099.jpg", + "login": "nervous-dog" + } + } + ] + }, + "author": { + "login": "inconsequential-cat" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "vel quo nam", + "url": "https://third-week.info", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-03-06T07:42:44.049Z", + "createdAt": "2021-08-16T14:34:09.635Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/688.jpg", + "login": "dark-dog" + } + } + ] + }, + "author": { + "login": "modest-rabbit" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "rerum non nam", + "url": "http://complete-registry.net", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-05-04T02:09:20.355Z", + "createdAt": "2022-06-08T12:23:09.380Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/489.jpg", + "login": "blond-insect" + } + } + ] + }, + "author": { + "login": "terrible-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "accusamus quis non", + "url": "https://rosy-childhood.com", + "participants": { + "totalCount": 6 + }, + "updatedAt": "2021-12-14T12:46:15.628Z", + "createdAt": "2022-02-19T00:45:57.573Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1094.jpg", + "login": "creative-bird" + } + } + ] + }, + "author": { + "login": "grotesque-dog" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "consectetur id et", + "url": "http://some-innocent.info", + "participants": { + "totalCount": 8 + }, + "updatedAt": "2021-11-27T11:12:58.067Z", + "createdAt": "2021-12-10T00:15:14.640Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/583.jpg", + "login": "drab-horse" + } + } + ] + }, + "author": { + "login": "acceptable-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "ipsum beatae voluptas", + "url": "https://faithful-down.info", + "participants": { + "totalCount": 6 + }, + "updatedAt": "2022-08-13T17:03:33.381Z", + "createdAt": "2021-10-05T11:26:39.392Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/578.jpg", + "login": "esteemed-bird" + } + } + ] + }, + "author": { + "login": "cultured-fish" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "odio perferendis maxime", + "url": "https://minty-tactics.info", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2022-01-25T02:14:59.148Z", + "createdAt": "2021-09-23T04:02:15.225Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/917.jpg", + "login": "quiet-bear" + } + } + ] + }, + "author": { + "login": "ill-fated-lion" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sed enim laudantium", + "url": "https://welcome-provider.org", + "participants": { + "totalCount": 6 + }, + "updatedAt": "2022-02-24T23:08:19.320Z", + "createdAt": "2021-09-13T03:10:39.303Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/973.jpg", + "login": "portly-crocodilia" + } + } + ] + }, + "author": { + "login": "antique-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "enim accusamus consequuntur", + "url": "http://shady-impudence.net", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2021-12-04T05:35:50.780Z", + "createdAt": "2021-12-21T11:44:33.940Z", + "comments": { + "totalCount": 9 + } + } + } + ] + } + } +} diff --git a/plugins/github-issues/dev/index.tsx b/plugins/github-issues/dev/index.tsx index 57fd1a86e0..a5f20ab9b9 100644 --- a/plugins/github-issues/dev/index.tsx +++ b/plugins/github-issues/dev/index.tsx @@ -22,22 +22,9 @@ import { } from '@backstage/plugin-catalog-react'; import { gitHubIssuesPlugin, GitHubIssuesPage } from '../src'; -import { GitHubIssuesApi, gitHubIssuesApiRef, IssuesByRepo } from '../src/api'; +import { GitHubIssuesApi, gitHubIssuesApiRef } from '../src/api'; -import { generateTestIssue } from '../src/utils'; - -const response: IssuesByRepo = { - backstage: { - issues: { - totalCount: 464, - edges: Array.from(Array(40)).map(() => - generateTestIssue({ - repository: { nameWithOwner: 'backstage/backstage' }, - }), - ), - }, - }, -}; +import testData from './__fixtures__/component-issues-data.json'; createDevApp() .registerPlugin(gitHubIssuesPlugin) @@ -46,7 +33,7 @@ createDevApp() deps: {}, factory: () => ({ - fetchIssuesByRepoFromGitHub: async () => response, + fetchIssuesByRepoFromGitHub: async () => testData, } as GitHubIssuesApi), }) .registerApi({ diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index d7accb907e..21693740c7 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -29,7 +29,6 @@ "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", - "@faker-js/faker": "^7.4.0", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", @@ -45,6 +44,7 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", + "@faker-js/faker": "^7.4.0", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", From 87649a06bfc38d39646117f4e5f80cd3ddf9d724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 15 Aug 2022 13:14:03 +0200 Subject: [PATCH 362/377] Add note about fetchApi not being suitable for sign-in page use MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/sweet-apricots-kneel.md | 5 +++++ packages/core-plugin-api/src/apis/definitions/FetchApi.ts | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changeset/sweet-apricots-kneel.md diff --git a/.changeset/sweet-apricots-kneel.md b/.changeset/sweet-apricots-kneel.md new file mode 100644 index 0000000000..1a114ec4ae --- /dev/null +++ b/.changeset/sweet-apricots-kneel.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-plugin-api': patch +--- + +Add a note that the `fetchApi` utility should not be used on sign-in page implementations and similar. diff --git a/packages/core-plugin-api/src/apis/definitions/FetchApi.ts b/packages/core-plugin-api/src/apis/definitions/FetchApi.ts index b1a4dbbd0b..aba0e53bb7 100644 --- a/packages/core-plugin-api/src/apis/definitions/FetchApi.ts +++ b/packages/core-plugin-api/src/apis/definitions/FetchApi.ts @@ -37,6 +37,13 @@ export type FetchApi = { * This is a wrapper for the fetch API, that has additional behaviors such as * the ability to automatically inject auth information where necessary. * + * Note that the default behavior of this API (unless overridden by your org), + * is to require that the user is already signed in so that it has auth + * information to inject. Therefore, using the default implementation of this + * utility API e.g. on the `SignInPage` or similar, would cause issues. In + * special circumstances like those, you can use the regular system `fetch` + * instead. + * * @public */ export const fetchApiRef: ApiRef = createApiRef({ From ebde1274c8272b228c60132aebc62cf9c639d010 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Mon, 15 Aug 2022 12:35:49 +0100 Subject: [PATCH 363/377] feat: moved generating test issues code to the test file Signed-off-by: Kamil Wolny --- .../GitHubIssues/GitHubIssues.test.tsx | 42 +++++++++++++-- .../src/utils/generateTestIssue.ts | 53 ------------------- plugins/github-issues/src/utils/index.ts | 16 ------ 3 files changed, 39 insertions(+), 72 deletions(-) delete mode 100644 plugins/github-issues/src/utils/generateTestIssue.ts delete mode 100644 plugins/github-issues/src/utils/index.ts diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx index 7b9d6d87b2..c8486d3d70 100644 --- a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx @@ -20,12 +20,48 @@ import { catalogApiRef, CatalogApi, } from '@backstage/plugin-catalog-react'; +import { faker } from '@faker-js/faker'; +import { Entity } from '@backstage/catalog-model'; -import { generateTestIssue } from '../../utils'; -import { GitHubIssuesApi, gitHubIssuesApiRef } from '../../api'; +import { GitHubIssuesApi, gitHubIssuesApiRef, Issue } from '../../api'; import { GitHubIssues } from './GitHubIssues'; -import { Entity } from '@backstage/catalog-model'; + +const generateTestIssue = ( + overwrites: Partial = {}, +): { node: Issue } => ({ + node: { + ...{ + assignees: { + edges: [ + { + node: { + avatarUrl: faker.internet.avatar(), + login: `${faker.word.adjective()}-${faker.animal.type()}`, + }, + }, + ], + }, + author: { + login: `${faker.word.adjective()}-${faker.animal.type()}`, + }, + repository: { + nameWithOwner: `${faker.animal.type()}/${faker.animal.type()}`, + }, + title: faker.lorem.words(3), + url: faker.internet.url(), + participants: { + totalCount: +faker.random.numeric(), + }, + updatedAt: faker.date.past().toISOString(), + createdAt: faker.date.past().toISOString(), + comments: { + totalCount: +faker.random.numeric(), + }, + }, + ...overwrites, + }, +}); jest .useFakeTimers() diff --git a/plugins/github-issues/src/utils/generateTestIssue.ts b/plugins/github-issues/src/utils/generateTestIssue.ts deleted file mode 100644 index a07c8dfc57..0000000000 --- a/plugins/github-issues/src/utils/generateTestIssue.ts +++ /dev/null @@ -1,53 +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 { faker } from '@faker-js/faker'; -import { Issue } from '../api'; - -export const generateTestIssue = ( - overwrites: Partial = {}, -): { node: Issue } => ({ - node: { - ...{ - assignees: { - edges: [ - { - node: { - avatarUrl: faker.internet.avatar(), - login: `${faker.word.adjective()}-${faker.animal.type()}`, - }, - }, - ], - }, - author: { - login: `${faker.word.adjective()}-${faker.animal.type()}`, - }, - repository: { - nameWithOwner: `${faker.animal.type()}/${faker.animal.type()}`, - }, - title: faker.lorem.words(3), - url: faker.internet.url(), - participants: { - totalCount: +faker.random.numeric(), - }, - updatedAt: faker.date.past().toISOString(), - createdAt: faker.date.past().toISOString(), - comments: { - totalCount: +faker.random.numeric(), - }, - }, - ...overwrites, - }, -}); diff --git a/plugins/github-issues/src/utils/index.ts b/plugins/github-issues/src/utils/index.ts deleted file mode 100644 index 16740dac94..0000000000 --- a/plugins/github-issues/src/utils/index.ts +++ /dev/null @@ -1,16 +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. - */ -export * from './generateTestIssue'; From c508f92c9fbbc82badc44f5ddd8f99c9d57fbe92 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 12:46:56 +0000 Subject: [PATCH 364/377] fix(deps): update dependency eslint-plugin-jest to v26.8.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f8d31be28f..ad1d57c260 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12937,9 +12937,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.14.1" eslint-plugin-jest@^26.1.2: - version "26.8.2" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.2.tgz#42a1248a5ade2bc589eb0f9c4e0608dd89b18cf3" - integrity sha512-67oh0FKaku9y48OpLzL3uK9ckrgLb83Sp5gxxTbtOGDw9lq6D8jw/Psj/9CipkbK406I2M7mvx1q+pv/MdbvxA== + version "26.8.3" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.3.tgz#f5d9bb162636491c8f6f0cd2743fe67c86569338" + integrity sha512-2roWu1MkEiihQ/qEszPPoaoqVI1x2D8Jtadk5AmoXTdEeNVPMu01Dtz7jIuTOAmdW3L+tSkPZOtEtQroYJDt0A== dependencies: "@typescript-eslint/utils" "^5.10.0" From 19066cd1ced6a96a6da19a3b2c2822af18308d70 Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Mon, 15 Aug 2022 08:58:11 -0400 Subject: [PATCH 365/377] Update GitHubEntityProvider.ts Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index e47ed62890..eb5b9d67e2 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -187,9 +187,8 @@ export class GitHubEntityProvider implements EntityProvider { const matchingRepositories = repositories.filter(r => { return ( !r.isArchived && - (repositoryFilter - ? repositoryFilter?.test(r.name) - : true && r.defaultBranchRef?.name) + (!repositoryFilter || repositoryFilter.test(r.name)) && + r.defaultBranchRef?.name ); }); return matchingRepositories; From 007d27a0fbe0871c87f2fba3cce7a89ce9d3e344 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 13:35:29 +0000 Subject: [PATCH 366/377] fix(deps): update dependency @octokit/auth-app to v4.0.5 Signed-off-by: Renovate Bot --- yarn.lock | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index ad1d57c260..0b0468830d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5449,15 +5449,15 @@ "@octokit/webhooks" "^10.0.0" "@octokit/auth-app@^4.0.0": - version "4.0.4" - resolved "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.4.tgz#e774da352e7c9d0648d5d0fdf0fb75cd6a16c2af" - integrity sha512-s3MK7M9e8TD/ih8lCBTrdZ74XPHMtHV7aycCKNBRQ2QJPdMwqx0mVbmLOIuW4dCwMX7K243+JAvf52tryFHRdQ== + version "4.0.5" + resolved "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.5.tgz#0e52752c37340ae8686617b7ce188e4cae6d7ba1" + integrity sha512-fCbi4L/egsP3p4p1SelOFORM/m/5KxROhHdcIW5Lb17DDdW61fGT8y3wGpfiSeYNuulwF5QIfzJ7tdgtHNAymA== dependencies: "@octokit/auth-oauth-app" "^5.0.0" "@octokit/auth-oauth-user" "^2.0.0" "@octokit/request" "^6.0.0" "@octokit/request-error" "^3.0.0" - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" "@types/lru-cache" "^5.1.0" deprecation "^2.3.1" lru-cache "^6.0.0" @@ -5669,6 +5669,11 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== +"@octokit/openapi-types@^13.0.0": + version "13.0.1" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.0.1.tgz#f655810f0dc0547b771526fea171acffbc7bd4a8" + integrity sha512-40U39YoFBhJhmkAg6gbJnh9U8aueJwCuiTW0mXY2pNl9/+E7dUxXiMPOrIUGT12XqLinroaXYA3FUiw3BMeNfg== + "@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" @@ -5832,6 +5837,13 @@ dependencies: "@octokit/openapi-types" "^12.7.0" +"@octokit/types@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-7.0.0.tgz#3ecee92edff53a93ecd75d6b9d6620574d2048ca" + integrity sha512-8uSDc66p6+wADn6lh6lA7I3ZTIapn7F/dfpsiDztVjEr6kkyKR3qPqa4lgEX92O/8iJoDeGcscKRXGAjCSR/zg== + dependencies: + "@octokit/openapi-types" "^13.0.0" + "@octokit/webhooks-methods@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" From 077f461a4ae7fb4bacee73bb159a92655d7b600b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 13:36:23 +0000 Subject: [PATCH 367/377] fix(deps): update dependency @octokit/graphql to v5.0.1 Signed-off-by: Renovate Bot --- yarn.lock | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index ad1d57c260..2d48cd611a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5597,12 +5597,12 @@ universal-user-agent "^6.0.0" "@octokit/graphql@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.0.tgz#2cc6eb3bf8e0278656df1a7d0ca0d7591599e3b3" - integrity sha512-1ZZ8tX4lUEcLPvHagfIVu5S2xpHYXAmgN0+95eAOPoaVPzCfUXJtA5vASafcpWcO86ze0Pzn30TAx72aB2aguQ== + version "5.0.1" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz#a06982514ad131fb6fbb9da968653b2233fade9b" + integrity sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA== dependencies: "@octokit/request" "^6.0.0" - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" universal-user-agent "^6.0.0" "@octokit/oauth-app@^4.0.4", "@octokit/oauth-app@^4.0.6": @@ -5669,6 +5669,11 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== +"@octokit/openapi-types@^13.0.0": + version "13.0.1" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.0.1.tgz#f655810f0dc0547b771526fea171acffbc7bd4a8" + integrity sha512-40U39YoFBhJhmkAg6gbJnh9U8aueJwCuiTW0mXY2pNl9/+E7dUxXiMPOrIUGT12XqLinroaXYA3FUiw3BMeNfg== + "@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" @@ -5832,6 +5837,13 @@ dependencies: "@octokit/openapi-types" "^12.7.0" +"@octokit/types@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-7.0.0.tgz#3ecee92edff53a93ecd75d6b9d6620574d2048ca" + integrity sha512-8uSDc66p6+wADn6lh6lA7I3ZTIapn7F/dfpsiDztVjEr6kkyKR3qPqa4lgEX92O/8iJoDeGcscKRXGAjCSR/zg== + dependencies: + "@octokit/openapi-types" "^13.0.0" + "@octokit/webhooks-methods@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" From 99a2642b09518fbf298b34eba549a98bb713ec9f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 14:17:05 +0000 Subject: [PATCH 368/377] fix(deps): update dependency @octokit/request to v6.2.1 Signed-off-by: Renovate Bot --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef7edbda64..a5f9d27a1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5771,13 +5771,13 @@ universal-user-agent "^6.0.0" "@octokit/request@^6.0.0": - version "6.2.0" - resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz#9c25606df84e6f2ccbcc2c58e1d35438e20b688b" - integrity sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q== + version "6.2.1" + resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz#3ceeb22dab09a29595d96594b6720fc14495cf4e" + integrity sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ== dependencies: "@octokit/endpoint" "^7.0.0" "@octokit/request-error" "^3.0.0" - "@octokit/types" "^6.16.1" + "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" node-fetch "^2.6.7" universal-user-agent "^6.0.0" From 9cad1b7104249194cc9ad6b2fb628b605fc46edc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 14:18:16 +0000 Subject: [PATCH 369/377] fix(deps): update dependency @octokit/rest to v19.0.4 Signed-off-by: Renovate Bot --- yarn.lock | 233 +++++++++++++++++------------------------------------- 1 file changed, 74 insertions(+), 159 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef7edbda64..872925cd83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5517,11 +5517,11 @@ "@octokit/types" "^6.0.0" "@octokit/auth-token@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.0.tgz#6f22c5fc56445c496628488ba6810131558fa4a9" - integrity sha512-MDNFUBcJIptB9At7HiV7VCvU3NcL4GnfCQaP8C5lrxWrRPMJBnemYtehaKSOlaM7AYxeRyj9etenu8LVpSpVaQ== + version "3.0.1" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz#88bc2baf5d706cb258474e722a720a8365dff2ec" + integrity sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" "@octokit/auth-unauthenticated@^3.0.0": version "3.0.0" @@ -5544,15 +5544,15 @@ universal-user-agent "^6.0.0" "@octokit/core@^4.0.0": - version "4.0.2" - resolved "https://registry.npmjs.org/@octokit/core/-/core-4.0.2.tgz#4eaf9c5fd39913b541c5e31a2b8fdc3cf50480bc" - integrity sha512-vgVtE02EF9kXFsjmFoKFCwH1wDspPfDgopRbAlavkGuBJPWF+u5n0xgwP4obmdKNvLM+bB7MI7W31c2E13zgDQ== + version "4.0.5" + resolved "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz#589e68c0a35d2afdcd41dafceab072c2fbc6ab5f" + integrity sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA== dependencies: "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^4.5.8" + "@octokit/graphql" "^5.0.0" "@octokit/request" "^6.0.0" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^7.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" @@ -5570,23 +5570,23 @@ 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== - dependencies: - "@octokit/types" "^5.0.0" - is-plain-object "^3.0.0" - universal-user-agent "^5.0.0" - -"@octokit/endpoint@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.0.tgz#be758a1236d68d6bbb505e686dd50881c327a519" - integrity sha512-Kz/mIkOTjs9rV50hf/JK9pIDl4aGwAtT8pry6Rpy+hVXkAPhXanNQRxMoq6AeRgDCZR6t/A1zKniY2V1YhrzlQ== + 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" "^6.0.3" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" +"@octokit/endpoint@^7.0.0": + version "7.0.1" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.1.tgz#cb0d03e62e8762f3c80e52b025179de81899a823" + integrity sha512-/wTXAJwt0HzJ2IeE4kQXO+mBScfzyCkI0hMtkIaqyXd9zg76OpOfNQfHL9FlaxAV2RsNiOXZibVWloy8EexENg== + dependencies: + "@octokit/types" "^7.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + "@octokit/graphql@^4.5.8": version "4.8.0" resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" @@ -5659,25 +5659,25 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== + "@octokit/openapi-types@^12.4.0": version "12.4.0" resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz#fd8bf5db72bd566c5ba2cb76754512a9ebe66e71" integrity sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA== -"@octokit/openapi-types@^12.7.0": - version "12.8.0" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" - integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== - "@octokit/openapi-types@^13.0.0": version "13.0.1" resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.0.1.tgz#f655810f0dc0547b771526fea171acffbc7bd4a8" integrity sha512-40U39YoFBhJhmkAg6gbJnh9U8aueJwCuiTW0mXY2pNl9/+E7dUxXiMPOrIUGT12XqLinroaXYA3FUiw3BMeNfg== "@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== + version "7.4.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.4.0.tgz#07631899dc32b72a532178e27235c541f3c359f1" + integrity sha512-V2qNML1knHjrjTJcIIvhYZSTkvtSAoQpNEX8y0ykTJI8vOQPqIh0y6Jf9EU6c/y+v0c9+LeC1acwLQh1xo96MA== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -5698,6 +5698,13 @@ dependencies: "@octokit/types" "^6.39.0" +"@octokit/plugin-paginate-rest@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.0.0.tgz#859a168262b657d46a8f1243ded66c87cee964b9" + integrity sha512-g4GJMt/7VDmIMMdQenN6bmsmRoZca1c7IxOdF2yMiMwQYrE2bmmypGQeQSD5rsaffsFMCUS7Br4pMVZamareYA== + dependencies: + "@octokit/types" "^7.0.0" + "@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" @@ -5717,11 +5724,11 @@ deprecation "^2.3.1" "@octokit/plugin-rest-endpoint-methods@^6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.0.0.tgz#e4a55d83ec5a00e6b4d7a780f4ec9009095bff6f" - integrity sha512-9LkEvZB3WDuayEI381O5A/eM3QQioBZrwymQp5CUCNz9UMP/yZAIqBjcPhVJJFA3IRkKO1EARo98OePt9i0rkQ== + version "6.3.0" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.3.0.tgz#81549334ce020169b84bd4a7fa2577e9d725d829" + integrity sha512-qEu2wn6E7hqluZwIEUnDxWROvKjov3zMIAi4H4d7cmKWNMeBprEXZzJe8pE5eStUYC1ysGhD0B7L6IeG1Rfb+g== dependencies: - "@octokit/types" "^6.39.0" + "@octokit/types" "^7.0.0" deprecation "^2.3.1" "@octokit/plugin-retry@^3.0.9": @@ -5750,11 +5757,11 @@ once "^1.4.0" "@octokit/request-error@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.0.tgz#f527d178f115a3b62d76ce4804dd5bdbc0270a81" - integrity sha512-WBtpzm9lR8z4IHIMtOqr6XwfkGvMOOILNLxsWvDwtzm/n7f5AWuqJTXQXdDtOvPfTDrH4TPhEvW2qMlR4JFA2w== + version "3.0.1" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz#3fd747913c06ab2195e52004a521889dadb4b295" + integrity sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" deprecation "^2.0.0" once "^1.4.0" @@ -5771,13 +5778,13 @@ universal-user-agent "^6.0.0" "@octokit/request@^6.0.0": - version "6.2.0" - resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz#9c25606df84e6f2ccbcc2c58e1d35438e20b688b" - integrity sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q== + version "6.2.1" + resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz#3ceeb22dab09a29595d96594b6720fc14495cf4e" + integrity sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ== dependencies: "@octokit/endpoint" "^7.0.0" "@octokit/request-error" "^3.0.0" - "@octokit/types" "^6.16.1" + "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" node-fetch "^2.6.7" universal-user-agent "^6.0.0" @@ -5793,29 +5800,36 @@ "@octokit/plugin-rest-endpoint-methods" "5.3.1" "@octokit/rest@^19.0.3": - version "19.0.3" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.3.tgz#b9a4e8dc8d53e030d611c053153ee6045f080f02" - integrity sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ== + version "19.0.4" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz#fd8bed1cefffa486e9ae46a9dc608ce81bcfcbdd" + integrity sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA== dependencies: "@octokit/core" "^4.0.0" - "@octokit/plugin-paginate-rest" "^3.0.0" + "@octokit/plugin-paginate-rest" "^4.0.0" "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^6.0.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": +"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@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.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0": + version "6.41.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + dependencies: + "@octokit/openapi-types" "^12.11.0" + "@octokit/types@^6.27.1": version "6.34.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" @@ -5830,13 +5844,6 @@ dependencies: "@octokit/openapi-types" "^12.4.0" -"@octokit/types@^6.39.0": - version "6.39.0" - resolved "https://registry.npmjs.org/@octokit/types/-/types-6.39.0.tgz#46ce28ca59a3d4bac0e487015949008302e78eee" - integrity sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ== - dependencies: - "@octokit/openapi-types" "^12.7.0" - "@octokit/types@^7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-7.0.0.tgz#3ecee92edff53a93ecd75d6b9d6620574d2048ca" @@ -7363,7 +7370,7 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0": +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "17.0.25" resolved "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz#527051f3c2f77aa52e5dc74e45a3da5fb2301448" integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w== @@ -7373,6 +7380,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== +"@types/node@>= 8": + version "18.7.4" + resolved "https://registry.npmjs.org/@types/node/-/node-18.7.4.tgz#95baa50846ae112a7376869d49fec23b2506c69d" + integrity sha512-RzRcw8c0B8LzryWOR4Wj7YOTFXvdYKwvrb6xQQyuDfnlTxwYXGCV5RZ/TEbq5L5kn+w3rliHAUyRcG1RtbmTFg== + "@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" @@ -11216,17 +11228,6 @@ cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -13369,19 +13370,6 @@ execa@5.1.1, execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" @@ -14365,13 +14353,6 @@ get-stdin@^8.0.0: resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - 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" @@ -16085,13 +16066,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" @@ -16187,11 +16161,6 @@ is-stream-ended@^0.1.4: resolved "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz#f50224e95e06bce0e356d440a4827cd35b267eda" integrity sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw== -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - 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" @@ -16341,11 +16310,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" @@ -18256,11 +18220,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" @@ -19587,11 +19546,6 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.2: resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -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.1: version "5.1.1" resolved "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz#ac4237e0d785ecfcb83e20f389185975da5c31f3" @@ -19934,13 +19888,6 @@ npm-registry-fetch@^9.0.0: minizlib "^2.0.0" npm-package-arg "^8.0.0" -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -20310,14 +20257,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.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -20353,7 +20292,7 @@ p-filter@^2.1.0: p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-is-promise@^3.0.0: version "3.0.0" @@ -20906,11 +20845,6 @@ path-is-inside@1.0.2, path-is-inside@^1.0.2: resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -23583,7 +23517,7 @@ semver-store@^0.3.0: resolved "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz#ce602ff07df37080ec9f4fb40b29576547befbe9" integrity sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg== -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -24648,11 +24582,6 @@ strip-bom@^4.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -25378,7 +25307,7 @@ tr46@^2.1.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== traverse@^0.6.6, traverse@~0.6.6: version "0.6.6" @@ -25911,13 +25840,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" @@ -26405,7 +26327,7 @@ webcrypto-core@^1.7.4: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^5.0.0: version "5.0.0" @@ -26550,7 +26472,7 @@ whatwg-mimetype@^3.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -26632,13 +26554,6 @@ 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.5.0: version "4.5.0" resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" @@ -26703,7 +26618,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: version "2.4.3" From b421826f495342caac24e06967e981adb28ca631 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 17:22:41 +0000 Subject: [PATCH 370/377] fix(deps): update dependency @google-cloud/storage to v6.4.1 Signed-off-by: Renovate Bot --- yarn.lock | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 872925cd83..29d5847872 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2768,9 +2768,9 @@ integrity sha512-91ArYvRgXWb73YvEOBMmOcJc0bDRs5yiVHnqkwoG0f3nm7nZuipllz6e7BvFESBvjkDTBC0zMD8QxedUwNLc1A== "@google-cloud/storage@^6.0.0": - version "6.4.0" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.4.0.tgz#36413d549859ea325b71328e61dff7a669bc1f2e" - integrity sha512-ogNKY8Mv8JmNvSlJv12E6lB2DtcG7pVEI8k9vmH879ja5qqK8WPw0ys5/FG2Dh5AOwxrbDKbnzMVChNQuXtGpg== + version "6.4.1" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.4.1.tgz#83334150d4e224cb48691de4d7f9c38e143a0970" + integrity sha512-lAddmRJ8tvxPykUqJfONBQA5XGwGk0vut1POXublc64+nCdB5aQMxwuBMf7J1zubx19QGpYPQwW6wR7YTWrvLw== dependencies: "@google-cloud/paginator" "^3.0.7" "@google-cloud/projectify" "^3.0.0" @@ -2787,7 +2787,6 @@ mime "^3.0.0" mime-types "^2.0.8" p-limit "^3.0.1" - pumpify "^2.0.0" retry-request "^5.0.0" teeny-request "^8.0.0" uuid "^8.0.0" @@ -12380,7 +12379,7 @@ duplexer@^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: +duplexify@^4.0.0: version "4.1.1" resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== @@ -21832,15 +21831,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz#abfc7b5a621307c728b551decbbefb51f0e4aa1e" - integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw== - dependencies: - duplexify "^4.1.1" - inherits "^2.0.3" - pump "^3.0.0" - punycode@1.3.2: version "1.3.2" resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" From d299da4cb0e54e2371e9a0b86e555845228ef598 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 18:10:32 +0000 Subject: [PATCH 371/377] fix(deps): update typescript-eslint monorepo to v5.33.1 Signed-off-by: Renovate Bot --- yarn.lock | 90 +++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/yarn.lock b/yarn.lock index 29d5847872..79f9e3406e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7997,13 +7997,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.0.tgz#059798888720ec52ffa96c5f868e31a8f70fa3ec" - integrity sha512-jHvZNSW2WZ31OPJ3enhLrEKvAZNyAFWZ6rx9tUwaessTc4sx9KmgMNhVcqVAl1ETnT5rU5fpXTLmY9YvC1DCNg== + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz#c0a480d05211660221eda963cc844732fe9b1714" + integrity sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ== dependencies: - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/type-utils" "5.33.0" - "@typescript-eslint/utils" "5.33.0" + "@typescript-eslint/scope-manager" "5.33.1" + "@typescript-eslint/type-utils" "5.33.1" + "@typescript-eslint/utils" "5.33.1" debug "^4.3.4" functional-red-black-tree "^1.0.1" ignore "^5.2.0" @@ -8024,13 +8024,13 @@ eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.0.tgz#26ec3235b74f0667414613727cb98f9b69dc5383" - integrity sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w== + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.1.tgz#e4b253105b4d2a4362cfaa4e184e2d226c440ff3" + integrity sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA== dependencies: - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/typescript-estree" "5.33.0" + "@typescript-eslint/scope-manager" "5.33.1" + "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/typescript-estree" "5.33.1" debug "^4.3.4" "@typescript-eslint/scope-manager@5.20.0": @@ -8041,13 +8041,13 @@ "@typescript-eslint/types" "5.20.0" "@typescript-eslint/visitor-keys" "5.20.0" -"@typescript-eslint/scope-manager@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.0.tgz#509d7fa540a2c58f66bdcfcf278a3fa79002e18d" - integrity sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw== +"@typescript-eslint/scope-manager@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz#8d31553e1b874210018ca069b3d192c6d23bc493" + integrity sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA== dependencies: - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/visitor-keys" "5.33.0" + "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/visitor-keys" "5.33.1" "@typescript-eslint/scope-manager@5.9.0": version "5.9.0" @@ -8057,12 +8057,12 @@ "@typescript-eslint/types" "5.9.0" "@typescript-eslint/visitor-keys" "5.9.0" -"@typescript-eslint/type-utils@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.0.tgz#92ad1fba973c078d23767ce2d8d5a601baaa9338" - integrity sha512-2zB8uEn7hEH2pBeyk3NpzX1p3lF9dKrEbnXq1F7YkpZ6hlyqb2yZujqgRGqXgRBTHWIUG3NGx/WeZk224UKlIA== +"@typescript-eslint/type-utils@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz#1a14e94650a0ae39f6e3b77478baff002cec4367" + integrity sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g== dependencies: - "@typescript-eslint/utils" "5.33.0" + "@typescript-eslint/utils" "5.33.1" debug "^4.3.4" tsutils "^3.21.0" @@ -8071,10 +8071,10 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== -"@typescript-eslint/types@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.0.tgz#d41c584831805554b063791338b0220b613a275b" - integrity sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw== +"@typescript-eslint/types@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.1.tgz#3faef41793d527a519e19ab2747c12d6f3741ff7" + integrity sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ== "@typescript-eslint/types@5.9.0": version "5.9.0" @@ -8094,13 +8094,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.0.tgz#02d9c9ade6f4897c09e3508c27de53ad6bfa54cf" - integrity sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ== +"@typescript-eslint/typescript-estree@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz#a573bd360790afdcba80844e962d8b2031984f34" + integrity sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA== dependencies: - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/visitor-keys" "5.33.0" + "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/visitor-keys" "5.33.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -8120,15 +8120,15 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.0.tgz#46797461ce3146e21c095d79518cc0f8ec574038" - integrity sha512-JxOAnXt9oZjXLIiXb5ZIcZXiwVHCkqZgof0O8KPgz7C7y0HS42gi75PdPlqh1Tf109M0fyUw45Ao6JLo7S5AHw== +"@typescript-eslint/utils@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.1.tgz#171725f924fe1fe82bb776522bb85bc034e88575" + integrity sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/typescript-estree" "5.33.0" + "@typescript-eslint/scope-manager" "5.33.1" + "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/typescript-estree" "5.33.1" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -8152,12 +8152,12 @@ "@typescript-eslint/types" "5.20.0" eslint-visitor-keys "^3.0.0" -"@typescript-eslint/visitor-keys@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.0.tgz#fbcbb074e460c11046e067bc3384b5d66b555484" - integrity sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw== +"@typescript-eslint/visitor-keys@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz#0155c7571c8cd08956580b880aea327d5c34a18b" + integrity sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg== dependencies: - "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/types" "5.33.1" eslint-visitor-keys "^3.3.0" "@typescript-eslint/visitor-keys@5.9.0": From 7f781e4f421610024e8f5e0484af9904866f51d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 18:11:28 +0000 Subject: [PATCH 372/377] fix(deps): update dependency already to v3.4.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 29d5847872..64d4028421 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8549,9 +8549,9 @@ alphanum-sort@^1.0.2: integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= already@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/already/-/already-3.3.0.tgz#a5e5becd167cf537b45f8f1c23d331488ed77003" - integrity sha512-ADGyKddqEp8t/Wu4ITc0y9GGsgZDgyMeMk38AM5qrPK7VEjNAYD87QGTGGgNhSQahmjw76V3mi+3fJRwPJXcTw== + version "3.4.0" + resolved "https://registry.npmjs.org/already/-/already-3.4.0.tgz#d32aab4be75ae2352a16f26d688393fc79675c18" + integrity sha512-l2neHYJryLga4BiKsVdO3c3E5dCl1OgkKS4pr3nDyxQRABywIyI3MuNaUypj2tLQKy7PFJ5CUrQ7Waa+eVn4Fg== anafanafo@2.0.0: version "2.0.0" From 6226d5b5c2807d5f2fd119ed8e73f49d8a8599ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 21:24:22 +0000 Subject: [PATCH 373/377] chore(deps): update dependency @types/inquirer to v8.2.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81a5a1a1f5..31b83f2190 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7113,9 +7113,9 @@ integrity sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w== "@types/inquirer@^8.1.3": - version "8.2.2" - resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.2.tgz#7ec5f166026b55b10df011521c8a63920cb84a7a" - integrity sha512-HXoFOl+KS4yvmUjisi83VpuSBOeeXIzdJfoT/v2pUruqybpHy0Dz1DyXy3E2jNH0cSVKJZV92VOnFBwJR6k83A== + version "8.2.3" + resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.3.tgz#985515d04879a0d0c1f5f49ec375767410ba9dab" + integrity sha512-ZlBqD+8WIVNy3KIVkl+Qne6bGLW2erwN0GJXY9Ri/9EMbyupee3xw3H0Mmv5kJoLyNpfd/oHlwKxO0DUDH7yWA== dependencies: "@types/through" "*" From 3c848c05f44abf1f9ffb09346ed5f6a632b08619 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 21:27:14 +0000 Subject: [PATCH 374/377] chore(deps): update dependency @types/node to v16.11.49 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81a5a1a1f5..826650d923 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7405,9 +7405,9 @@ integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== "@types/node@^16.0.0", "@types/node@^16.11.26", "@types/node@^16.9.2": - version "16.11.48" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.48.tgz#22d386f32b24fb644940b606ed393b56be7d8686" - integrity sha512-Z9r9UWlNeNkYnxybm+1fc0jxUNjZqRekTAr1pG0qdXe9apT9yCiqk1c4VvKQJsFpnchU4+fLl25MabSLA2wxIw== + version "16.11.49" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.49.tgz#560b1ea774b61e19a89c3fc72d2dcaa3863f38b2" + integrity sha512-Abq9fBviLV93OiXMu+f6r0elxCzRwc0RC5f99cU892uBITL44pTvgvEqlRlPRi8EGcO1z7Cp8A4d0s/p3J/+Nw== "@types/normalize-package-data@^2.4.0": version "2.4.1" From 09b789c80bf9598156fa0874ea54d870d205b39f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 22:05:18 +0000 Subject: [PATCH 375/377] fix(deps): update dependency aws-sdk to v2.1195.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 31b83f2190..8dbf96768a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9129,9 +9129,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1194.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1194.0.tgz#6a820684fa3f58ea40caf90d302414a23df7c308" - integrity sha512-wbgib7r7sHPkZIhqSMduueKYqe+DrFyxsKnUKHj6hdNcRKqEeqzvKp4olWmFs/3z3qU8+g78kBXr9rujvko1ug== + version "2.1195.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1195.0.tgz#f6f091426934ba1a4f8d5138f568e840f7bdb51a" + integrity sha512-xU7177JhKM+4SsLnoA6/r3qGzSXmbLgw/YC1KRHvZyJCbuTY+vdAGLaldbtNXjjwmE3a6EeoCREANv8GY62VdQ== dependencies: buffer "4.9.2" events "1.1.1" From 0f2534537f7ee86ec37613aa6aee4605938baa5e Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 16 Aug 2022 09:42:30 +0200 Subject: [PATCH 376/377] chore: cleanup lint errors Signed-off-by: blam --- plugins/sonarqube-backend/package.json | 2 ++ plugins/sonarqube-backend/src/service/router.ts | 2 +- .../src/service/sonarqubeInfoProvider.test.ts | 4 ++-- plugins/sonarqube/src/components/useProjectKey.test.ts | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index e4d87147b3..c9b281621c 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -25,6 +25,7 @@ "dependencies": { "@backstage/backend-common": "^0.15.0-next.1", "@backstage/config": "^1.0.1", + "@backstage/errors": "^1.1.0", "@types/express": "*", "express": "^4.18.1", "express-promise-router": "^4.1.0", @@ -34,6 +35,7 @@ }, "devDependencies": { "@backstage/cli": "^0.18.1-next.0", + "@backstage/test-utils": "^1.1.3-next.0", "@types/supertest": "^2.0.12", "msw": "^0.44.2", "supertest": "^6.2.4" diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index 45cdcb64c3..f244ae5ce3 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -19,7 +19,7 @@ import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; import { SonarqubeInfoProvider } from './sonarqubeInfoProvider'; -import { InputError } from '../../../../packages/errors'; +import { InputError } from '@backstage/errors'; /** * Dependencies needed by the router diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts index e617324555..64313e8fd2 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts @@ -14,13 +14,13 @@ * limitations under the License. */ -import { ConfigReader } from '../../../../packages/config'; +import { ConfigReader } from '@backstage/config'; import { DefaultSonarqubeInfoProvider, SonarqubeConfig, } from './sonarqubeInfoProvider'; import { setupServer } from 'msw/node'; -import { setupRequestMockHandlers } from '../../../../packages/test-utils'; +import { setupRequestMockHandlers } from '@backstage/test-utils'; import { rest, RestRequest } from 'msw'; describe('SonarqubeConfig', () => { diff --git a/plugins/sonarqube/src/components/useProjectKey.test.ts b/plugins/sonarqube/src/components/useProjectKey.test.ts index be83c236df..921e9455c0 100644 --- a/plugins/sonarqube/src/components/useProjectKey.test.ts +++ b/plugins/sonarqube/src/components/useProjectKey.test.ts @@ -19,7 +19,7 @@ import { SONARQUBE_PROJECT_KEY_ANNOTATION, useProjectInfo, } from './useProjectKey'; -import { Entity } from '../../../../packages/catalog-model'; +import { Entity } from '@backstage/catalog-model'; const createDummyEntity = (sonarqubeAnnotationValue: string): Entity => { return { From 474370b668282e696c821c7383bf37b312a403f0 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 16 Aug 2022 09:36:35 +0100 Subject: [PATCH 377/377] feat: removed faker-js Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 1 - .../GitHubIssues/GitHubIssues.test.tsx | 28 +++++++++---------- yarn.lock | 5 ---- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 21693740c7..d31bb52603 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -44,7 +44,6 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", - "@faker-js/faker": "^7.4.0", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx index c8486d3d70..33eec79359 100644 --- a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx @@ -20,43 +20,41 @@ import { catalogApiRef, CatalogApi, } from '@backstage/plugin-catalog-react'; -import { faker } from '@faker-js/faker'; import { Entity } from '@backstage/catalog-model'; import { GitHubIssuesApi, gitHubIssuesApiRef, Issue } from '../../api'; import { GitHubIssues } from './GitHubIssues'; -const generateTestIssue = ( - overwrites: Partial = {}, -): { node: Issue } => ({ +const getTestIssue = (overwrites: Partial = {}): { node: Issue } => ({ node: { ...{ assignees: { edges: [ { node: { - avatarUrl: faker.internet.avatar(), - login: `${faker.word.adjective()}-${faker.animal.type()}`, + avatarUrl: + 'https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1112.jpg', + login: 'worthless-horse', }, }, ], }, author: { - login: `${faker.word.adjective()}-${faker.animal.type()}`, + login: 'next-dog', }, repository: { - nameWithOwner: `${faker.animal.type()}/${faker.animal.type()}`, + nameWithOwner: 'backstage/backstage', }, - title: faker.lorem.words(3), - url: faker.internet.url(), + title: 'quasi labore qui', + url: 'http://flowery-muscatel.net', participants: { - totalCount: +faker.random.numeric(), + totalCount: 3, }, - updatedAt: faker.date.past().toISOString(), - createdAt: faker.date.past().toISOString(), + updatedAt: '2022-05-02T09:46:35.885Z', + createdAt: '2022-06-03T07:11:22.320Z', comments: { - totalCount: +faker.random.numeric(), + totalCount: 6, }, }, ...overwrites, @@ -114,7 +112,7 @@ describe('GitHubIssues', () => { }); it('should render correctly', async () => { - const testIssue = generateTestIssue({ + const testIssue = getTestIssue({ createdAt: '2020-04-19T10:15:47.614Z', updatedAt: '2020-04-20T00:15:47.614Z', }); diff --git a/yarn.lock b/yarn.lock index 4bebec76e1..4894a4b674 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2673,11 +2673,6 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@faker-js/faker@^7.4.0": - version "7.4.0" - resolved "https://registry.npmjs.org/@faker-js/faker/-/faker-7.4.0.tgz#cac720d860a89d487b47e55e66a4fd114f1d3fe5" - integrity sha512-xDd3Tvkt2jgkx1LkuwwxpNBy/Oe+LkZBTwkgEFTiWpVSZgQ5sc/LenbHKRHbFl0dq/KFeeq/szyyPtpJRKY0fg== - "@fmvilas/pseudo-yaml-ast@^0.3.1": version "0.3.1" resolved "https://registry.npmjs.org/@fmvilas/pseudo-yaml-ast/-/pseudo-yaml-ast-0.3.1.tgz#66c5df2c2d76ba8571dc5bd98fda4d7dce6121de"