From 398c005ec39279daf497ff8b8eeaeaa9ed05d22f Mon Sep 17 00:00:00 2001 From: Stefan Petrovic Date: Tue, 20 Jun 2023 19:40:02 +0200 Subject: [PATCH 01/78] added some clarification in azure org importer docs Signed-off-by: Stefan Petrovic --- docs/integrations/azure/org.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/integrations/azure/org.md b/docs/integrations/azure/org.md index f855b29bb9..8b7bd3c5b8 100644 --- a/docs/integrations/azure/org.md +++ b/docs/integrations/azure/org.md @@ -37,7 +37,7 @@ catalog: ``` Finally, register the plugin in `catalog.ts`. -For large organizations, this plugin can take a long time, so be careful setting low frequency / timeouts. +For large organizations, this plugin can take a long time, so be careful setting low frequency / timeouts and importing a large amount of users / groups for the first try. ```ts title="packages/backend/src/plugins/catalog.ts" /* highlight-add-next-line */ @@ -106,7 +106,7 @@ To grant the managed identity the same permissions as mentioned in _App Registra ## Filtering imported Users and Groups By default, the plugin will import all users and groups from your directory. -This can be customized through [filters](https://learn.microsoft.com/en-us/graph/filter-query-parameter) and [search](https://learn.microsoft.com/en-us/graph/search-query-parameter) queries. +This can be customized through [filters](https://learn.microsoft.com/en-us/graph/filter-query-parameter) and [search](https://learn.microsoft.com/en-us/graph/search-query-parameter) queries. Keep in mind that if you omit filters and search queries for the user or group properties, the plugin will automatically import all available users or groups. ### Groups From e65ad0989461cfb2476ba316d83a27decb689b3f Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 22 Jun 2023 12:39:46 +0200 Subject: [PATCH 02/78] chore: body is not a buffer, let's make it a Readable first Signed-off-by: blam --- packages/backend-common/src/reading/AzureUrlReader.ts | 2 +- .../backend-common/src/reading/BitbucketCloudUrlReader.ts | 2 +- .../backend-common/src/reading/BitbucketServerUrlReader.ts | 2 +- packages/backend-common/src/reading/BitbucketUrlReader.ts | 2 +- packages/backend-common/src/reading/GerritUrlReader.ts | 2 +- packages/backend-common/src/reading/GithubUrlReader.ts | 3 +-- packages/backend-common/src/reading/GitlabUrlReader.ts | 2 +- .../backend-common/src/reading/tree/TarArchiveResponse.ts | 4 +++- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/backend-common/src/reading/AzureUrlReader.ts b/packages/backend-common/src/reading/AzureUrlReader.ts index 26fe3f4a12..94abf3a178 100644 --- a/packages/backend-common/src/reading/AzureUrlReader.ts +++ b/packages/backend-common/src/reading/AzureUrlReader.ts @@ -158,7 +158,7 @@ export class AzureUrlReader implements UrlReader { } return await this.deps.treeResponseFactory.fromZipArchive({ - stream: archiveAzureResponse.body as unknown as Readable, + stream: Readable.from(archiveAzureResponse.body), etag: commitSha, filter, subpath, diff --git a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts b/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts index 1522b7678d..93587cd6ae 100644 --- a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts +++ b/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts @@ -160,7 +160,7 @@ export class BitbucketCloudUrlReader implements UrlReader { } return await this.deps.treeResponseFactory.fromTarArchive({ - stream: archiveResponse.body as unknown as Readable, + stream: Readable.from(archiveResponse.body), subpath: filepath, etag: lastCommitShortHash, filter: options?.filter, diff --git a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts index 2b6b5a1f8f..8e2f1708c4 100644 --- a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts +++ b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts @@ -151,7 +151,7 @@ export class BitbucketServerUrlReader implements UrlReader { } return await this.deps.treeResponseFactory.fromTarArchive({ - stream: archiveResponse.body as unknown as Readable, + stream: Readable.from(archiveResponse.body), subpath: filepath, etag: lastCommitShortHash, filter: options?.filter, diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.ts b/packages/backend-common/src/reading/BitbucketUrlReader.ts index 3a34c725c6..090fe9098d 100644 --- a/packages/backend-common/src/reading/BitbucketUrlReader.ts +++ b/packages/backend-common/src/reading/BitbucketUrlReader.ts @@ -171,7 +171,7 @@ export class BitbucketUrlReader implements UrlReader { } return await this.deps.treeResponseFactory.fromTarArchive({ - stream: archiveBitbucketResponse.body as unknown as Readable, + stream: Readable.from(archiveBitbucketResponse.body), subpath: filepath, etag: lastCommitShortHash, filter: options?.filter, diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts index 5d86e5d9ac..417eca2e57 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -204,7 +204,7 @@ export class GerritUrlReader implements UrlReader { }); const tarArchive = Readable.from(data); return await this.deps.treeResponseFactory.fromTarArchive({ - stream: tarArchive as unknown as Readable, + stream: Readable.from(tarArchive), subpath: filePath === '/' ? undefined : filePath, etag: branchInfo.revision, filter: options?.filter, diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-common/src/reading/GithubUrlReader.ts index 8300127c5b..764431386d 100644 --- a/packages/backend-common/src/reading/GithubUrlReader.ts +++ b/packages/backend-common/src/reading/GithubUrlReader.ts @@ -238,7 +238,7 @@ export class GithubUrlReader implements UrlReader { return await this.deps.treeResponseFactory.fromTarArchive({ // TODO(Rugvip): Underlying implementation of fetch will be node-fetch, we probably want // to stick to using that in exclusively backend code. - stream: archive.body as unknown as Readable, + stream: Readable.from(archive.body), subpath, etag: sha, filter: options?.filter, @@ -347,7 +347,6 @@ export class GithubUrlReader implements UrlReader { init: RequestInit, ): Promise { const urlAsString = url.toString(); - const response = await fetch(urlAsString, init); if (!response.ok) { diff --git a/packages/backend-common/src/reading/GitlabUrlReader.ts b/packages/backend-common/src/reading/GitlabUrlReader.ts index ab59c19b16..178e65b40a 100644 --- a/packages/backend-common/src/reading/GitlabUrlReader.ts +++ b/packages/backend-common/src/reading/GitlabUrlReader.ts @@ -229,7 +229,7 @@ export class GitlabUrlReader implements UrlReader { } return await this.deps.treeResponseFactory.fromTarArchive({ - stream: archiveGitLabResponse.body as unknown as Readable, + stream: Readable.from(archiveGitLabResponse.body), subpath: filepath, etag: commitSha, filter: options?.filter, diff --git a/packages/backend-common/src/reading/tree/TarArchiveResponse.ts b/packages/backend-common/src/reading/tree/TarArchiveResponse.ts index 493e283c5f..eeda6e25f3 100644 --- a/packages/backend-common/src/reading/tree/TarArchiveResponse.ts +++ b/packages/backend-common/src/reading/tree/TarArchiveResponse.ts @@ -151,7 +151,9 @@ export class TarArchiveResponse implements ReadTreeResponse { const strip = this.subPath ? this.subPath.split('/').length : 1; let filterError: Error | undefined = undefined; - + this.stream.on('error', console.error); + this.stream.on('close', console.error); + console.log('we are here!'); await pipeline( this.stream, tar.extract({ From 2e0637835bb16ed6f3fb0004cb9993ce94b6af58 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 22 Jun 2023 12:44:43 +0200 Subject: [PATCH 03/78] chore: cleanup Signed-off-by: blam --- packages/backend-common/src/reading/GerritUrlReader.ts | 2 +- packages/backend-common/src/reading/tree/TarArchiveResponse.ts | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts index 417eca2e57..8ac5452a4c 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -204,7 +204,7 @@ export class GerritUrlReader implements UrlReader { }); const tarArchive = Readable.from(data); return await this.deps.treeResponseFactory.fromTarArchive({ - stream: Readable.from(tarArchive), + stream: tarArchive, subpath: filePath === '/' ? undefined : filePath, etag: branchInfo.revision, filter: options?.filter, diff --git a/packages/backend-common/src/reading/tree/TarArchiveResponse.ts b/packages/backend-common/src/reading/tree/TarArchiveResponse.ts index eeda6e25f3..e1529c196a 100644 --- a/packages/backend-common/src/reading/tree/TarArchiveResponse.ts +++ b/packages/backend-common/src/reading/tree/TarArchiveResponse.ts @@ -151,9 +151,6 @@ export class TarArchiveResponse implements ReadTreeResponse { const strip = this.subPath ? this.subPath.split('/').length : 1; let filterError: Error | undefined = undefined; - this.stream.on('error', console.error); - this.stream.on('close', console.error); - console.log('we are here!'); await pipeline( this.stream, tar.extract({ From 787ddcc5ef99077d7e9b704220047f35d26ec3f6 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 22 Jun 2023 12:46:28 +0200 Subject: [PATCH 04/78] chore: added changeset Signed-off-by: blam --- .changeset/many-ants-poke.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/many-ants-poke.md diff --git a/.changeset/many-ants-poke.md b/.changeset/many-ants-poke.md new file mode 100644 index 0000000000..57856e0ef2 --- /dev/null +++ b/.changeset/many-ants-poke.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +use `Readable.from` to convert the buffer to explicitly convert the buffer to a `Readable` stream From 39bbbc52612da56f0862e8b5082bdfa5caf9286b Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 22 Jun 2023 12:56:18 +0200 Subject: [PATCH 05/78] chore: too many words in the changeset and not enough sense Signed-off-by: blam --- .changeset/many-ants-poke.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/many-ants-poke.md b/.changeset/many-ants-poke.md index 57856e0ef2..e6d94fdee5 100644 --- a/.changeset/many-ants-poke.md +++ b/.changeset/many-ants-poke.md @@ -2,4 +2,4 @@ '@backstage/backend-common': patch --- -use `Readable.from` to convert the buffer to explicitly convert the buffer to a `Readable` stream +use `Readable.from` to explicitly convert the `buffer` from `node-fetch` to a `Readable` stream From 320e89143a231338f90b2b3fad5caaea4e4ba6d1 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Sat, 17 Jun 2023 11:56:57 -0500 Subject: [PATCH 06/78] Updated CODEOWNERS and added to marketplace Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .github/CODEOWNERS | 6 ++++++ microsite/data/plugins/devtools.yaml | 10 ++++++++++ microsite/data/plugins/linguist.yaml | 10 ++++++++++ microsite/static/img/devtools.svg | 1 + microsite/static/img/linguist.svg | 1 + 5 files changed, 28 insertions(+) create mode 100644 microsite/data/plugins/devtools.yaml create mode 100644 microsite/data/plugins/linguist.yaml create mode 100644 microsite/static/img/devtools.svg create mode 100644 microsite/static/img/linguist.svg diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 33097b505a..82a9eb499d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -39,6 +39,9 @@ yarn.lock @backstage/maintainers @back /plugins/code-coverage-backend @backstage/maintainers @alde @nissayeva /plugins/cost-insights @backstage/maintainers @backstage/silver-lining /plugins/cost-insights-* @backstage/maintainers @backstage/silver-lining +/plugins/devtools @backstage/maintainers @awanlin +/plugins/devtools-backend @backstage/maintainers @awanlin +/plugins/devtools-common @backstage/maintainers @awanlin /plugins/entity-feedback @backstage/maintainers @kuangp /plugins/entity-feedback-* @backstage/maintainers @kuangp /plugins/events-backend @backstage/maintainers @pjungermann @@ -64,6 +67,9 @@ yarn.lock @backstage/maintainers @back /plugins/kafka-backend @backstage/maintainers @nirga @andrewthauer /plugins/kubernetes @backstage/maintainers @backstage/kubernetes-maintainers /plugins/kubernetes-* @backstage/maintainers @backstage/kubernetes-maintainers +/plugins/linguist @backstage/maintainers @awanlin +/plugins/linguist-backend @backstage/maintainers @awanlin +/plugins/linguist-common @backstage/maintainers @awanlin /plugins/microsoft-calendar @backstage/maintainers @abhay-soni-developer @NishkarshRaj /plugins/newrelic-dashboard @backstage/maintainers @mufaddal7 /plugins/permission-* @backstage/permission-maintainers diff --git a/microsite/data/plugins/devtools.yaml b/microsite/data/plugins/devtools.yaml new file mode 100644 index 0000000000..b531195c04 --- /dev/null +++ b/microsite/data/plugins/devtools.yaml @@ -0,0 +1,10 @@ +--- +title: 'DevTools' +author: Keyloop +authorUrl: https://keyloop.com/ +category: Tools +description: Tools for helping with the Ops side of running a Backstage instance +documentation: https://github.com/backstage/backstage/blob/master/plugins/devtools/README.md +iconUrl: /img/devtools.svg +npmPackageName: '@backstage/plugin-devtools' +addedDate: '2023-06-17' diff --git a/microsite/data/plugins/linguist.yaml b/microsite/data/plugins/linguist.yaml new file mode 100644 index 0000000000..d76936391c --- /dev/null +++ b/microsite/data/plugins/linguist.yaml @@ -0,0 +1,10 @@ +--- +title: 'Linguist' +author: Keyloop +authorUrl: https://keyloop.com/ +category: Metadata +description: View the programming language break down for your entities within the Software Catalog +documentation: https://github.com/backstage/backstage/blob/master/plugins/linguist/README.md +iconUrl: /img/linguist.svg +npmPackageName: '@backstage/plugin-linguist' +addedDate: '2023-06-17' diff --git a/microsite/static/img/devtools.svg b/microsite/static/img/devtools.svg new file mode 100644 index 0000000000..6bd5dc17c5 --- /dev/null +++ b/microsite/static/img/devtools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/microsite/static/img/linguist.svg b/microsite/static/img/linguist.svg new file mode 100644 index 0000000000..3cddc1affc --- /dev/null +++ b/microsite/static/img/linguist.svg @@ -0,0 +1 @@ + \ No newline at end of file From 5804a63c8a631bd3ab51dd92ea0e3e451348ac3e Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 26 Jun 2023 11:11:28 +0200 Subject: [PATCH 07/78] Revert "fix(deps): update dependency @mui/material to v5.13.6" Signed-off-by: blam --- yarn.lock | 191 ++++++++++++++++++++++++++---------------------------- 1 file changed, 92 insertions(+), 99 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9ac91f1f86..8768ef26be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3502,12 +3502,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.0, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.22.5 - resolution: "@babel/runtime@npm:7.22.5" +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.0, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": + version: 7.21.0 + resolution: "@babel/runtime@npm:7.21.0" dependencies: regenerator-runtime: ^0.13.11 - checksum: 12a50b7de2531beef38840d17af50c55a094253697600cee255311222390c68eed704829308d4fd305e1b3dfbce113272e428e9d9d45b1730e0fede997eaceb1 + checksum: 7b33e25bfa9e0e1b9e8828bb61b2d32bdd46b41b07ba7cb43319ad08efc6fda8eb89445193e67d6541814627df0ca59122c0ea795e412b99c5183a0540d338ab languageName: node linkType: hard @@ -10285,16 +10285,16 @@ __metadata: languageName: node linkType: hard -"@emotion/cache@npm:^11.10.5, @emotion/cache@npm:^11.11.0": - version: 11.11.0 - resolution: "@emotion/cache@npm:11.11.0" +"@emotion/cache@npm:^11.10.5, @emotion/cache@npm:^11.10.7": + version: 11.10.7 + resolution: "@emotion/cache@npm:11.10.7" dependencies: - "@emotion/memoize": ^0.8.1 - "@emotion/sheet": ^1.2.2 - "@emotion/utils": ^1.2.1 - "@emotion/weak-memoize": ^0.3.1 - stylis: 4.2.0 - checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 + "@emotion/memoize": ^0.8.0 + "@emotion/sheet": ^1.2.1 + "@emotion/utils": ^1.2.0 + "@emotion/weak-memoize": ^0.3.0 + stylis: 4.1.3 + checksum: 6b1efed2dffc93dac419409d91f6d57a200d858ec5ffa4b7c30080fdbd93db431ff86bb779c5b8830b8373f3c5dd754d9beb386604ed2667c7d55608ff653dfc languageName: node linkType: hard @@ -10312,19 +10312,19 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^1.1.0, @emotion/is-prop-valid@npm:^1.2.0, @emotion/is-prop-valid@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/is-prop-valid@npm:1.2.1" +"@emotion/is-prop-valid@npm:^1.1.0, @emotion/is-prop-valid@npm:^1.2.0": + version: 1.2.0 + resolution: "@emotion/is-prop-valid@npm:1.2.0" dependencies: - "@emotion/memoize": ^0.8.1 - checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a + "@emotion/memoize": ^0.8.0 + checksum: cc7a19850a4c5b24f1514665289442c8c641709e6f7711067ad550e05df331da0692a16148e85eda6f47e31b3261b64d74c5e25194d053223be16231f969d633 languageName: node linkType: hard -"@emotion/memoize@npm:^0.8.0, @emotion/memoize@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/memoize@npm:0.8.1" - checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 +"@emotion/memoize@npm:^0.8.0": + version: 0.8.0 + resolution: "@emotion/memoize@npm:0.8.0" + checksum: c87bb110b829edd8e1c13b90a6bc37cebc39af29c7599a1e66a48e06f9bec43e8e53495ba86278cc52e7589549492c8dfdc81d19f4fdec0cee6ba13d2ad2c928 languageName: node linkType: hard @@ -10365,10 +10365,10 @@ __metadata: languageName: node linkType: hard -"@emotion/sheet@npm:^1.2.2": - version: 1.2.2 - resolution: "@emotion/sheet@npm:1.2.2" - checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe +"@emotion/sheet@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/sheet@npm:1.2.1" + checksum: ce78763588ea522438156344d9f592203e2da582d8d67b32e1b0b98eaba26994c6c270f8c7ad46442fc9c0a9f048685d819cd73ca87e544520fd06f0e24a1562 languageName: node linkType: hard @@ -10425,17 +10425,17 @@ __metadata: languageName: node linkType: hard -"@emotion/utils@npm:^1.2.0, @emotion/utils@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/utils@npm:1.2.1" - checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 +"@emotion/utils@npm:^1.2.0": + version: 1.2.0 + resolution: "@emotion/utils@npm:1.2.0" + checksum: 55457a49ddd4db6a014ea0454dc09eaa23eedfb837095c8ff90470cb26a303f7ceb5fcc1e2190ef64683e64cfd33d3ba3ca3109cd87d12bc9e379e4195c9a4dd languageName: node linkType: hard -"@emotion/weak-memoize@npm:^0.3.0, @emotion/weak-memoize@npm:^0.3.1": - version: 0.3.1 - resolution: "@emotion/weak-memoize@npm:0.3.1" - checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 +"@emotion/weak-memoize@npm:^0.3.0": + version: 0.3.0 + resolution: "@emotion/weak-memoize@npm:0.3.0" + checksum: f43ef4c8b7de70d9fa5eb3105921724651e4188e895beb71f0c5919dc899a7b8743e1fdd99d38b9092dd5722c7be2312ebb47fbdad0c4e38bea58f6df5885cc0 languageName: node linkType: hard @@ -13012,15 +13012,15 @@ __metadata: languageName: node linkType: hard -"@mui/base@npm:5.0.0-beta.5": - version: 5.0.0-beta.5 - resolution: "@mui/base@npm:5.0.0-beta.5" +"@mui/base@npm:5.0.0-alpha.127": + version: 5.0.0-alpha.127 + resolution: "@mui/base@npm:5.0.0-alpha.127" dependencies: - "@babel/runtime": ^7.22.5 - "@emotion/is-prop-valid": ^1.2.1 + "@babel/runtime": ^7.21.0 + "@emotion/is-prop-valid": ^1.2.0 "@mui/types": ^7.2.4 - "@mui/utils": ^5.13.6 - "@popperjs/core": ^2.11.8 + "@mui/utils": ^5.12.0 + "@popperjs/core": ^2.11.7 clsx: ^1.2.1 prop-types: ^15.8.1 react-is: ^18.2.0 @@ -13031,28 +13031,28 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: d258f4735be3d7b3c48cbc97a3194817e86f9eb569ba311d6707e6ffc016c02bdbbfa26f2b9571953f2514e32c1247901777dc52e3f8b3e6d3736d0330178305 + checksum: 330baeef1fdaa513707f295e07a3436af24d0831a18109ed877f76b86cf1f392309833d33a2c7ca250db79fdf53f5e88c2618f876f50dbbbf9323bbf08e367e7 languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^5.13.4": - version: 5.13.4 - resolution: "@mui/core-downloads-tracker@npm:5.13.4" - checksum: 2d709a3efe2d11e82a6c369b0b47dc2d488f292a3213083102e6afbf009282c18cdb4b263c0cf6194e5c0cdfd4c735e180e25704015003851459b682bb53e2c8 +"@mui/core-downloads-tracker@npm:^5.12.2": + version: 5.12.2 + resolution: "@mui/core-downloads-tracker@npm:5.12.2" + checksum: d748bdc56df6fdfe6712550a94263cf094c53ddcb70f6a8f633caf23927edf5ac88b1f888429d895fe2a5045b27eb7aa9826ccee5b917e31973667d604ed87fe languageName: node linkType: hard "@mui/material@npm:^5.12.2": - version: 5.13.6 - resolution: "@mui/material@npm:5.13.6" + version: 5.12.2 + resolution: "@mui/material@npm:5.12.2" dependencies: - "@babel/runtime": ^7.22.5 - "@mui/base": 5.0.0-beta.5 - "@mui/core-downloads-tracker": ^5.13.4 - "@mui/system": ^5.13.6 + "@babel/runtime": ^7.21.0 + "@mui/base": 5.0.0-alpha.127 + "@mui/core-downloads-tracker": ^5.12.2 + "@mui/system": ^5.12.1 "@mui/types": ^7.2.4 - "@mui/utils": ^5.13.6 - "@types/react-transition-group": ^4.4.6 + "@mui/utils": ^5.12.0 + "@types/react-transition-group": ^4.4.5 clsx: ^1.2.1 csstype: ^3.1.2 prop-types: ^15.8.1 @@ -13071,16 +13071,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: 0c8936d8c1c20ecf1efc64dcd3f7101053255a720a907802a004abd7c96f49622c402e4d5cea42d9c1950a10dcbaf445cfb7da2ae7f239c733eadd8ec287ceab + checksum: a3464dfbcc496164967e134d6f1d40e060ee02fc2ddb5fcf648ca85580efdbd5eff5aab6a73486d0a7f329f7299127b52501a13993bb131cbd4e310c7f2e633f languageName: node linkType: hard -"@mui/private-theming@npm:^5.13.1": - version: 5.13.1 - resolution: "@mui/private-theming@npm:5.13.1" +"@mui/private-theming@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/private-theming@npm:5.12.0" dependencies: "@babel/runtime": ^7.21.0 - "@mui/utils": ^5.13.1 + "@mui/utils": ^5.12.0 prop-types: ^15.8.1 peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -13088,16 +13088,16 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 7211eba333a595ebfb964f7f5a561fba89ad06fc3db9e7bba795f9230afd687aa7a66d1a2fddf9dc5a73e1044729f7b3061ae461bb25eed64068ca08e018a38b + checksum: 761bc7a57e1643c2c4c327886882fa5efc7bacae1c6fffe6be4197f49d337261c916a883d96996445efcdedc0672251725c1e5b264b6250d6c9527fd0cafcc62 languageName: node linkType: hard -"@mui/styled-engine@npm:^5.13.2": - version: 5.13.2 - resolution: "@mui/styled-engine@npm:5.13.2" +"@mui/styled-engine@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/styled-engine@npm:5.12.0" dependencies: "@babel/runtime": ^7.21.0 - "@emotion/cache": ^11.11.0 + "@emotion/cache": ^11.10.7 csstype: ^3.1.2 prop-types: ^15.8.1 peerDependencies: @@ -13109,19 +13109,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: e99f49755406b55a1595bf5d2727f0c0e3fd9f914dce1ea3b6cac826efe05038f8e4bde52580bd6a5a4c62ad59e5582bdde6c17abc10d80e61a64da168803391 + checksum: 4a415473cf62aa05012f667dd2e9b1dc2fb175be5b0c4d0b8df541e2dac3d7db410e920e0d5910c8e2b8996a4fb51f74d79483e2878a9b5c0d334498f5537d74 languageName: node linkType: hard -"@mui/system@npm:^5.13.6": - version: 5.13.6 - resolution: "@mui/system@npm:5.13.6" +"@mui/system@npm:^5.12.1": + version: 5.12.1 + resolution: "@mui/system@npm:5.12.1" dependencies: - "@babel/runtime": ^7.22.5 - "@mui/private-theming": ^5.13.1 - "@mui/styled-engine": ^5.13.2 + "@babel/runtime": ^7.21.0 + "@mui/private-theming": ^5.12.0 + "@mui/styled-engine": ^5.12.0 "@mui/types": ^7.2.4 - "@mui/utils": ^5.13.6 + "@mui/utils": ^5.12.0 clsx: ^1.2.1 csstype: ^3.1.2 prop-types: ^15.8.1 @@ -13137,7 +13137,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: 978426ce5f3fe43ab536eec6f03a11845766c3640cc1da00c81e44f1d61f5c1bb53a33a28a70d83338183f818a04bdd8fb7c483824266aa8d46add5724186ae4 + checksum: b951959bf5e5af581319354c044f441d97849ff120cfec111d2ed5e7fa05efd63721acff96f48093b8e2bdeb5ccbe35c48613fb925be2b58c596447d10dbed3e languageName: node linkType: hard @@ -13153,18 +13153,18 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^5.13.1, @mui/utils@npm:^5.13.6": - version: 5.13.6 - resolution: "@mui/utils@npm:5.13.6" +"@mui/utils@npm:^5.12.0": + version: 5.12.0 + resolution: "@mui/utils@npm:5.12.0" dependencies: - "@babel/runtime": ^7.22.5 + "@babel/runtime": ^7.21.0 "@types/prop-types": ^15.7.5 - "@types/react-is": ^18.2.0 + "@types/react-is": ^16.7.1 || ^17.0.0 prop-types: ^15.8.1 react-is: ^18.2.0 peerDependencies: react: ^17.0.0 || ^18.0.0 - checksum: b5d3fff9153b6104d732b01363410a6472f06869d48e73d3d1ee38cf2b1255eaafb1afb90c48bb446143d312a434fd30e7b1664bf10941a2c610b7759cfd0a2e + checksum: 87b2c7468803b083f50af28d7c215c45291e73fef16570848b596d0f1cde1fc613c20e8951f431217b31451de254744abd50eda5013dedec4982420b5bf1c6b6 languageName: node linkType: hard @@ -14121,10 +14121,10 @@ __metadata: languageName: node linkType: hard -"@popperjs/core@npm:^2.11.8": - version: 2.11.8 - resolution: "@popperjs/core@npm:2.11.8" - checksum: e5c69fdebf52a4012f6a1f14817ca8e9599cb1be73dd1387e1785e2ed5e5f0862ff817f420a87c7fc532add1f88a12e25aeb010ffcbdc98eace3d55ce2139cf0 +"@popperjs/core@npm:^2.11.7": + version: 2.11.7 + resolution: "@popperjs/core@npm:2.11.7" + checksum: 5b6553747899683452a1d28898c1b39173a4efd780e74360bfcda8eb42f1c5e819602769c81a10920fc68c881d07fb40429604517d499567eac079cfa6470f19 languageName: node linkType: hard @@ -17337,12 +17337,12 @@ __metadata: languageName: node linkType: hard -"@types/react-is@npm:^18.2.0": - version: 18.2.1 - resolution: "@types/react-is@npm:18.2.1" +"@types/react-is@npm:^16.7.1 || ^17.0.0": + version: 17.0.3 + resolution: "@types/react-is@npm:17.0.3" dependencies: "@types/react": "*" - checksum: b44c3262efa2c68fa6fe2beb9ef86170b18305469461a3f97aa14943cc033cb21a26944f718bdb6434eea6e8f7fcba251c4f45b65b897a3fcf751b5a6003cf82 + checksum: 6abb7c47d54f012272650df8a962a28bd82f219291e5ef8b4dfa7fe0bb98ae243b060bf9fbe8ceff6213141794855a006db194b490b00ffd15842ae19d0ce1f0 languageName: node linkType: hard @@ -17394,12 +17394,12 @@ __metadata: languageName: node linkType: hard -"@types/react-transition-group@npm:^4.2.0, @types/react-transition-group@npm:^4.4.6": - version: 4.4.6 - resolution: "@types/react-transition-group@npm:4.4.6" +"@types/react-transition-group@npm:^4.2.0, @types/react-transition-group@npm:^4.4.5": + version: 4.4.5 + resolution: "@types/react-transition-group@npm:4.4.5" dependencies: "@types/react": "*" - checksum: 0872143821d7ee20a1d81e965f8b1e837837f11cd2206973f1f98655751992d9390304d58bac192c9cd923eca95bff107d8c9e3364a180240d5c2a6fd70fd7c3 + checksum: 265f1c74061556708ffe8d15559e35c60d6c11478c9950d3735575d2c116ca69f461d85effa06d73a613eb8b73c84fd32682feb57cf7c5f9e4284021dbca25b0 languageName: node linkType: hard @@ -39174,20 +39174,13 @@ __metadata: languageName: node linkType: hard -"stylis@npm:4.1.3": +"stylis@npm:4.1.3, stylis@npm:^4.0.6": version: 4.1.3 resolution: "stylis@npm:4.1.3" checksum: d04dbffcb9bf2c5ca8d8dc09534203c75df3bf711d33973ea22038a99cc475412a350b661ebd99cbc01daa50d7eedcf0d130d121800eb7318759a197023442a6 languageName: node linkType: hard -"stylis@npm:4.2.0, stylis@npm:^4.0.6": - version: 4.2.0 - resolution: "stylis@npm:4.2.0" - checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 - languageName: node - linkType: hard - "subscriptions-transport-ws@npm:^0.11.0": version: 0.11.0 resolution: "subscriptions-transport-ws@npm:0.11.0" From 6adb6f41711ab70916de8be7e8072643e4227f16 Mon Sep 17 00:00:00 2001 From: Eric Peterson Date: Wed, 21 Jun 2023 10:54:47 +0200 Subject: [PATCH 08/78] Pass flag from command down to function Signed-off-by: Eric Peterson --- .changeset/cli-always-yarn-pack-freal.md | 5 +++++ packages/cli/src/commands/buildWorkspace.ts | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/cli-always-yarn-pack-freal.md diff --git a/.changeset/cli-always-yarn-pack-freal.md b/.changeset/cli-always-yarn-pack-freal.md new file mode 100644 index 0000000000..b58ffea857 --- /dev/null +++ b/.changeset/cli-always-yarn-pack-freal.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed the `--alwaysYarnPack` flag on the`backstage-cli build-workspace` command. diff --git a/packages/cli/src/commands/buildWorkspace.ts b/packages/cli/src/commands/buildWorkspace.ts index 97bf2f1239..685e4b1cb0 100644 --- a/packages/cli/src/commands/buildWorkspace.ts +++ b/packages/cli/src/commands/buildWorkspace.ts @@ -17,12 +17,17 @@ import fs from 'fs-extra'; import { createDistWorkspace } from '../lib/packager'; -export default async (dir: string, packages: string[]) => { +type Options = { + alwaysYarnPack?: boolean; +}; + +export default async (dir: string, packages: string[], options: Options) => { if (!(await fs.pathExists(dir))) { throw new Error(`Target workspace directory doesn't exist, '${dir}'`); } await createDistWorkspace(packages, { targetDir: dir, + alwaysYarnPack: options.alwaysYarnPack, }); }; From df5fa4a219b1e80f678a129ba82accd627e26ad4 Mon Sep 17 00:00:00 2001 From: Tobias Graf Date: Mon, 26 Jun 2023 08:39:30 +0200 Subject: [PATCH 09/78] docs: fix react error in homepage getting started Signed-off-by: Tobias Graf --- docs/getting-started/homepage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/homepage.md b/docs/getting-started/homepage.md index 9c6f6380a1..04dfb13d6a 100644 --- a/docs/getting-started/homepage.md +++ b/docs/getting-started/homepage.md @@ -40,7 +40,7 @@ Inside your `packages/app` directory, create a new file where our new homepage c ```tsx import React from 'react'; -export const homePage = ( +export const HomePage = () => ( /* We will shortly compose a pretty homepage here. */

Welcome to Backstage!

); From f73b456da2828df852cf8127cd7e96ee573fb5a5 Mon Sep 17 00:00:00 2001 From: Ant Weiss Date: Mon, 26 Jun 2023 11:38:51 +0300 Subject: [PATCH 10/78] Fix some english in writing-custom-actions.md Fixing a few minor grammar issues that caught my eye. Signed-off-by: Ant Weiss --- docs/features/software-templates/writing-custom-actions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index f04940a418..c2f14d0ca0 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -4,8 +4,8 @@ title: Writing Custom Actions description: How to write your own actions --- -If you're wanting to extend the functionality of the Scaffolder, you can do so -by writing custom actions which can be used along side our +If you want to extend the functionality of the Scaffolder, you can do so +by writing custom actions which can be used alongside our [built-in actions](./builtin-actions.md). > Note: When adding custom actions, the actions array will **replace the @@ -65,7 +65,7 @@ The `createTemplateAction` takes an object which specifies the following: - `schema.input` - A `zod` or JSON schema object for input values to your function - `schema.output` - A `zod` or JSON schema object for values which are output from the function using `ctx.output` -- `handler` - the actual code which is run part of the action, with a context +- `handler` - the actual code which is run as part of the action, with a context You can also choose to define your custom action using JSON schema instead of `zod`: From 3424cbfe5f4a9d2a77e212aae17ee515b4d1aa7b Mon Sep 17 00:00:00 2001 From: Frank Kong Date: Fri, 23 Jun 2023 17:09:39 -0400 Subject: [PATCH 11/78] fix(dynatrace): update link that "View Entity in Dynatrace" redirects user to Signed-off-by: Frank Kong --- .changeset/mighty-shoes-refuse.md | 5 +++ .../Problems/ProblemsList/ProblemsList.tsx | 31 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 .changeset/mighty-shoes-refuse.md diff --git a/.changeset/mighty-shoes-refuse.md b/.changeset/mighty-shoes-refuse.md new file mode 100644 index 0000000000..ec17e5e357 --- /dev/null +++ b/.changeset/mighty-shoes-refuse.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-dynatrace': patch +--- + +updated the link that the "View Entity in Dynatrace" redirects the user to. diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index 2ee0dda48d..9a4ef4d9b9 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -43,6 +43,31 @@ const cardContents = ( ); }; +const dynatraceEntityPrefixes = (idPrefix: string): string => { + switch (idPrefix) { + case 'APPLICATION': + return '#uemapplications/uemappmetrics;uemapplicationId='; + + case 'SERVICE': + return '#services/serviceOverview;id='; + + case `MOBILE_APPLICATION`: + return '#mobileappoverview;appID='; + + case 'SYNTHETIC_TEST': + return 'ui/browser-monitor/'; + + case 'KUBERNETES_CLUSTER': + return 'ui/kubernetes/'; + + case 'PROCESS_GROUP_INSTANCE': + return '#processdetails;id='; + + default: + return 'ui/entity/'; + } +}; + export const ProblemsList = (props: ProblemsListProps) => { const { dynatraceEntityId } = props; const configApi = useApi(configApiRef); @@ -54,6 +79,10 @@ export const ProblemsList = (props: ProblemsListProps) => { }, [dynatraceApi, dynatraceEntityId]); const problems = value?.problems; + const deepLinkPrefix = dynatraceEntityPrefixes( + `${dynatraceEntityId.split('-')[0]}`, + ); + if (loading) { return ; } else if (error) { @@ -65,7 +94,7 @@ export const ProblemsList = (props: ProblemsListProps) => { subheader={`Last 2 hours - ${dynatraceEntityId}`} deepLink={{ title: 'View Entity in Dynatrace', - link: `${dynatraceBaseUrl}/#serviceOverview;id=${dynatraceEntityId}`, + link: `${dynatraceBaseUrl}/${deepLinkPrefix}${dynatraceEntityId}`, }} > {cardContents(problems || [], dynatraceBaseUrl)} From e4273c75e32db0535c162fc9ba8509ebda9bf123 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 10:15:40 +0000 Subject: [PATCH 12/78] fix(deps): update dependency @roadiehq/backstage-plugin-buildkite to v2.1.11 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8768ef26be..5509413e5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14351,8 +14351,8 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-buildkite@npm:^2.0.8": - version: 2.1.10 - resolution: "@roadiehq/backstage-plugin-buildkite@npm:2.1.10" + version: 2.1.11 + resolution: "@roadiehq/backstage-plugin-buildkite@npm:2.1.11" dependencies: "@backstage/catalog-model": ^1.3.0 "@backstage/core-components": ^0.13.1 @@ -14370,7 +14370,7 @@ __metadata: react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 7463cecec0329d5b19cb539a234699d6857234a045c5eb5b1589643b2d6e2817c0942274a71aa788047c32270fc095d9e27bb389cd0fe4430058fc1e43f572d7 + checksum: 7458942f74b259782b116b50424665cd8130a00e7bd9b900499c3fdc34c67916aa382f947fcceb1b87a539842efc8f6466518e9fd74507055d4225ed28886913 languageName: node linkType: hard From ee498650972279c8d65668163463763519060cca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 10:16:08 +0000 Subject: [PATCH 13/78] fix(deps): update dependency @rollup/plugin-yaml to v4.1.1 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8768ef26be..69906bd2e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14507,8 +14507,8 @@ __metadata: linkType: hard "@rollup/plugin-yaml@npm:^4.0.0": - version: 4.1.0 - resolution: "@rollup/plugin-yaml@npm:4.1.0" + version: 4.1.1 + resolution: "@rollup/plugin-yaml@npm:4.1.1" dependencies: "@rollup/pluginutils": ^5.0.1 js-yaml: ^4.1.0 @@ -14518,7 +14518,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: e8dcfbb6032ebd493e3cf1f3fcc7ee7e50509e3848a283ab21c743ec59b65b587d3755f744c7135f49db97aee1fc7eee818375519f293e7227e278ccf9d8b3dc + checksum: 99c8f9d4a354056bec8a9398786777203d87db32db0cad681f65ee896cbbbb8a61ace0b1c3d801622782ccf28e56eac6cdde950541fb1f7b3e651ad9c705d5c3 languageName: node linkType: hard From 6621d47abe6cd32b31dc609a79aaa3c08989f882 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 10:16:35 +0000 Subject: [PATCH 14/78] fix(deps): update dependency @tanstack/react-query to v4.29.17 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8768ef26be..b53b6eb132 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15768,18 +15768,19 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:4.29.11": - version: 4.29.11 - resolution: "@tanstack/query-core@npm:4.29.11" - checksum: 2a17223f34e99e17d564a15206668eb79324da72e630a47cf41690f92fb091a8669bdc89e9ab1b0d8f0e3e8f579529cfb0aa6f10b4fc58ea81cc7e5caede9229 +"@tanstack/query-core@npm:4.29.17": + version: 4.29.17 + resolution: "@tanstack/query-core@npm:4.29.17" + checksum: 0440d58a566fc3d6791a27eae439f497acc0142cb629ca0fb6e536f9c0a29d150b816ae33c9375411582da0b849a2ef141ef3b2284b8b313d5a4d6671b2548a3 languageName: node linkType: hard "@tanstack/react-query@npm:^4.1.3": - version: 4.29.12 - resolution: "@tanstack/react-query@npm:4.29.12" + version: 4.29.17 + resolution: "@tanstack/react-query@npm:4.29.17" dependencies: - "@tanstack/query-core": 4.29.11 + "@tanstack/query-core": 4.29.17 + client-only: 0.0.1 use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -15790,7 +15791,7 @@ __metadata: optional: true react-native: optional: true - checksum: aea231af648688c5eafdbbda0667034221cca8b77e00690ab54950b7cc0296d14646931aee44fc5f18d5ce4d683b5d234b053eed5c0a5c340bbbacdab873a70b + checksum: 5630dcb93100a48165464188aef2f53ed8e6bcb65669ff919f0916b7a21b58c7e21b06f4e4a331d1b9bfb8a89677266e79bc2a3bc80af62d763b08b3b195f7ea languageName: node linkType: hard @@ -20804,6 +20805,13 @@ __metadata: languageName: node linkType: hard +"client-only@npm:0.0.1": + version: 0.0.1 + resolution: "client-only@npm:0.0.1" + checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 + languageName: node + linkType: hard + "clipboard@npm:^2.0.4": version: 2.0.11 resolution: "clipboard@npm:2.0.11" From 764f05acc1ff07fcfb78a5ee3c9de45e781c1754 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 10:29:42 +0000 Subject: [PATCH 15/78] chore(deps): update dependency @frsource/cypress-plugin-visual-regression-diff to v3.3.10 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 74 +++++++++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8768ef26be..8ed4c8e9e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10882,27 +10882,27 @@ __metadata: languageName: node linkType: hard -"@frsource/base64@npm:1.0.14": - version: 1.0.14 - resolution: "@frsource/base64@npm:1.0.14" - checksum: 9a5b718e4ac12fd1b5bfdefcdf669fb0a125599fb6cd55564da3beeccd7a5707f58bc41f572268a8120af15ccca32355e8384341561f738397521020e0c2564c +"@frsource/base64@npm:1.0.17": + version: 1.0.17 + resolution: "@frsource/base64@npm:1.0.17" + checksum: a01689ef785516ff0b7460f55792685fc782f8507518768396acb9283270d50a8149774f3acd5fa690ccd5a48b5ec4ace90a491458ffdd9e9f591c6b23eb5da5 languageName: node linkType: hard "@frsource/cypress-plugin-visual-regression-diff@npm:^3.2.8": - version: 3.3.9 - resolution: "@frsource/cypress-plugin-visual-regression-diff@npm:3.3.9" + version: 3.3.10 + resolution: "@frsource/cypress-plugin-visual-regression-diff@npm:3.3.10" dependencies: - "@frsource/base64": 1.0.14 - glob: 8.0.3 + "@frsource/base64": 1.0.17 + glob: 8.1.0 meta-png: 1.0.6 move-file: 2.1.0 pixelmatch: 5.3.0 pngjs: 7.0.0 - sharp: 0.31.2 + sharp: 0.32.1 peerDependencies: cypress: ">=4.5.0" - checksum: da3bfaec2d54a314e8bcda915f85e9bc9f7cf53224e588a24ab594d7f0047ad9b5bbda3be8d6f63602f8612d2c7e35c8ca4de307b4f9eb098e04c3af593f090c + checksum: 879954ecba8829fd870379a1f4150a511fceab4c5a5c3df8abbab54e655e6560d52d925109364ea7f2d3484467ed5e9c3e4cfaf0058c12bbfbfc21d76ed79b40 languageName: node linkType: hard @@ -26143,16 +26143,16 @@ __metadata: languageName: node linkType: hard -"glob@npm:8.0.3": - version: 8.0.3 - resolution: "glob@npm:8.0.3" +"glob@npm:8.1.0, glob@npm:^8.0.0, glob@npm:^8.0.1, glob@npm:^8.0.3": + version: 8.1.0 + resolution: "glob@npm:8.1.0" dependencies: fs.realpath: ^1.0.0 inflight: ^1.0.4 inherits: 2 minimatch: ^5.0.1 once: ^1.3.0 - checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 languageName: node linkType: hard @@ -26185,19 +26185,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.0, glob@npm:^8.0.1, glob@npm:^8.0.3": - version: 8.1.0 - resolution: "glob@npm:8.1.0" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^5.0.1 - once: ^1.3.0 - checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 - languageName: node - linkType: hard - "global-agent@npm:^3.0.0": version: 3.0.0 resolution: "global-agent@npm:3.0.0" @@ -32564,12 +32551,12 @@ __metadata: languageName: node linkType: hard -"node-addon-api@npm:^5.0.0": - version: 5.1.0 - resolution: "node-addon-api@npm:5.1.0" +"node-addon-api@npm:^6.1.0": + version: 6.1.0 + resolution: "node-addon-api@npm:6.1.0" dependencies: node-gyp: latest - checksum: 2508bd2d2981945406243a7bd31362fc7af8b70b8b4d65f869c61731800058fb818cc2fd36c8eac714ddd0e568cc85becf5e165cebbdf7b5024d5151bbc75ea1 + checksum: 3a539510e677cfa3a833aca5397300e36141aca064cdc487554f2017110709a03a95da937e98c2a14ec3c626af7b2d1b6dabe629a481f9883143d0d5bff07bf2 languageName: node linkType: hard @@ -37761,7 +37748,18 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:~7.3.0": +"semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.0": + version: 7.5.3 + resolution: "semver@npm:7.5.3" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 9d58db16525e9f749ad0a696a1f27deabaa51f66e91d2fa2b0db3de3e9644e8677de3b7d7a03f4c15bc81521e0c3916d7369e0572dbde250d9bedf5194e2a8a7 + languageName: node + linkType: hard + +"semver@npm:~7.3.0": version: 7.3.8 resolution: "semver@npm:7.3.8" dependencies: @@ -37961,20 +37959,20 @@ __metadata: languageName: node linkType: hard -"sharp@npm:0.31.2": - version: 0.31.2 - resolution: "sharp@npm:0.31.2" +"sharp@npm:0.32.1": + version: 0.32.1 + resolution: "sharp@npm:0.32.1" dependencies: color: ^4.2.3 detect-libc: ^2.0.1 - node-addon-api: ^5.0.0 + node-addon-api: ^6.1.0 node-gyp: latest prebuild-install: ^7.1.1 - semver: ^7.3.8 + semver: ^7.5.0 simple-get: ^4.0.1 tar-fs: ^2.1.1 tunnel-agent: ^0.6.0 - checksum: 076717b7a073ea47bb522ff2931b74b6608daeb6f7ae334e4848d47fdf4d23bcb18cd49044fd5fb27ef27a1a4aa87d141894d67d1c4bb15a6e2e63cf4dbe329e + checksum: 99f50df380442aa8f3f952dd6f2e27634f9cab249cce47aa7f1a97c468334979ea94d71555f782aae5f5016e44b7832799f1c5ea1cb3ca975c089acd00e62e2e languageName: node linkType: hard From 92c86678fc59a876636e6b8c047b55d6d46495ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:05:29 +0000 Subject: [PATCH 16/78] Bump semver from 7.3.7 to 7.5.3 in /cypress Bumps [semver](https://github.com/npm/node-semver) from 7.3.7 to 7.5.3. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v7.3.7...v7.5.3) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] --- cypress/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cypress/yarn.lock b/cypress/yarn.lock index 36dd0b056d..290f441c4c 100644 --- a/cypress/yarn.lock +++ b/cypress/yarn.lock @@ -1230,13 +1230,13 @@ __metadata: linkType: hard "semver@npm:^7.3.2": - version: 7.3.7 - resolution: "semver@npm:7.3.7" + version: 7.5.3 + resolution: "semver@npm:7.5.3" dependencies: lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232 + checksum: 9d58db16525e9f749ad0a696a1f27deabaa51f66e91d2fa2b0db3de3e9644e8677de3b7d7a03f4c15bc81521e0c3916d7369e0572dbde250d9bedf5194e2a8a7 languageName: node linkType: hard From 4b3cf4b58f183d00429b11bda15869b8f6738810 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:06:42 +0000 Subject: [PATCH 17/78] fix(deps): update dependency @roadiehq/backstage-plugin-github-insights to v2.3.14 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8ed4c8e9e6..e32b5a74c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14375,8 +14375,8 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-insights@npm:^2.0.5": - version: 2.3.13 - resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.3.13" + version: 2.3.14 + resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.3.14" dependencies: "@backstage/catalog-model": ^1.3.0 "@backstage/core-components": ^0.13.1 @@ -14398,7 +14398,7 @@ __metadata: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: eb555d1b4bab82cd6cf66ea823b35fedb72d1ca3a6615b619d6cd2ff24af131501346b9ac2b1dcfb83f5d69b42ac95fb96f081e644a82b75a77a71b45344f2fc + checksum: 990667bcbdbd9f2504b4c020b79bd1e809c165ac4ff93f277fe3be9e9a1247ed4e2034f992146c5e7a153aa8d268c06e3777b693a9337564117be43d321f894c languageName: node linkType: hard From e49e52b1754a22dc3a027daf5628a6269bcafb1f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:32:31 +0000 Subject: [PATCH 18/78] fix(deps): update dependency @roadiehq/backstage-plugin-github-pull-requests to v2.5.12 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index fb33e31b8f..f78504bc5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14403,8 +14403,8 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-pull-requests@npm:^2.2.7": - version: 2.5.11 - resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.11" + version: 2.5.12 + resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.12" dependencies: "@backstage/catalog-model": ^1.3.0 "@backstage/core-components": ^0.13.1 @@ -14427,7 +14427,7 @@ __metadata: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: fe7c6cd35bbf23b4464fe94dbbd9a085b1b164bab214e095e6efc4e7ec5b5ca19670a9384541d83eeaa1a6d6ba2aa22a3f457c7166165ec0f078f18c2355e3e1 + checksum: 4113de2eb3f207e05581033c05879c98d858ef3534fb1256d5dc4f8e1f4cc33e0530952d4fd74c62df063c22af6c1e0f28af770bd55d8b41b4402df68450f98c languageName: node linkType: hard From 07ad3155a885c5ce467ea9fdd8e88a8d6a25ac28 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 12:06:43 +0000 Subject: [PATCH 19/78] fix(deps): update dependency @roadiehq/backstage-plugin-travis-ci to v2.1.11 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c0e50f93b1..9551d56c4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14432,8 +14432,8 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-travis-ci@npm:^2.0.5": - version: 2.1.10 - resolution: "@roadiehq/backstage-plugin-travis-ci@npm:2.1.10" + version: 2.1.11 + resolution: "@roadiehq/backstage-plugin-travis-ci@npm:2.1.11" dependencies: "@backstage/catalog-model": ^1.3.0 "@backstage/core-components": ^0.13.1 @@ -14453,7 +14453,7 @@ __metadata: react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 974422b46513af167bb34057e196cd27bb48224690a16f9f42540fe8c85ddc51201fc71fc1ded023825932b4fcbdb3787a3dab74ce174c4694db9f3d2d465921 + checksum: 1da335f35de55e77bafdf4893fd1a66d3fa5b5adc05a6d88a97b484bd4c4a5ac3c23e6a2104ceef64fcbdf45f950d489536ceb3ec01e0f3f51dbae9392159a62 languageName: node linkType: hard From 59fe41f4da1766107d0dca5e4353721c8a0f3756 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 12:07:09 +0000 Subject: [PATCH 20/78] fix(deps): update dependency @uiw/react-codemirror to v4.21.5 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index c0e50f93b1..8fed326263 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18127,9 +18127,9 @@ __metadata: languageName: node linkType: hard -"@uiw/codemirror-extensions-basic-setup@npm:4.21.3": - version: 4.21.3 - resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.21.3" +"@uiw/codemirror-extensions-basic-setup@npm:4.21.5": + version: 4.21.5 + resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.21.5" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/commands": ^6.0.0 @@ -18146,19 +18146,19 @@ __metadata: "@codemirror/search": ">=6.0.0" "@codemirror/state": ">=6.0.0" "@codemirror/view": ">=6.0.0" - checksum: 6e6081c363391192c9f83c8277cc6e9de15ac6d9ad54a1318a165dae17a0ac944c2ed0fac6c955cf89dfefbd2c66ccac4ca43a085002dd70f580a02ca725fd46 + checksum: 8684dbc75c37b9942a1545914378291203feda78ff7196fdf50584f5bdf6176b4387a2b1d7f911dde2fdec108aefcf40273497ba8725ae10a69b264e9e6633ac languageName: node linkType: hard "@uiw/react-codemirror@npm:^4.9.3": - version: 4.21.3 - resolution: "@uiw/react-codemirror@npm:4.21.3" + version: 4.21.5 + resolution: "@uiw/react-codemirror@npm:4.21.5" dependencies: "@babel/runtime": ^7.18.6 "@codemirror/commands": ^6.1.0 "@codemirror/state": ^6.1.1 "@codemirror/theme-one-dark": ^6.0.0 - "@uiw/codemirror-extensions-basic-setup": 4.21.3 + "@uiw/codemirror-extensions-basic-setup": 4.21.5 codemirror: ^6.0.0 peerDependencies: "@babel/runtime": ">=7.11.0" @@ -18168,7 +18168,7 @@ __metadata: codemirror: ">=6.0.0" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 7864f63b23283c2cab85e1bfce6cc00b0cd8787867ad878b359fa047676f70eac0b96d68d98dc0925ed8b2f6ba4e1cc4ee7196ddc70053bacbd5ca0948e67944 + checksum: b3c8c9134b1e8520488682be0a711bbe3283e1323673ed9b0a1a53ee572684311d9a495c73b572e226963b6d0f235215f5da87ef9ab194ee7e6e6ffd74340211 languageName: node linkType: hard From f06f0e46ba882fec8e575d8908d5561edbb5a41a Mon Sep 17 00:00:00 2001 From: Aramis Date: Sun, 4 Jun 2023 16:33:32 -0400 Subject: [PATCH 21/78] feat(catalog-plugin): Add support for setting placeholder resolvers. Signed-off-by: Aramis --- .changeset/sour-humans-begin.md | 6 +++++ plugins/catalog-backend/api-report.md | 8 +++--- .../src/modules/core/PlaceholderProcessor.ts | 20 +++++++++++--- .../src/service/CatalogPlugin.ts | 18 +++++++++++++ plugins/catalog-node/alpha-api-report.md | 3 +++ plugins/catalog-node/api-report.md | 24 +++++++++++++++++ plugins/catalog-node/src/extensions.ts | 2 ++ plugins/catalog-node/src/processing/index.ts | 8 +++++- plugins/catalog-node/src/processing/types.ts | 26 +++++++++++++++++++ 9 files changed, 106 insertions(+), 9 deletions(-) create mode 100644 .changeset/sour-humans-begin.md diff --git a/.changeset/sour-humans-begin.md b/.changeset/sour-humans-begin.md new file mode 100644 index 0000000000..1f090f1c89 --- /dev/null +++ b/.changeset/sour-humans-begin.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-backend': minor +'@backstage/plugin-catalog-node': minor +--- + +Support placeholder resolvers in the CatalogPlugin, also moves `PlaceholderResolver` and related types from `@backstage/plugin-catalog-backend` to `@backstage/plugin-catalog-node`. diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index 3e97442dd4..84d8de4753 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -410,12 +410,12 @@ export type PlaceholderProcessorOptions = { integrations: ScmIntegrationRegistry; }; -// @public (undocumented) +// @public @deprecated (undocumented) export type PlaceholderResolver = ( params: PlaceholderResolverParams, ) => Promise; -// @public (undocumented) +// @public @deprecated (undocumented) export type PlaceholderResolverParams = { key: string; value: JsonValue; @@ -425,10 +425,10 @@ export type PlaceholderResolverParams = { emit: CatalogProcessorEmit_2; }; -// @public (undocumented) +// @public @deprecated (undocumented) export type PlaceholderResolverRead = (url: string) => Promise; -// @public (undocumented) +// @public @deprecated (undocumented) export type PlaceholderResolverResolveUrl = ( url: string, base: string, diff --git a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.ts b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.ts index 79fcee960c..ee61e931e3 100644 --- a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.ts +++ b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.ts @@ -26,16 +26,25 @@ import { processingResult, } from '@backstage/plugin-catalog-node'; -/** @public */ +/** + * @public + * @deprecated Use the exported value from `@backstage/plugin-catalog-node` instead. + */ export type PlaceholderResolverRead = (url: string) => Promise; -/** @public */ +/** + * @public + * @deprecated Use the exported value from `@backstage/plugin-catalog-node` instead. + */ export type PlaceholderResolverResolveUrl = ( url: string, base: string, ) => string; -/** @public */ +/** + * @public + * @deprecated Use the exported value from `@backstage/plugin-catalog-node` instead. + */ export type PlaceholderResolverParams = { key: string; value: JsonValue; @@ -45,7 +54,10 @@ export type PlaceholderResolverParams = { emit: CatalogProcessorEmit; }; -/** @public */ +/** + * @public + * @deprecated Use the exported value from `@backstage/plugin-catalog-node` instead. + */ export type PlaceholderResolver = ( params: PlaceholderResolverParams, ) => Promise; diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index e0399c1683..d77b034517 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -27,10 +27,12 @@ import { EntityProvider, } from '@backstage/plugin-catalog-node'; import { loggerToWinstonLogger } from '@backstage/backend-common'; +import { PlaceholderResolver } from '../modules'; class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { #processors = new Array(); #entityProviders = new Array(); + #placeholderResolvers: Record = {}; addProcessor( ...processors: Array> @@ -44,6 +46,14 @@ class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { this.#entityProviders.push(...providers.flat()); } + addPlaceholderResolver(key: string, resolver: PlaceholderResolver) { + if (key in this.#placeholderResolvers) + throw new Error( + `A placeholder resolver for '${key}' has already been set up, please check your config.`, + ); + this.#placeholderResolvers[key] = resolver; + } + get processors() { return this.#processors; } @@ -51,6 +61,10 @@ class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { get entityProviders() { return this.#entityProviders; } + + get placeholderResolvers() { + return this.#placeholderResolvers; + } } /** @@ -99,6 +113,10 @@ export const catalogPlugin = createBackendPlugin({ }); builder.addProcessor(...processingExtensions.processors); builder.addEntityProvider(...processingExtensions.entityProviders); + Object.entries(processingExtensions.placeholderResolvers).forEach( + ([key, resolver]) => builder.setPlaceholderResolver(key, resolver), + ); + const { processingEngine, router } = await builder.build(); await processingEngine.start(); diff --git a/plugins/catalog-node/alpha-api-report.md b/plugins/catalog-node/alpha-api-report.md index ba1bcd47b2..082228a58e 100644 --- a/plugins/catalog-node/alpha-api-report.md +++ b/plugins/catalog-node/alpha-api-report.md @@ -7,6 +7,7 @@ import { CatalogApi } from '@backstage/catalog-client'; import { CatalogProcessor } from '@backstage/plugin-catalog-node'; import { EntityProvider } from '@backstage/plugin-catalog-node'; import { ExtensionPoint } from '@backstage/backend-plugin-api'; +import { PlaceholderResolver } from '@backstage/plugin-catalog-node'; import { ServiceRef } from '@backstage/backend-plugin-api'; // @alpha (undocumented) @@ -16,6 +17,8 @@ export interface CatalogProcessingExtensionPoint { ...providers: Array> ): void; // (undocumented) + addPlaceholderResolver(key: string, resolver: PlaceholderResolver): void; + // (undocumented) addProcessor( ...processors: Array> ): void; diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md index 47a8e66ca9..34d7a4bc9b 100644 --- a/plugins/catalog-node/api-report.md +++ b/plugins/catalog-node/api-report.md @@ -152,6 +152,30 @@ export function locationSpecToLocationEntity(opts: { // @public export function locationSpecToMetadataName(location: LocationSpec_2): string; +// @public (undocumented) +export type PlaceholderResolver = ( + params: PlaceholderResolverParams, +) => Promise; + +// @public (undocumented) +export type PlaceholderResolverParams = { + key: string; + value: JsonValue; + baseUrl: string; + read: PlaceholderResolverRead; + resolveUrl: PlaceholderResolverResolveUrl; + emit: CatalogProcessorEmit; +}; + +// @public (undocumented) +export type PlaceholderResolverRead = (url: string) => Promise; + +// @public (undocumented) +export type PlaceholderResolverResolveUrl = ( + url: string, + base: string, +) => string; + // @public export const processingResult: Readonly<{ readonly notFoundError: ( diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 0466af36b0..5225ad7545 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -17,6 +17,7 @@ import { createExtensionPoint } from '@backstage/backend-plugin-api'; import { EntityProvider, CatalogProcessor, + PlaceholderResolver, } from '@backstage/plugin-catalog-node'; /** @@ -29,6 +30,7 @@ export interface CatalogProcessingExtensionPoint { addEntityProvider( ...providers: Array> ): void; + addPlaceholderResolver(key: string, resolver: PlaceholderResolver): void; } /** diff --git a/plugins/catalog-node/src/processing/index.ts b/plugins/catalog-node/src/processing/index.ts index 90b87aa850..40cee63e25 100644 --- a/plugins/catalog-node/src/processing/index.ts +++ b/plugins/catalog-node/src/processing/index.ts @@ -14,4 +14,10 @@ * limitations under the License. */ -export type { DeferredEntity } from './types'; +export type { + DeferredEntity, + PlaceholderResolver, + PlaceholderResolverParams, + PlaceholderResolverRead, + PlaceholderResolverResolveUrl, +} from './types'; diff --git a/plugins/catalog-node/src/processing/types.ts b/plugins/catalog-node/src/processing/types.ts index 25e76faea3..b98e2da1b7 100644 --- a/plugins/catalog-node/src/processing/types.ts +++ b/plugins/catalog-node/src/processing/types.ts @@ -15,6 +15,8 @@ */ import { Entity } from '@backstage/catalog-model'; +import { JsonValue } from '@backstage/types'; +import { CatalogProcessorEmit } from '../api'; /** * Entities that are not yet processed. @@ -24,3 +26,27 @@ export type DeferredEntity = { entity: Entity; locationKey?: string; }; + +/** @public */ +export type PlaceholderResolverRead = (url: string) => Promise; + +/** @public */ +export type PlaceholderResolverResolveUrl = ( + url: string, + base: string, +) => string; + +/** @public */ +export type PlaceholderResolverParams = { + key: string; + value: JsonValue; + baseUrl: string; + read: PlaceholderResolverRead; + resolveUrl: PlaceholderResolverResolveUrl; + emit: CatalogProcessorEmit; +}; + +/** @public */ +export type PlaceholderResolver = ( + params: PlaceholderResolverParams, +) => Promise; From 5969639fd07581e6b159b33f69067347597fa362 Mon Sep 17 00:00:00 2001 From: Heikki Hellgren Date: Thu, 15 Jun 2023 14:20:40 +0300 Subject: [PATCH 22/78] feat: allow specifying custom title for DevToolsLayout Signed-off-by: Heikki Hellgren --- .changeset/angry-phones-wash.md | 5 +++++ plugins/devtools/api-report.md | 4 +++- .../src/components/DevToolsLayout/DevToolsLayout.tsx | 10 ++++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 .changeset/angry-phones-wash.md diff --git a/.changeset/angry-phones-wash.md b/.changeset/angry-phones-wash.md new file mode 100644 index 0000000000..ac59a924a2 --- /dev/null +++ b/.changeset/angry-phones-wash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-devtools': patch +--- + +Allow specifying custom title for `DevToolsLayout` diff --git a/plugins/devtools/api-report.md b/plugins/devtools/api-report.md index c9cfbf77e5..3e3fb99ff7 100644 --- a/plugins/devtools/api-report.md +++ b/plugins/devtools/api-report.md @@ -15,12 +15,14 @@ export const ConfigContent: () => JSX.Element; // @public export const DevToolsLayout: { - ({ children }: DevToolsLayoutProps): JSX.Element; + ({ children, title, subtitle }: DevToolsLayoutProps): JSX.Element; Route: (props: SubRoute) => null; }; // @public (undocumented) export type DevToolsLayoutProps = { + title?: string; + subtitle?: string; children?: default_2.ReactNode; }; diff --git a/plugins/devtools/src/components/DevToolsLayout/DevToolsLayout.tsx b/plugins/devtools/src/components/DevToolsLayout/DevToolsLayout.tsx index 12cd3f7666..ae9a337ced 100644 --- a/plugins/devtools/src/components/DevToolsLayout/DevToolsLayout.tsx +++ b/plugins/devtools/src/components/DevToolsLayout/DevToolsLayout.tsx @@ -40,6 +40,8 @@ attachComponentData(Route, 'core.gatherMountPoints', true); /** @public */ export type DevToolsLayoutProps = { + title?: string; + subtitle?: string; children?: React.ReactNode; }; @@ -56,7 +58,11 @@ export type DevToolsLayoutProps = { * ``` * @public */ -export const DevToolsLayout = ({ children }: DevToolsLayoutProps) => { +export const DevToolsLayout = ({ + children, + title, + subtitle, +}: DevToolsLayoutProps) => { const routes = useElementFilter(children, elements => elements .selectByComponentData({ @@ -70,7 +76,7 @@ export const DevToolsLayout = ({ children }: DevToolsLayoutProps) => { return ( -
+
); From a011d2316a582019f386b17ab864009142c45bc7 Mon Sep 17 00:00:00 2001 From: Carlos Esteban Lopez Date: Thu, 22 Jun 2023 15:10:44 -0500 Subject: [PATCH 23/78] fix(core-components): Fix keyboard navigation & focus highlight on Select component. Signed-off-by: Carlos Esteban Lopez --- .changeset/twenty-seas-float.md | 5 +++++ packages/core-components/src/components/Select/Select.tsx | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 .changeset/twenty-seas-float.md diff --git a/.changeset/twenty-seas-float.md b/.changeset/twenty-seas-float.md new file mode 100644 index 0000000000..3ee79ba4e5 --- /dev/null +++ b/.changeset/twenty-seas-float.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Fix keyboard navigation & focus highlight on Select component. diff --git a/packages/core-components/src/components/Select/Select.tsx b/packages/core-components/src/components/Select/Select.tsx index dbf5601112..918ce301fb 100644 --- a/packages/core-components/src/components/Select/Select.tsx +++ b/packages/core-components/src/components/Select/Select.tsx @@ -43,6 +43,9 @@ const BootstrapInput = withStyles( 'label + &': { marginTop: theme.spacing(3), }, + '&.Mui-focused > div[role=button]': { + borderColor: theme.palette.primary.main, + }, }, input: { borderRadius: theme.shape.borderRadius, @@ -75,7 +78,7 @@ const useStyles = makeStyles( (theme: Theme) => createStyles({ formControl: { - margin: `${theme.spacing(1)} 0px`, + margin: theme.spacing(1, 0), maxWidth: 300, }, label: { @@ -212,7 +215,6 @@ export function SelectComponent(props: SelectProps) { onClose={handleClose} input={} label={label} - tabIndex={0} renderValue={s => multiple && (value as any[]).length !== 0 ? ( From cf560401c83cda4fdb31d365951ae203966e871d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 14:24:19 +0000 Subject: [PATCH 24/78] fix(deps): update dependency eslint-plugin-jest to v27.2.2 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2537b094eb..cec2efc967 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24156,19 +24156,20 @@ __metadata: linkType: hard "eslint-plugin-jest@npm:^27.0.0": - version: 27.2.1 - resolution: "eslint-plugin-jest@npm:27.2.1" + version: 27.2.2 + resolution: "eslint-plugin-jest@npm:27.2.2" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: "@typescript-eslint/eslint-plugin": ^5.0.0 eslint: ^7.0.0 || ^8.0.0 + jest: "*" peerDependenciesMeta: "@typescript-eslint/eslint-plugin": optional: true jest: optional: true - checksum: 579a4d26304cc6748b2e6dff6c965ea7a21b618d8b051eb02727d25cf5c7767f6db8ef5237531635ff77e242b983b973e7cb8c820a4d20d5bda73358c452a8ab + checksum: 98b63252d985f5dedf36ce9587dd4a0d24daf71ca8a997258343402c0d33ddd5070502378dafd9ac7fc0ef2e0d557b5c77f18e09ad73c71a52de8061db88293f languageName: node linkType: hard From 851a355b0919be2e3f622f02b9621dd9aa08e9cc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:15:46 +0000 Subject: [PATCH 25/78] fix(deps): update octokit monorepo Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/yarn.lock b/yarn.lock index cec2efc967..697b463991 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13630,8 +13630,8 @@ __metadata: linkType: hard "@octokit/oauth-app@npm:^4.0.7, @octokit/oauth-app@npm:^4.2.0, @octokit/oauth-app@npm:^4.2.1": - version: 4.2.2 - resolution: "@octokit/oauth-app@npm:4.2.2" + version: 4.2.4 + resolution: "@octokit/oauth-app@npm:4.2.4" dependencies: "@octokit/auth-oauth-app": ^5.0.0 "@octokit/auth-oauth-user": ^2.0.0 @@ -13642,7 +13642,7 @@ __metadata: "@types/aws-lambda": ^8.10.83 fromentries: ^1.3.1 universal-user-agent: ^6.0.0 - checksum: a15a849fce7c9b95d3d28583ee20a3a6b4df3d972bf65506204e05ef36998b8bc3359f918524b090157153fb3461e222b7094894bd85374159e84ad774f06ccd + checksum: 6d9798c9e63e84f3cb3031ac3f06f45c6ea053fd201be9a07a508786fd400479d7d9f6f85707d0fff7f094a265c7e966a2fa4c884001b99f02ddd927bf499d06 languageName: node linkType: hard @@ -13775,14 +13775,14 @@ __metadata: languageName: node linkType: hard -"@octokit/request-error@npm:^3.0.0": - version: 3.0.1 - resolution: "@octokit/request-error@npm:3.0.1" +"@octokit/request-error@npm:^3.0.0, @octokit/request-error@npm:^v3.0.3": + version: 3.0.3 + resolution: "@octokit/request-error@npm:3.0.3" dependencies: - "@octokit/types": ^7.0.0 + "@octokit/types": ^9.0.0 deprecation: ^2.0.0 once: ^1.4.0 - checksum: ae386b5181b3cb66b844047a21d062b683cd7ec4daf70cb9868406c1a51608a72d683955e692c7cc6237d66a09b12c6bcf102a712985da68bcedcc3820117e75 + checksum: 5db0b514732686b627e6ed9ef1ccdbc10501f1b271a9b31f784783f01beee70083d7edcfeb35fbd7e569fa31fdd6762b1ff6b46101700d2d97e7e48e749520d0 languageName: node linkType: hard @@ -13801,8 +13801,8 @@ __metadata: linkType: hard "@octokit/request@npm:^6.0.0": - version: 6.2.6 - resolution: "@octokit/request@npm:6.2.6" + version: 6.2.8 + resolution: "@octokit/request@npm:6.2.8" dependencies: "@octokit/endpoint": ^7.0.0 "@octokit/request-error": ^3.0.0 @@ -13810,19 +13810,19 @@ __metadata: is-plain-object: ^5.0.0 node-fetch: ^2.6.7 universal-user-agent: ^6.0.0 - checksum: 0732fb60e20b0348fc61d856c9e234038e34f9ce062b04b968df18c2f106da094055d55c93f653284298b03e6dac2ea5a4b5c5a97686b529ed30447bd37f2773 + checksum: 3747106f50d7c462131ff995b13defdd78024b7becc40283f4ac9ea0af2391ff33a0bb476a05aa710346fe766d20254979079a1d6f626112015ba271fe38f3e2 languageName: node linkType: hard "@octokit/rest@npm:^19.0.3": - version: 19.0.11 - resolution: "@octokit/rest@npm:19.0.11" + version: 19.0.13 + resolution: "@octokit/rest@npm:19.0.13" dependencies: "@octokit/core": ^4.2.1 "@octokit/plugin-paginate-rest": ^6.1.2 "@octokit/plugin-request-log": ^1.0.4 "@octokit/plugin-rest-endpoint-methods": ^7.1.2 - checksum: 147518ad51d214ead88adc717b5fdc4f33317949d58c124f4069bdf07d2e6b49fa66861036b9e233aed71fcb88ff367a6da0357653484e466175ab4fb7183b3b + checksum: ca1553e3fe46efabffef60e68e4a228d4cc0f0d545daf7f019560f666d3e934c6f3a6402a42bbd786af4f3c0a6e69380776312f01b7d52998fe1bbdd1b068f69 languageName: node linkType: hard @@ -33189,8 +33189,8 @@ __metadata: linkType: hard "octokit@npm:^2.0.0, octokit@npm:^2.0.4": - version: 2.0.19 - resolution: "octokit@npm:2.0.19" + version: 2.1.0 + resolution: "octokit@npm:2.1.0" dependencies: "@octokit/app": ^13.1.5 "@octokit/core": ^4.2.1 @@ -33199,8 +33199,9 @@ __metadata: "@octokit/plugin-rest-endpoint-methods": ^7.1.1 "@octokit/plugin-retry": ^4.1.3 "@octokit/plugin-throttling": ^5.2.2 + "@octokit/request-error": ^v3.0.3 "@octokit/types": ^9.2.2 - checksum: cc0acd5427a3dc25f70ca0ffd2e828cc7bcd51c7e4586caf06e40353f87084addd4ed6df59d441b087b9cf597540069d21bc75c27b2836e78a59e5f9f3fbec38 + checksum: 612f3c40c0d8d330793476066fcf2a6ed77ad52690201d7c2df11044c4b3dfbefefbe13443ac4037a2128c6f13d59a2f481bc0b315b1bc650e5ff6da9a811e61 languageName: node linkType: hard From 1745959daf9844def1ec085986284d3bde1f6078 Mon Sep 17 00:00:00 2001 From: OscarDHdz Date: Fri, 23 Jun 2023 14:57:05 -0600 Subject: [PATCH 26/78] Add props to StackstormHome for Header Customization Signed-off-by: OscarDHdz --- .changeset/dull-onions-remember.md | 5 ++++ .../StackstormHome/StackstormHome.test.tsx | 15 +++++++++++ .../StackstormHome/StackstormHome.tsx | 26 ++++++++++++++----- 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 .changeset/dull-onions-remember.md diff --git a/.changeset/dull-onions-remember.md b/.changeset/dull-onions-remember.md new file mode 100644 index 0000000000..f309bf5c4c --- /dev/null +++ b/.changeset/dull-onions-remember.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-stackstorm': patch +--- + +Add props to StackstormHome for Header Customization diff --git a/plugins/stackstorm/src/components/StackstormHome/StackstormHome.test.tsx b/plugins/stackstorm/src/components/StackstormHome/StackstormHome.test.tsx index 897cec61c1..e3db4c0cac 100644 --- a/plugins/stackstorm/src/components/StackstormHome/StackstormHome.test.tsx +++ b/plugins/stackstorm/src/components/StackstormHome/StackstormHome.test.tsx @@ -35,4 +35,19 @@ describe('StackstormHome', () => { ); expect(screen.getByText('Welcome to StackStorm!')).toBeInTheDocument(); }); + + it('should render props', async () => { + await renderInTestApp( + + Test Header Button]} + /> + , + ); + expect(screen.getByText('Test Title')).toBeInTheDocument(); + expect(screen.getByText('Test Subtitle')).toBeInTheDocument(); + expect(screen.getByText('Test Header Button')).toBeInTheDocument(); + }); }); diff --git a/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx b/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx index d96d45e82d..4c244f4891 100644 --- a/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx +++ b/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; +import React, { Fragment } from 'react'; import { IconButton } from '@material-ui/core'; import { Header, @@ -27,12 +27,26 @@ import { ExecutionsTable } from '../ExecutionsTable'; import { PacksTable } from '../PacksTable/PacksTable'; import { ActionsList } from '../ActionsList'; -export const StackstormHome = () => ( +export type StackstormHomeProps = { + title?: string; + subtitle?: string; + headerButtons?: React.ReactNode[]; +}; +export const StackstormHome = (props: StackstormHomeProps) => ( -
- - - +
+ {props.headerButtons ? ( + props.headerButtons.map((headerButton, idx) => ( + {headerButton} + )) + ) : ( + + + + )}
From 2c486947315524d110219da35192bfd3479cd5c2 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Sat, 17 Jun 2023 11:15:19 -0500 Subject: [PATCH 27/78] Integrated Unprocessed Entities with DevTools Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/cyan-shirts-deny.md | 10 ++++ .changeset/lazy-frogs-destroy.md | 5 ++ .../devtools/CustomDevToolsPage.tsx | 7 +++ .../catalog-unprocessed-entities/README.md | 22 ++++++++- .../api-report.md | 3 ++ .../catalog-unprocessed-entities-failed.png | Bin 0 -> 178586 bytes .../catalog-unprocessed-entities-pending.png | Bin 0 -> 158509 bytes .../docs/catalog-unprocessed-entities-raw.png | Bin 0 -> 231333 bytes .../catalog-unprocessed-entities/package.json | 6 +++ .../src/components/FailedEntities.tsx | 2 +- .../src/components/PendingEntities.tsx | 2 +- .../src/components/UnprocessedEntities.tsx | 43 +++++++++++------- .../catalog-unprocessed-entities/src/index.ts | 1 + plugins/devtools/README.md | 43 ++++++++++++++++++ .../docs/catalog-unprocessed-entities-tab.png | Bin 0 -> 100475 bytes 15 files changed, 124 insertions(+), 20 deletions(-) create mode 100644 .changeset/cyan-shirts-deny.md create mode 100644 .changeset/lazy-frogs-destroy.md create mode 100644 plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-failed.png create mode 100644 plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-pending.png create mode 100644 plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-raw.png create mode 100644 plugins/devtools/docs/catalog-unprocessed-entities-tab.png diff --git a/.changeset/cyan-shirts-deny.md b/.changeset/cyan-shirts-deny.md new file mode 100644 index 0000000000..d6d3a2a2ba --- /dev/null +++ b/.changeset/cyan-shirts-deny.md @@ -0,0 +1,10 @@ +--- +'@backstage/plugin-catalog-unprocessed-entities': patch +--- + +The Catalog Unprocessed Entities plugin can now be integrated as a tab within the DevTools plugin + +- Added an export for `UnprocessedEntitiesContent` +- Updated the `README` with images of the features +- Adjusted the styles to fill in the available space +- Set the table page size to 20 as 40 was causing errors in the browser console diff --git a/.changeset/lazy-frogs-destroy.md b/.changeset/lazy-frogs-destroy.md new file mode 100644 index 0000000000..eb2b320e0a --- /dev/null +++ b/.changeset/lazy-frogs-destroy.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-devtools': patch +--- + +Updated the `README` with instructions on how to integrate the Catalog Unprocessed Entities plugin as a tab within DevTools diff --git a/packages/app/src/components/devtools/CustomDevToolsPage.tsx b/packages/app/src/components/devtools/CustomDevToolsPage.tsx index dfe70426aa..788b555c6d 100644 --- a/packages/app/src/components/devtools/CustomDevToolsPage.tsx +++ b/packages/app/src/components/devtools/CustomDevToolsPage.tsx @@ -21,6 +21,7 @@ import { } from '@backstage/plugin-devtools'; import { DevToolsLayout } from '@backstage/plugin-devtools'; import React from 'react'; +import { UnprocessedEntitiesContent } from '@backstage/plugin-catalog-unprocessed-entities'; const DevToolsPage = () => { return ( @@ -37,6 +38,12 @@ const DevToolsPage = () => { > + + + ); }; diff --git a/plugins/catalog-unprocessed-entities/README.md b/plugins/catalog-unprocessed-entities/README.md index fd824bec94..198d60b882 100644 --- a/plugins/catalog-unprocessed-entities/README.md +++ b/plugins/catalog-unprocessed-entities/README.md @@ -1,7 +1,27 @@ -# catalog-unprocessed-entities +# Catalog Unprocessed Entities + +## Features Frontend plugin to view unprocessed entities. +### Failed Entities + +You can see entities that are in a failed state: + +![Example of failed entities tab](./docs/catalog-unprocessed-entities-failed.png) + +### Pending Entities + +You can see entities that are in a pending state: + +![Example of pending entities tab](./docs/catalog-unprocessed-entities-pending.png) + +### Raw View + +In either of the failed or pending tabs you have the option to see the raw entity as JSON: + +![Example of raw entity](./docs/catalog-unprocessed-entities-raw.png) + ## Requirements Requires the `@backstage/plugin-catalog-backend-module-unprocessed` module to be installed. diff --git a/plugins/catalog-unprocessed-entities/api-report.md b/plugins/catalog-unprocessed-entities/api-report.md index b1e0d6f53d..940bc2b3a5 100644 --- a/plugins/catalog-unprocessed-entities/api-report.md +++ b/plugins/catalog-unprocessed-entities/api-report.md @@ -20,5 +20,8 @@ export const catalogUnprocessedEntitiesPlugin: BackstagePlugin< {} >; +// @public (undocumented) +export const UnprocessedEntitiesContent: () => JSX.Element; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-failed.png b/plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-failed.png new file mode 100644 index 0000000000000000000000000000000000000000..9a656546306539357fda5b07fe5989a46feec9ba GIT binary patch literal 178586 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 z

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 literal 0 HcmV?d00001 diff --git a/plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-pending.png b/plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-pending.png new file mode 100644 index 0000000000000000000000000000000000000000..d2924b0d7ed5db19f1ab9ef845b3945341f4ceb6 GIT binary patch literal 158509 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 P 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 Xg_xj3m!!ZU@JI8i?iI`>tB3yqDgpy$ literal 0 HcmV?d00001 diff --git a/plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-raw.png b/plugins/catalog-unprocessed-entities/docs/catalog-unprocessed-entities-raw.png new file mode 100644 index 0000000000000000000000000000000000000000..3b63b00cdacb1110adc2d7e0bf59fab99e270c57 GIT binary patch literal 231333 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�_f=GflqCXjj>ffl?XiU}> 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

F@1)sYr~IP) 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%0Dl zb*?N^D`LGMxo2z7?iHx`QnlE=59jJEeh3!T%=xak#3O0};dh+UEWeC+fsrEEe4XI) zwK*oSu2SlKUCF9J4%KN8`7imF)H!++puNq1!C++EbDTm-X2226 z4y|98Der^|99;~sn!CAZ0#7yo3mD&mVQ70aA5+eGAkI%IQw%o{3?;0Wm{00xoJjLE z?H&dO^clE7in&j~{byK}tYBhQvE5^1NH{(zXVrUq>TAIP#5Ed~Q6&={{D}7+@J~ui L{#~(%?w9`uk { return ( <> { return ( <>
({ + tabPanel: { + paddingLeft: '0px', + paddingRight: '0px', + }, +})); + +/** @public */ export const UnprocessedEntitiesContent = () => { + const classes = useStyles(); const [tab, setTab] = useState('failed'); const handleChange = (_event: React.ChangeEvent<{}>, tabValue: string) => { setTab(tabValue); }; return ( - - - - - - - - - - - - - - + + + + + + + + + + + + ); }; export const UnprocessedEntities = () => { return ( -
- +
+ + + ); }; diff --git a/plugins/catalog-unprocessed-entities/src/index.ts b/plugins/catalog-unprocessed-entities/src/index.ts index a65283926e..11ed24113f 100644 --- a/plugins/catalog-unprocessed-entities/src/index.ts +++ b/plugins/catalog-unprocessed-entities/src/index.ts @@ -17,3 +17,4 @@ export { catalogUnprocessedEntitiesPlugin, CatalogUnprocessedEntitiesPage, } from './plugin'; +export { UnprocessedEntitiesContent } from './components/UnprocessedEntities'; diff --git a/plugins/devtools/README.md b/plugins/devtools/README.md index 0ad7bfae61..09e76caaa4 100644 --- a/plugins/devtools/README.md +++ b/plugins/devtools/README.md @@ -44,6 +44,12 @@ Lists the status of configured External Dependencies based on your current runni ![Example of external dependencies tab](./docs/devtools-external-dependencies.png) +### Catalog Unprocessed Entities + +The [Catalog Unprocessed Entities plugin](https://github.com/backstage/backstage/tree/master/plugins/catalog-unprocessed-entities) has an optional tab that you can also be added that will show unprocessed entities: + +![Example of unprocessed entities tab](./docs/catalog-unprocessed-entities-tab.png) + ## Setup The following sections will help you get the DevTools plugin setup and running. @@ -149,6 +155,43 @@ The DevTools plugin has been designed so that you can customize the tabs to suit With this setup you can add or remove the tabs as you'd like or add your own simply by editing your `CustomDevToolsPage.tsx` file +### Adding Tabs From Other Plugins + +You can also add tabs to show content from other plugins that fit well with the other DevTools content. + +#### Catalog Unprocessed Entities Tab + +Here's how to add the Catalog Unprocessed Entities tab: + +1. Install and setup the [Catalog Unprocessed Entities plugin](https://github.com/backstage/backstage/tree/master/plugins/catalog-unprocessed-entities) as per its documentation +2. Add the following import to your `CustomDevToolsPage.tsx`: + + `import { UnprocessedEntitiesContent } from '@backstage/plugin-catalog-unprocessed-entities';` + +3. Then add a new `DevToolsLayout.Route` to the end of your `DevToolsLayout` like this: + + ```diff + + + + + + + + + + + + + + + + + + ``` + +4. Now run `yarn dev` and navigate to the DevTools you'll see a new tab for Unprocessed Entities + ## Permissions The DevTools plugin supports the [permissions framework](https://backstage.io/docs/permissions/overview), the following sections outline how you can use them with the assumption that you have the permissions framework setup and working. diff --git a/plugins/devtools/docs/catalog-unprocessed-entities-tab.png b/plugins/devtools/docs/catalog-unprocessed-entities-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..82afdcb7595cd9f08176c8576b2c6271942bbdb9 GIT binary patch literal 100475 zcmZU)1yo#1vo=hE1{(;0!QFxl7Tky68iKn8celZvpuyb<4k1`@cMVRk!3IJCg9PWB zob$f--u3^p)?QO|@9LgiySuvTd5UN?632v-DB(y*&nqy{5G}A; z)j%YqXT~;Qu$nv=Os(eX^ufm75($Yp$skD6qFDj6b*t z{B~^(`lkP(dh40mcV)WN46JG=d$bNs_uhnOC|oS8mPDx~^tz{_Yvb*avD4pPblI(> z3y?vM^m9as$*bD!6aya|7E(0FF(&~>iGA1v&MyY$YDWcr697nF#at(T**|@85Z4dH znYLw-@dy9Zc6Cj=&eR!cI@H4gVhN9FqvdUsAHfK_B7IR@Cg|irLA=t^oZ+y*`=ki* zh?m4yCe#2N!Hf$Y1x)ZWmb2&X%o$-4Y_!r8`(BR$-DO(7s2?0()Ml?P;yXV|;csTG zdSf0YAg9NTM%=q;rtiIWihLXC$0~8q;IOoa5?a&iO`I^z2!;*u_S{@-4d@B-xj z%FinheMpiTV0n4Ow}!c^rKO{rwUhgR6;K^9)RN769d{jNB_VSs2M$vUCo@Y9ZwKeU zDo7&ULI}~p(%qEW+ri$^O~_l6_Mbb15c1z<5H0mTx47Gh(&{LyQG=aaEvfl9I5{|J z#W1O1OU~o+P@S1&*$IYY3XhAzcV?y z{pYa|4+#3(1LES~1pUw02vw24twL%x-j?>d(l!nV^C0FB;}hT%`RD%sU(f%}_ka?^RsBC*|6f&2H%nKrlLKN-cd`F{HUClmzn%Y46aoEx^#5auf9?EFE5guX zm?EJ6d1+#p{7SFOkdP#h8TbsO+JQ_zZuBaXQWxz0FQz(@k!gstK0uzN)Vca)AypWb-*Fj8W4iO%1^|0p#Kk zfB04?VBgg`2lnO#7`|zJ8~rKto(zZ-;L0i1AN>bKvlFl3B|a-x;)FxaW2Y1xE4Z@^ zAHS|r%-+{oqtX6y%wl2n>$X8@t~~1R8G<^3WZ}7I#zJJ}fmm)h^-o2Sfbu|4Vux+L54Rvg?nTsZ` z$*Q$U6Hy--M`5u8;FyGTSxy!K$WM4c7LZTF4=osoFA(csQg!I73{B++EFMcJ!o-EV}Av)Plr`#u7rYrBM2Qou!N zgW4@FcAKJbr{X^R6)(1v-GD$CfTNH*(oSGOhuK(7c2*|ULmKw>m0ZdtyHp(7C6Upp zI$S2zFaukEQa@2Cj(ML;-WK>yH?){x0rgnTNOyJX_iba407u{$6bp1NyWZ$rW>sfU zBtHKOxSIRoCb9=I*F1lDwv$c+ycleFNJ`_A!smC^7*u%uIjYN*`yu*4etO8kR77CT zSqT1Ri}&WGkV_wmIk6s-v93&GF(eax$3qJKq4R3{!pT$?xgxUy;y!R3wmWJ2s~;ww z;|w2=e*tl`nowGFT28Ef1y!@7CY^do^4K(6r<5<`agF*}_j&v`vF3(tzJU4b_Diw} z7L+jn-RvuyZ#wcQ=CjgVFTk?#u?(#C7QQjxSB=*vCJ=O9|p^BkF7f}fAuF0p<5dthc-iRJx9Xx z5hc~cC8NNwvv`nh4&wbFahS)v5^=oioLl ze|xJ3S6HciRWuji+_L2EM0GwpN0s}VTHsZ)rzVcX{MDU(`43RH(GDO4JCQ8ZrUDGD z8y_su*UnNAV^}fnvQ4#j&^?LctH=Yd#G`4Vhq7r0uv;g(>DJkE;$;#_AI}j=J5bbV zcZW_mL=cCSDN_c>6iP1oP&6uM3G@<2GLDZkH)r=Q>+hTG6LFo0$22QRu(HK~HZYM5 z<0yOPJ~${>VSQe03YWl&9y1>3;EZu7p${M&V*<@V%*);mjz&Y2*Oq;FXgKI;!3ur z)OvKrqS~VhwEoJDKMue5Sit=BLuW?V)-K8T#%#Ma+fGxMl$Ab$b=2v*S?KU-i>R<% z+PkrefJKRC3|V#NMmmgu{nzd}`OA3QYRFR?T&z~o&RexNc0zT7F)RUP34xTE)A>@D z)w`wZ9K>}kDiDMF!-K3Pt_f7=-r=XnSgMDnN7zA#o>3YrEXdBP&r2A=&M*$_iw>^JtDHOgiJUf6?~xj_K(<+ z8T{pEq*H)PAv{^TVtp3=;kRKT(*Wv$D$0vW@i~jt6LXp@r=SRmGyq?s1yE5-2c>|D zE!4*PkMWRs)X)lLz>EsW!8$iO#&Fvq$L0!i{$eh!xVHq}YFcL#He|;V052scZ8>)m zl9@#orU&AR3FY{I?Y_eDQR#M7QA!)Fq_MXoQRJ}m^ht|GcGWoqCJWwNJKwg{7eD)9 zw56DX2l<)q8@}~y`1)Al5gDN>K%Xn1Z&2qR5cImps8RyS5UV(r56M}__FU_x#+&el| z+sHLhb6t=+MW@;_G&ZK#M&2?&U9|e+HcG0aQ`)hn$B@@7;>@Ke1#lhEE(NgaLX?2c z$^O=v^i-ndjyd+tsWlo@qNB3&-}2h_sbZS9b1nxd!?wsK(bKv*6bCly`Gq zAF}85O?>L}RziGE)jEBO{5o|LI#6_b1Z==H>J?Io&+md-QH1bP6*vo_Ryy3%sR9(3Bs*I6IkY~24$o+Y=% z43Z?w#H$AORXWdoha&H)e9eBdPNZOG@0>Vr|O4uN5YP=R^RUbU_` zGPb%2W`S-?1E9sj_nEh{;_OZf-Vx5{l+?)?0Ow~j5GRRtrD0UT?oxlg?>AE7NF5V4 zg5!t8LED1CfJZkEMe<0zgAt;(xu#a zQ$BPY`LeV<=iI%LMOucKC2|UQnNq&z9mN*EB`9Cf@k)MNSseHs9&y+P6f}UXLVDo} z(p^9j=AmDU%ocX@!QftJKKjom#=xm(NU#hv3!{&jwr+TYgzs{lvfGUiT+i-|!qwhVk-V;ae^7g=Sh*HWuB6b_5ZSpAgFp0#k z!{TOlpw42_K5cHvQ0JioWM$Xv_L!~d{(kdeeV$iyJBw(VFTlQ4d2^@J1}WefcKdbj zHWW+iP$lV%2(Jox`=WK~u^$EH{zc&d7RGXT{4kCGYsx*QU!g&`gJ@vY7 z>|XvR3tqu&rLg!lBItoFV&(iPM z&#Hfn4W}e;2nOHA%;r|~m-BaO{?VyO_>?}A|>z-`-A1ht8a1QHon1yscAS}*jLG7PziLJc!ZdoKw`ZR zBxwLORSzUU7Qwy7=G<$)U{vC1e#x-SzIoSaZV+zxHxq$v=>PD zQXQ3y&`K~cWwMEH44alCKSoyxvi80$xR(-^BP3FP^zuWuQH3g8Y7f$ z&1&%oEf3apEf8pa`L%W-ND*1*4e#42x*ZnUYL+>UGC)GnLiBqP*|U#12E!M@N!6^b z3oqiwjJINiT4m30{KTii6*&AH<%eFxNA6=&S8isTtN2m5QSIXsUZUBqln8zL`)J+fm5G5 zGmMacavS!WVmXh+B(Bl-27*-flkJx`m_>#SL=h^7e8nDz=iXAsPgYL1DXQl0<1Vk2HUA85T+->Hrj+lr0=#V&7 zj1!f|ZM?UTVP;T5rjd<`tsPeQ#r-(z|JJB^le-JsEfu|=_q*@nW7okcJl2?G05Xu? zd<9??T>wNsu8Vf;uZsPte#Xa)qi(uwzwAbfkH4~cORam;cXwI7jR7k#p5q+MdZ-dc z;;rTlu%ow83v2W(NMWFOKsZfsVVff%GOdsW>bZM0W!T>2DWq^8sQn1RkH*$= zqP^I7-A)-ig|ND@obJe9>xaK%wB;_&FC;^3Y#q4(o;*PLlTNS(6ZEQBUY^@dtKFCR zj+V6108)Ku&3tZCtB?k1@|d&^a%=z43ZT-izV3Hg8B5)-^sA-rYkTib17gW>%M@6# zD6qY~;Qqjt!8(C25?khdUZH&Rjyj%MUw00A2nLYxC@$ptVfK6Tg#G#2J**uJ3DwHpH zgTb`}y(ZzIPp0+!tPYmd1B=5fvJDbIdNf)Te63Og?BAa$^&RR)xCVb-?G(*In3ra* z3Za^!e~Oy%1byfAgLW#pEy536x0DK(bT#-Gt z#O7sVa2xgfTgY;6UqUNjKO&kfF9G+l+0q!Q)D0xoJ6OSQH37kn1V)TgtBUVWZu|Pj zVa8}acez+cuI6Gos()Y5Fg=`ZAo(hq=K}-lVm0L(?In$bHpl0ysF(PdquCdTO~C%s z8p(t3B>(R#LTrqmRtPm&+5rn-w=$3O)`_0(+wVp$;@|h8+`>$V&BSN=E>Md&L<>Y# z@)NY8+|*2{Z=D+Z$g{>ZrGsj36ofWIjS9%EQ9-+}e}z)lxcY9qlOa=(rEFhEpck{7 zk*#IBGyb0u`EuWl=^|x0UL-UjqU%Oze&*Ip*enApZB+m5Z_JhlsqxUWIa2v*6x;CB zwuR?eCANXVyDBU|* zX~s9x!F%y({3k18(wwG+uoQLX&R?n|E!bM{)LZ`lLPzh0tdt^8;A22spT}7)><}>1 zY!%iodx{qqDYc=7sz#w|D9TI7?syza?(Ma_4&9YP^|n7q-8@9&nu}L1=i~o%7kP}l z%sV(u}&6l0v={1tjxkNB7q+>HOdq4Z1lNgvk-7bPNEY}ad4DRl+DsF zk{5!6rr5>7P@2MSN zEXUi~>G~p~qyjfv%7@y$lHw*(f&z54qOufkY$aNMjB{2=sGQ-gl9mb{*Q!xk98Fg= z>Xp z*7$cZ-1|RdbmiK2RL4~5!Rl_VExtec<`q5!OcOJK4Jycm0{q0F3QV6sP_*%?{mnQm zpDkt}%{?``cFq^0HtKP}MI5@&J+C9)4bP_=^DI;hL7MCc)DYU2tf1AopD>=}*T+nm zgw3rZy|Cx=RtAO%hX)}IaG4m>vFX&>69gOv4IiUmuPff*Q3i&Q({Sh*nGQjc>f-{L zjVFr@UzdE{_J&;JM|$3r{m@ANljv7pOb!pz3<;$UeQ6~}C5VA*Q>10KqGNM|%dV%1 zE+ssq^Es2FIi==PXa$#ZQ!PIZO1xnwmy`KIQE=I+I(y&32ukETH&k`MP~E4PTqg8O zReU<%V?7+~uW0p#E~K^J(!rHyG_v0^9@#uC5_TxKt_LT$XqVBt$?YD(MTSSPATGXG zNz|p$Npva^r&;)#l*&^KbSMoT!7li$k@X=JQYZwhF@KOoMDQ+k zV8XjxGQ;|lcG{TXhfT4J9b`v3jlC#C^tEh_G~RP?Af{>VVk0NzT*&$M#S-U7{3rgh zzHJ7|3l8FZSAT5n_Iqwg$4}EkusWJo)h@umu=y2Z1zwdbor+~`nZ0x}V0D~D;1*y)Eaanu}7REM!Vm?S~6J#)US1+9=v=T~U5 zrNNg@vyb+dY56N=X+N66^f3)AQOiVg@VjGt1{LZLwF zoS}wyLitn*fZ9E?ZcI6$2)FPz3?{yOxCnGqPAd@<=X4-i5SItH(^1Kv0-EnKiXSaR zV}TE9EaajHWYO2(yD&OfcQMbuC)U|(dACXs2lftp?N$M#;n2d(J^6cff4NbJTepPq zu<013b{SHQDE1%TOC}Gv;jkcx29t&4hY^V;f{wuV)~jJz|`8S(9-3t-E& z@ygx!+@!%carLHP(B_Eh1aG4t$qp}&&P_8DcAC+^r~t%&E}N+EdKkuDR$mNfQV5g8 zh*Ymbz?8Z|T->swc!e>Q z`|uAZ%R}-@SoEMpz`qO3Wa;nvGNRTn7yS?RR}>aA$@Yp`6c0!z#TBh@;^b(bOTcM?p;HX^wq2VlWph+TGR7uh ztWEs9p>)B?Y~db(pwv&;2>JPY49-JCS=X>YW6|jYej@4WYvka0~x!s^kd8?sJl3f1A#``x`N|ip>;i zg4^rN#w^d(PwsnoQ@dEH+U3CH?w+55n>=IJf8K${uDRHBHhwCltxtko z?SLwpes;`IZTR|q;n!Rv7dh0o0lhz~kD-VAVKENh3KiB=w4pGy(twCZAG{0Bi#8P| zjQ*rr6`rB%VrW|)7l|H6Rm9>5~@_X=lg2O}pSJl((^y~WUeJRW9jX6?{6cACM(Ty`9j z#4m%k%MjxwT{tj;PY2F?JgFz{;@UI4AhMO<9@vh-N+nsVa_M3m>caz$@xNQIxHb2d zJ*?r%Buk+w$^m04&kh_)y=4usccNm|R3(i{R}|9Q0aHT8#sqcuvTZ9-WZSc z^7!D1OV@G>`DZzY^C)Krt~k7kBftV*6tG`e!#PCwei$7(1X$adgft)1IWJl6mH=#N-(CF5f%$iNx4&!xY{xT+9vH-_mn$Q<&nI#hd)wS0QtuF$vk zz0Q!%L8MKp`=HQx2Fhy5(>B^DHMu9!Or zI!Q(+B&{_b>8KAz;-`>7i?)k8V5AuKp|a<8IQ4|--|+;@t+ZYN*r_Hr4~@r`1|w~f zKxdFb!^dV3j>q{uJX`-@USl;sJhTA-7oiW!{)4Q7!4uJ}!Nys9Ld&xyBS=1i&Ym)9`@m!Iq_O>*Ay+z?F8sy}&1q<2iHGKq?X z_lg9X?q+bJsPEt46v+r$?QItf^C{hHjbiGN7uTOj4l7&6d!L517NQXWu*$tEHe5xc zsA-qfo0NN3bb7KKOPBa+TAke7Hv zXmjYocqH|fY)yErkq*L57my(uyHH%*@;pYgBDKgf<^h-sYn0IkxaK)}nA=|BkKeR7 zSNWtw(-*I&cm%~(>p6Vhq9bs>4aez=9ILQo!L@be_CcW_|%ztHX zF9yi&Bq6*2yU^I=r4lQ4*QE@@c9X0DXkV*cf3?EYwDuWJr!vUE&`vz)Jv50}Yk-of z2+qu8d)7vXyn?0e*|p9`+E3bbDIwbsUv9A!A1!yPb1G}wcTk%NujuHBZq0>`J28)s zq(Y9hYlC}k%mq`pD21|cq&YDrlUWb-|C+@P=>R9Q#hl8yYX8 z=>UQIGwy7?#&0x7G2_WK$9Vm2x(vEu#qT2SP2O_elXD)B+yuqbTu|wJp=&U;Xzblp zLdTDLv;+y77*P_bJmF#F6+ovEs{@;sZBa8-kmXa7GI3~HE7nk%vhSEg2X;|v&;}|= z!Zx2upo9RG^vcfhsDQ3$nB~{nRN2>&O=1$_HRpCnN0Qy(gMOGXx`mz`@LmsC`|QH& z*8CZQrYeoTbsdw#0sB)7@qMz*OQduCJ%XWAnj9LF5OwNrH4HCauNwMO>AXnsBXDjS)exE= z8xIkpx?l}Wq#H`z1Kbvet{(~;!c!*VhLgp#M!>jI-;rymsHU36Ofox!jG8v+17#jD zFJbFoJb+ai}0+-RTQ7Hz!*v^ASsl)sBE z85ziSif;JcQ=Yk^?5lq2akZABq7gYR=#?$?EL96tumMp z;fQEvF{GfJA0CR!Y=94q;){99j*?p&1U;IamwOmpk&m~0z9*?t&MaVIllfri+FEEI z{+DyJO^=0E34UuOd?@mkt#_=YjKsoMSuqghuocF&bE3kU0Zvh!={A22M5^kNj|^;wk=uG{M|yx*P{ZM8JUo>8CMQIT8mZ>{4>*+3mlf#LrqY!_lN>`H9FuH!L; zO9|FL_9h76O0uys8Q-+sH@u68|GT1aeYr%+G4=iC)lW(O72#F%mrlFg9qt6xrE2boS=O%WnbR#WAzVFwG zBQuZ*3C1uE)DOi|YzjBmMAo^fhxFU>#1|_o;Y0CiTf8pGz9%_8og)9z6I4PRx%U&4 z{237^fQ|{+jU)mYc7Oa&v4>iho{=9!%80c6BG~0+JhU`Irn^sP9Lj=DQ9FMw8aekT zMcjB5HIN=}OKOjS)%mM-tu?s=^2tEX62lNpoCl3cx-njW^W)5;3G?fN%6Ti%*Rl9D z{P;naRdJwxmH`Ic!pHr*&}(WETR;{rGqGn$bz)SJa3d1Y*Tnje?2Flufx_p*LZ`ET z;UVPt3u4h%-0X9A&bI`~d3cYWo(?%K$3gAuqthH-JJ@wtv<^qPBEi}5oEjMYci~y$ z`Oijy)74gCr*^Ac0TN}3I##RK?NRIu#MIj3pzjSvFS!xuUm#oc&iE-2(VH#X?t%jG z&(TY$4qg8o&CM8h*OmySUPv_ov-Kxy?zR^4o%_-^&rMv6F84~R?wsHqhbKfx&`TWE zXf7=c`6!!cWRm-GGVJRnu7iKX`cy2LuZtpySe#i$l`G9{g)Fm~h zJ5Hcr>>s;GzCK;(|Dz#tM0?D1CkoF!>S9}AXi-(}Ej^W%9FSg_t!eLdtdo$5`%n0^ z`zdDH;CXo49Ha5jtN|?nsl4(LZ*-lEwaSG-~w^amko==mm@VgV{i6IrRO-hn=|8Fz=NC?S*YV zyk6(8D>-cwAF%Xsnn>$;>y4(!^tx@qjkX=@28=+^CPn96Q5>Xo8tWk%X4%@Is@3nK=A+U#a^Qt3ZS^mO>UtGo6gxf zY}>Zaf$>bF2OX<9D+Cpr1vhC#1xhn)Y^@?;lwSw6eR;~2Q@9*s>|g6UU`w}ee2Sh; zfQ(;rvo(nhj^k@36x4Bds;l(r2ogIv7kr<48%yM%*Jv@iHNtC>Z2xBt*)KVY!c#TL zF6#YotarEBfcwTnSt%6o?bm{0bedg7p81$q(>zX+DB}-2NCU4&s<4o!{~KKfbY0w# zsxNV9G~&hTXx}pzaca?yI4Fsu79EyNu%!hqi1eo-#tQS-Tz~m>Tv)*qz-xl|V03A11UY^ClUC;-WSHUbrBG<1q%!e2s6tTiO**?Bj>5`a7G`|Q_4TrKT|tDx?FLb;3Vwo(4!ppuOYS&cK+#(pqwo|=V)+%n(JbOEC{~`FYPyQhT zC~yj#W>1#>S$^M>IIcgwjRY!v5q)dKZ8d@k?y%UYv~MlLk=CEcWrB^?*y#4QsIe5a zY5|I60nFo#@HiZ%x=XW>L9LmO@Eu_l$N5G;=^`}!^LxU;BG{K3c~t%Rx`>N9p@3a{ z@67Ybd_44X9r&(wK=J(Zt?b$)PBJ!z9tp20Oa5x9U3sM##IO`B9@skF=sH5wC6 zFn|~AanSJGL@pMh_r3GgfGnKU#tl=4PiBb)wIs0no*&1>*WTSPp-XA&yndxu=!c(i z@-VPOo+9FZ>=2@3LfGFqp2qNp&5ye6=r=!ox>2C=G=aM3PstZc(iaiPMu{SB3B!Bq zT4SEMOF8$mDPPeyqMbE zXYd+va&hgic~bdh+)&MJl!8*Y_n7sNpDyAz&6Lsm3>h;{yR%(8;HZBz_s@?ty9=2e zQH$RFQT~m`uIIm1pAM^cJH!oiPwkR==Om~Woa?!{V@i7$HL59hu&l)cB5TSfEyszc zB!x=Z3!VjJ^=FI-TmxCt&->9da+DuW|<#n5FqS=9a8 zSMHxW7-IT;zzCXxh5R$#;J3oY_!Jt0DCe>L)j)X{Ued5sDHl6tGD0SK6FfclpLWVD zK})%=dfe+nG)rMqmd|8{OCLV7+}=5Vc_(G&_{Is+_+wu`nT@z>EBY?V<*<8{337U} zJ1741*`%jWF;J80<$V3fG-@a+Q6K6TDx;pWrjd_GwC94uynmi}wRdG*rG3RZ0T|-R z>Yaa>QfNLY6s4^_Ieo)jmb-G6-Q&VI3NGESFT1wchJnH^s(!P^8da)**M`brB#pp-Kikn`jTHTl(^ed^eHPVp& zy>qX$ulWkS+b=wM!w1@acX3Sdtq*%`6V%}S;EZ7xF{wOqCPXnT0w)+Zl&RZeD>m0* z-ozEnA1hSEopK}5fF_2XJ5MPZ;Rj3!7g;WV_p?w6Cn6cbvd%IwEM>_i*14{PP8I+R1QM_){kH|UtarG7VCL! z=xgJ-!JbKr#_J?HqkQs!G5OKUr>@rtq|0Kiw~gpsvezcM>q7lAoCt!`j&$qG40;^+}Y~LJzSkUaiaGoe_;Up~k|?rfEw=!kZY;ii5vl zcaz8uC2%tRiuUtLaXn%y?8+FOS83>w>S9Two>USt`kj8oWQsOfQ`(HWZ@l8TI7LyD z^BuG-WAQ7g^&7Qrw0dPUpi;GNi&k^|cpI2oySJ2}-55I)(5q%@uWn)hR0rFPRG9{zU8Z<* z@!J~^jLG?fxfLQP0H5uIR{iLW~0if2IYoR3Veza6h|Q$7(A587^Dr^0O%tv*nlr zky9RXzy}VJ&>|~Ee!4Fk&*ppQ;&t$f?|`4R#aLg(k(51U^O%>lU7{Wk+>l#;P|p5^ z<@oS7LaLBQ&QR^)yy%J9+b3eQe`dLPqVU|*xrD}jmbBgeL*X42RgI5}7E}aw{k)cD z4pqfR4pABd7@>k%SL}U%C@!0w-YqS}J#Z`IlPBZ$f?&5GHf1)Nz}#1whwBh0jNJst zEE5imwOk#|9wP$84wQH>7m>;ZU27f*d~!)cI!7L%n)j5nR(-N3wQm`q4ZHcWpW(*u zvB8`bPmnF1-f=PSe={LsGs1~8uctmi_P|S#pZS5%crJmInQHriCy8dP)B$fNhFU7Z zT$ls`?1C>_jA|}nC%L$aiCkt>;9GQ1}H&)-bwLxiATlt)a!}Xc!d=}4>heiFD zq?T0xD?|Q2dNR>gY4xec@c6U}ZriXC&Z7@+AXurNO@3Yw-iB-KCDn5&5zQO5l$19a zx~Ckt<=IBSq>N1;C^h78OYs&vkq7MuV=+8gj5^N;28LnyO z^SIn@44;6&GC7PpHz6aYqki2tdm<`7kuQM#CO<#E+QRA;Wj)(Eum%--QYVF>LYuK|D`fPC9ihD z{uMO0m9ODk=;EyxY_uz8ADWv=K*iTWYouWj?G~#SdN}k$0%73K4YnBik|&x>GfA0F zpKoMKHyU4SE!>m)&xpG`>Y)njAH~{H|GY^Y0uM3qB(&^@r}|V=2Vsu@=B&C{iZEQV zKu43ZPGkLt?8PlFXKv5|j_k#OZ`jK08>Y`w_Uq)1``jTRLv)OChh~-cI%F9j!ta;X zW5wf3CtMm@*xQDm^vC?uSqJt3t`XlATi!#A4-2n7q2-ox1g?pHdZf5w09ESNPfodJ z&C!yQUFV@DhXS1x4!hdsZ324%l0(8a^JY@ zc^J)iytRTu|Kw-bzqZ1k-5w-62)oy4-V1Z*9K4tZ+RbxW;Alkh;E*NfJ?dx{?OC=) z)b2-nuhU^$qel z?i65>u@{%ZxoV%%0~_u~YLK58(URN(pVp)vbpt(DZL@d7w5iyw_}PC-Czd}DiSn)Z zEy*%yKR$p^pN#N~AK!q|{sNXF=453XF`xVMAC^1Y_fi$F8?t8u6M`SBewjh%N8)CGX{5N4_j3C*L7I(sUaRW1;N`QsIO48R#nWN;cPT zmC+jzh^($M4x{I99O1UyeALXjVJvx!{s&Upl{5(~ zK69qSapwyIA{24`?q>zAUAt<>30!Rrra|~=V?Q$eIK?qS>GI}EA(nwOUQt*a0C}Bp z7<<=PFqGc;)v?!Lb8+wfl1%#5El? z?EiALBZ!WIhtm=dqH5e^1wW*qj2K>L@A~s=7rpx?wRh#&_El7Xm!DGOlX<=gu7nY% zUGq)5+i%yl!jo=5)a-V|uGLEKtVNi>u*e@&v>zYN*$;F3f#R32(XIqYTyI?)Y-ktW zZIB(g{S2*@N!<3&?uu^K3bqM^a6!gQa2oD%TP6%-5`X!lXj8(N zdzIoC=lrwFmF$BQobjIm=paW>0i)v(P^o0Ff#N$V&V1IBy`WQ`Zk}p$BH;nP=^J%h z`aT8PhoI4!EcH$*>J6?b%5v`4KdhH&G9Suf|P~8C$ zW$NVO7#UIy) zXe3sLo9X3K;{vO)u*QdL&gLYB*ix3ZSD``$K%!63?&D0Udehtj^oewFi3D z9EvSwe$-@fe3Q-KCuVQO^@%*$f1hbnaq4~#wG1o`w&e<&1Ypz_%}PI2I4CDrJ$ zDy%l>Yi{n(Yd3Zc?x@ed?sQ^c-SccrWwBM9uJ4(mNL%L@ z*XWJCp)UL3t$5TJ@Gz>~fCslcC&#W^xQ{sBO)pJI-SY1h&rjr=#c@`o}r)^ zBjleI{d1!YM&jsXf1Gim~iV0=;y5?4%OK`sxFSNC_E4q3A&NZBv(a&WD zaQl&t`~*euNL|&m8Y~*#dzQ)+AkcR5tMo%3@LGlC8?o6pJ znfGaY2nNvEAKOKgA6y{*KTGvs7}srE6Ta`lYo1=zc&c2H&>El&o{2U0xi-nu8Vz0K z*blqj#`N>AU*vZfI<7h2&`s`mZMZ8luC4&`HHC~H4%ugX|41Wltw$E-EQZ(ov3I+p zK>HEevajc>9n7|Fm(Zuh160<4SQ}ec2RU!hBXn32iJAK=bdV@b zbRequ2dM5YMP`x*x8U(Y{R#R8V+Fr{`06CGgV$$NY&y}ujD!~DWLwow%XL+MbKVlq z^(+|wXm_bwFn?r~SL`14?RVyVKC!|D*6(i1%Q^M@yH?%Y9&b)&|C?nmAsnd^8kD-? z0nQ6FA9Wdsd!8ILbS4BQSAr`7!~e#RFMP|c5}L>=R%`Jzw6>9MVi$B`k|PKk;Rj+% z@l6&{cqzmSUpTL=MRz})YBNyzO>!B^yvimP>GoN_Yj1Y*IMO9W_U3~uv-$SbT^}1y zjJ*_wU+LRhuD;Sl6`_fI0eSMgi(Q#R5mTlxV9>2i4)2m5cz z{+`v`FW8jT%CLzH{@HjeT-B%cs}R>x#P0UOqWPXt>F^UjcCuCX!BacpHyM|pg7;9V z1XqYpe>!jJpkBoS0$F@c9?^+bBV#@Fb)R|d3yWuT?4g2OP=z0q#M7@lN1yy|>~hg) zw56K{zid3vB>C|WknwIUVDTos_upYxdK2V3PUU}%efXDNSZoTvSM=*J8+_nKl# z?U;aB?r;*=dRhW@HLM$iiu_l;-bTPspm2u38uvQ zFU)BxGhgxKB;s6-CajAJp1qL;THK`Ds|(6#VVDYMcuuD+h^$%%El@M%c=)<5h&$rN zUcS<$xv1ZrVG>u?y84+c>vzeMpPd641x=Xd87FIkorOm#DXW#{eld05d33cOfEtw( zjDr$^Y*c0akn?#Ck)@nix8cq|#1x&HMt#7OYv<&Q`P&8@+_l~e)oN_t@m|m`--f3u z`@5Td@uv^C*paiplh#g5Ac9|hKJ)wNf=fWL8<`~kEjxWZ>Hch}o5>4wS0{LSqw6Ok zw#3?O8lZsv4kWZ45H3^nr-g1FM%90TCdi3(L6txj@pMu$9B(Z_c2w(c`f6QeB@HslZemPmip$~bb#qqk=e zAX|!tDDD+lwL|AIXHXa^ZT-D!(}i>u1ydWavTExB`5*IM2vNodciYD zfY711rDaz@+RA3YG}6JNj~OjL6Bm0A}@c)|1DaUY*cqPK|^9P$f=?DW}-Fb!!B zYYtUHh`lK7CZFWFCJFg)7b!BB?*Fp@z}z-l4g@EaK;~YV{pm+j5sfQ{z7({NGla6( zpFTwg{4zm5L^8=D%|1oraiCgLv#PPdh@GZgq3Pd%VEO|7;hO7eipLe~uk%*|ltuHT zF~Hgz_&bx&3#dPA0oEggu)fYVB5z}tht9dK#C5hXWKlaE?|#r4^OUd55K`k%AGL#_ zgR=+0hI4r5JSkg5AMFjO+K;n`uFXx@_UP&2DPjfmNh-VT`idqy!@cI_EG%y8k-)T6 z7*tb-aac*|dcr)h!sY>#sI%w2>4FY+F&-ND7ahkZntQtp`QI~iCDto*N`mVT3jLB}QpX2fP z<*Av8k864<0t^J8VUs>Ih{1M@(ko3@FVYXG5-A`5g*0d_@i~;#Y7v4JOH^P->;f{F{U#I-KKf4)lqAsJE%m8fK-ir;~$Lg=h+bYu!c0#nAW z^CXO2A~a<4yf(71?9tYa47moWvjsj0nLPj6<8yq-+v{c)&oIOUP39}-z6_PSbd`wP zBxIkd^QZQxUJr8ljgn@5!H{LwECEO3QX2Bto}6sIJQ<1HmzaHF=)mqRjpT4%^}l1@ z5;~;m!3$G(=C=6I^`WWDE@V!Q4unk+oNK1i6>r^Cql=;=ltTE%Q+n|wz$91uX?wn# zUnCCa(5*HmC}OHZ#;-Qbp=kQvxP9>Jmt6Ve;-o0^w7?T=k=|Z=C^6Sb477&s*7k|8 z8jINgJ6sFpRIq|?F#r9s485EV49x$LcRXzz+x{+hJGu{wWQD_*dnYfNdrUYN=OlhN zf)qG;F=~Zlz!Z_w$wj>n5RfhOxpqE%IK64i4}}*pP-8U)C_P&2&wz(Y-g-c^ZthL; zeSUn-F_=9tOMA+C9_gO+J9xE-QjbFVoh!WuX9op(;L3Cu{%x1O)#Hm)M0M_bqF6-fz)je)Y*wd1bzGd$O5~B*+QWXzds-)9HxvLtf6m`pnY|^P? zOBt=6GA*9){UM*DS2WM+G)?)BSdo2(i=U&yTwlaUQ#`zf?+$(&K+PHlvy@@UD}O$@ zZv{-LnSq(lSxxtb&MTZo;bdvqDvM|V_p{iz^9}!LJ<~|}uQ1%KT+z>NlaX;J%^#nq z0#q+iAfc{PJU&~W08Abtm%fqNTfba^M{w7BgAsYD=UAOr{WnO}ZI4EEGXLuKKB;(% z$|q@^dj|1fS&O0#x>ZC}YjOTW-?eSN`RO|%8Qv@%=YIFerQ4H^s}AeHoX25h5T~LQ zdXz|l zW=bMm8g1wDQt0c(pbgTQafJxj*OGy`{RFo~2+%ah+CGVE9lz|N78Z}~K%pc5L+t1t z#nSH+K>4EZo~rDnN^f;|=zwQkxUQs450Pg(NPuBq5o_9hXrfUibbOM=8;5@&|6H0c8FxHwB4(HHmeHp%1CgmUoe zU)Yj}OlBU{VOnI4mEo$QCy_V(0*YEzMEeKNA=fB03|qXVPp7=Cssq*%+%y(`Ji4SI z-^dbvf$?pgod73w8f@dCm=@n;9uvb;vjRB&Nu#Kx52*A=T$V-!Ye={?Ti~n>{LNlb zPOT&k=D`qep2ZNiqW!zWcL_cMZ)2#lzeK0$RzQty6#&HD$MoBI(C?57rC@$C=GE_ zDtnwzY&lGR{!If4P9gjC!4t+Il(kk$ihjuEcNqARx030avMwBEZ{N&Hh4wnn4E+py z2`;qmqY!MAA-l4SPLf0|8q()MVP`RWZmC67?fRMYm;f}E4}yz<+rF;YhO=$@6DG1* zWF-hA^Kyg(;8Dq>s!}=$KHAj`dwkQqysyjXc!4n@4{-r)qxsWR1^E6O z`1V5{+>*UD9+7qvAyqXnTsLvDc^b!6`i`O`5Ru=%m|(p_gj}YEBwflZhc`Q^ABBOCouOhFU`TD>>nRL!3r0 zO{03~%t=839`LZ-g8HYuMfyd$;2>7IbX$jBkI2`K(Y@Yg%BlBJc!S-v{ow0WNItHn z`jQx(`PX6iFg0Zq6jF5u3gQQr*DGI7Lm}+mdqj85`Q91-{$7goEs-2ug;Q3Zs-x8H z`+Wh$nKa^of=!-C0ZC|+8q#z+-Ko6&pTtRjg+adhWP7L#MUf+uF;jZXnq=SSz!^o# zOU$M}$bK3a5)t(s;ZW12`{n9-|BL433}Dv!q|-Euh$|yF37#_ zoN&+nf|t@4)Yzss>CvJ-$qg>M^G=^OGxZ+WsypL}h@)2R%NF+k!d!B!NrGlVu`2B= zB_cw|=34ilJ@Z??QkXunlv_9X4!4P2ZBK?2_iKrdH<9+L`UD>(f9;`DidvS8U9O#f)#4&RFI;s<()cKe z-YLBGNvyqnm*nI?p`+z`)A#x&oztH9jSl(>>=4%bB39ur3t*cA<#u`3J#4m_2i~!}s%HYif4i!o6Ai^KFBK&~lmWbyO!w(;BG{No`lxaiMU zjtydWDC5jmOmuTLi1GdO&{1cKS5l4cUk5B84L8O&PBnalgwAp2*k3#GHvIdkW2mrd z+Tc6V#;gDN7#7I8#l1qug|5IvG?K1;Q4RHVca+td6A|0=J5%SiW?6h`8@1YWhW8^*Ms}KX<2}i#kq_gA5@8dB3Jc|3}?o}5Ky7}Q> z*iF5Eibp4^k|rln_K7i2N{p8FCl&i+hYpT@+DOKS<|t~aOtPS1BU%8nq%J58b`fou zYwQagGx5a-rGP!>T>+^fE?s7Z#s&?bJnGBoSAF(8mWIKu0Zwo=(VrkQch3qz)X9lj zD$wytEK0b)dwX%#JM?4+db#2N$|l?69r*p(({QCbo`xl{gwiBc@HdR`xKo!PI9Hn9(1VP%>}9mOs6l^+qqk4& z5<>>VWWpA?4sJM+^SXy;9BGUlIz1UsrV51J$4)sm5w=|tBXc*(D8@k%c$y|<3zS?I zM5C`9>uCm3U|#jH^4nRqO^M=f5;+z^YiWKz_usybfyo)fTQ?&5Q@f@@24#%EI|W3% zfC$SO=}@1n0BqM1A%y#$ZH~@C7MPc0&O^|YEo}+PkML>O1$q5vlsO)F!;KI2BdYTG z(dH_>kt^J}>~r(zIb*@aWV33Q^ww!~&b#3KYfri#>%090Yz?~!*AsgtU(WNq@t3ZZ zU#~z2!=)p@_J!fP64QkH; z9u{*8%Xso+W8}2}(abxdQfflxX$5Zv@4^KGy zCzK()@}L_s>B|CHeLJCgM~*qY*)L+rsuba>(ksT(_*VL_Vz5iPuv;O&=iW)pf@_W_ zNVYiHG(G;L)n@K8(XY>=LS^^HQ+D@ltk+B&nI|cFH7){E>wkbUyJ$spfmEo>-exHJ zTp^hr!ispBh$xn^f$H32ZtV#YSB4wuN2!~rCC2Kf@yHfR9Qx;aJ6zvK=2)R}k6cLU zhDGRf!T1T4c7c6(h^N#;-BRYBPb46_6~zs=6No90`3`K0>yh0U**?e6qlJ(ADj_~N&nFnqeaGtv!Er#vDT zWIm6rh`R}Yw)(TTv?+RLE5hDkb4q&J_#Lh8^n*I}rEioxc=JnQJ?dzRv}ucqeylyqm*@lyf9g7GNf ztk>gGO&cBjkJC*meC0qEp@#);E#XPd=VmOtQpjK&M|*IyttwI`=HQj5G!+A`D45N~_PVsRlqH$$OA2 z;8fQ+m@hANyS=OeL*`m76)^W%qJ5edD_=?6;m}}WMYs^3B*)bLFa%%=tl3~U6!da871SHoD&Rrbar1{olOviFHTL+xSw=orSS=1k{Pur8?RdiZdvBfa;V-|&$@q4PCwU={7? zDGf{le>?<&E=n(dg%``+6N^e3fiOz`aSHXv*m~DQe5!+@CLBW%>NOw^6!*aZMYrDcqkl`p_f`}gfmRqDH&FEqGeSNz$` zF&OBIYn&3c=1F#CtKX{raaJKePG^*iNRJ0L7VM3!xFdb!P4zg&fM;}M^HLg#Iad(? zo*Jn%Il)XkXPaIp@|cDXG4-PAl*O>(f4XOJe)m};c$@b#&k9&aFNfP{3~4X>tH0R3 zZa1}5S8aL=3KL5JASL>?Ea1k6UWDTD;9IGc#o4uEu;S3HfE>JQ1$M23Hrd*52eRf z8vop%Xwr=-3eF_&=PoF6jA;jh{F6x48gdgz&c2}YfNN|9{w+-H?0WDOWa4z`++dnT zEZ$N8gtYp-VcW}y?L#@e|ve-naT~+(+mx2u`;w>g!d7`v374$6pu!|-ul@=mv z2WoiSnxhijZ%hd-+~iTOOML6ukZs?l`s2r^@NXE(O*9*Ui^q;{Y+h~(e~OOvXm!2? zg8PTC`bAv1F?yu8%zAp3V`!vs@{RHnFz|OLv}XpiSuSSMhyKF<<~gmahUvX9m2+53 z=by*Px{Y47MhUt}7R*_~`9F%1-*0?HYvImw?P1j+sM^OUP${X@*eFkB20B9F#H(7? zEseSHse|%b9%5uWM=rZJlyFIsEUBa*1fQ;?y~iiM`FJhV)KubK_C?xW+&z<@xIw4S z*VZD%4L93Qjx%BW)6L&l1R(lmpeSc-GNAN2Q!2T)F~(O%#t>%=DQfl@zv}~@{(>Hs zJ>q&%x3DlA%Rbdj;AbDMTqapwlsUkw)boFzI74VR)HUPUPd{<-m7BU14!D?+fe`+T zL!=(ZD}PUvx0E=vPufcpNkI@p`f!2Wbt1cC1ca?!e|H~mEug`7fiJK8n~q=`XOF;& zWOy~RxEo1%WDQiVTECahf2eC`c<)PN49;L49%AZl$hqx5mpCwD1owBPBg?LItF()o zvs__MwYPEl7lB2<`?|>(JkE4LGc76n5bLXMu)2Re|Cz(3c6^MWeKI-i1fhDDW&@HA zt2_5M>Y`3hF@Z{?s?LB}bc@rxMQ>_piDylaBo(yK-<5_`!?>pJgl(-u6<`nV23JpZ z)CQk2G6&F7eFJAL+-K8XzFNa;D0GASWJ?XL1cWpo4RR<~q zzR7VXk%;g={|zh*Q=FxfbfEU_(!~sKr}WrCXJoMDTIqkSH{9@TIF-;6^O!HE?gz1` zq0HNozD2ogvcjodZ`iA;H0Z-rl^_cJLR6*02-a6mM5TD#ihn?Fw}c9DJyC6Y4y;lkN#f>_qOl@3x7h0bjoH&KVZ z4R|x;)B8V%1p!@#W1&~wD3gQgTQg52t^IWHWe@R1D(Kl&U87bYdk;1v&PVBG#@E&dXe#FLaq@1h#v-{l#Eg9&F40(W36lJjb=B8{s%$x)*!zZ zq?o%UVJ%T-LtZUGX>`gLs#S%n<#*O_MT6gZF*O9An|}kp$?7 zj5J~LBLfZB_?uGJq~PaQ!Fwlve-C`+6fS7OK_2qX*<-t zF-c;0px$pf!bz1;t8O`a3f4!|l6JcI7vX053MtBaVJVSL@_SJ*vT&Fjm8eHA{2573 z{!guC<{0}B&eB6nD@wWebX>4$3KVX>^RE|i-Cr!XWOy1`2BFw=itNtABBDnH(a;BbFkM&lwi zU_lYhvMATIcAmH{&-MOL=LGi?VYae%X{!KsN3kHv0~bqW-Mz`Ye#I5*SUT6UYmdm_ z`Enr{fd+WK*Bbq~5Kat<(BLZRJf`}QXq>uNE)2Aly=?sm>IKIeWgpAjm(j-wSoUmN zP+Q`F7e(wIdwzDW`oo^{GV1fY!}pV9<@0=_+$qTo8fb9%p*~(z2R?>uMo5y^yY)r& zT5Oqxxdwg{G_4SqHxS6REAR>hO(pr&=*^{nw71AvuWJ$Y`+!7lo3+Ql)~}jb9m|Yi zS7Js$xlRwIKu2@74|7}fb~-L6QvvDi>cA#9D?Ws>Za-p80uyhM#!1&cyYK%j&g#8} zZD<2BO9X^~Ns4lI7_koVfBQ*3C0#I1Z9ToOv#)SHUtHRRp6?Y{=5PuH8Q3})gg77H zx|BZ8S?p(cc%z68$Lxi_?WU z+^{@FNMjT6NI2=)ry^#?kQhLT_9up-_D`t*u{Eq=sz3qdp}WQAY|u?12Hbvz78YrRuBZqO1S(8#vUD3%&l^J8=b33I@uA=+mEp8g`VP;I2cmB;{z_w?{l}F?0p6?p#rE`fiDB6%7=`s)m*y}B?uFED`G~cnzX~;xWwPHF&6yMt$^bY*|9DS- zjMaC-XJ@fa*Vcl23pT43VG{WY{Gc5ZE*e~)L0$LT3-Csh<2VbijTA2g{ZuFk!6>Pw z;N2jG3dDo5`Sqpx!oAd|xilQ<_$=PEeUK!+Wb+{-i6yFV{k>lwR#=X$#ss04#NeiS z;gy{!{QmB!mo(CR{WX7i)GCKnh^l@ij)1kX1Somr`8&T6RXp6@UW(k zwA%%1bkq20eb;AF$^kwl{ye$J$#x5=G?3V*Oco zvOV5(A!f5KRD-bD^a)|QXv}W|gYSB>h4TW|pZ zWL2cXt`7Z_s_Kg$q_mT2k1_2GM$Gt4+}37PI3#!m&5e=KuJrNf`k|dNK-|o8Nu9^5 zx$=O56{hJa@4#kW??TdgCy)4z{2io&0?8+5k?X_Gy#W_tkcZ`HRGG!7ORW0S3oRSJ z6St6NqDG6Yh1fQQ3as$hc!sBddJSKE8?S^;^NYlR37!hdyBGM*30u<3W6U-_HqtYy4y#Mq@ZwLI?>u{rFBZMe^9chBcrXOqoXZUyj3jC;E#N zw}C`fC1)Z>9d|^5V>Zh*a)k{wbDG%v0)UP$JI;uloZ4Zo$?NZ{lQd|JNf%hK>*tU~ z`&Lj&&pQ@ifmNE@kxBy}ELwGEfaZ+#tqpajB}4SycZj6g?i5^h>@@24zFX*8K)xTD z%9zq)nIM9XYX#eXru4B$#~vJ8dv8P{1wHmdgkDel5@H|cyd;fMUJrt&U320UOd=Em zz0Ctg=E5{?dy2XGoVmpi-FIVHKCjX(H5yE?Qw<}Gw(3o9Dt9(szs84knL*j&3?kCN zW(^$vf}UEcM`K0m8QSyai(K9q2`lf+uRjb0aob6WKwHAoZ4d3qvoU}5 z<cL9>;gGqMw<5npe16QE{MHD>yZ_ zXL#*z;BrRu#?HSd>P?#O*0B+f=zvKV_jEI5Di`%_OB}OfLP+&h9Z>$SNAv8nLf!3| zURQg!9bF%Xl3Q~MrX_ukY6%rcmg;dOE(2E2oov!bFp7-E;_$N8XA-0XvMKsumRn7* zI~=_)dTEB|lV73itp<1bgIVixDwbx*B9vp0>2R$6lRcHS^iQ&6?{Y-Du^5e}qk+rD zf{W~WOp!Bbgoa{@cLMaqfF~AVyS8XCJc}fJG;o`^NZK{@^3uuxx99ulYm!umzSnj#I$RV93el;C2x<F&Kt?i`LG%uN z{QTnU#g13sQRdlhP5J`*>;vdghY%d{oc`=@OZFi3gOIZn*OU0WP|&x1%DMDe7KG0H zS@9A1BR9KCfCdqr0=`RD0BeDzWc&0S&9{J2Y|`Q;ez3j+FXY3tGbJRR)N%B}-@ERe z`Z+_F13Tj|jL*jmqnB^*Lq2ytYx)ouSNim`#Xr_pP~U8gQN7Vs4vQ4lXeQDotC>Ga z3aRXov805rmPTDu@TXAfoG<$Xc}Zioy{2!R?1}hfhV#6qwz%@PXH@zcP)_*&!wK^a zOB4q2FBg~0)fY&IFUeD#Y3}C4pELWpcasFz-FNp42-6%cww))Zd}LFS>b}8f6KVFZ z(KR`&Y*O;jZcd?e>KMNq@Sw7b`|I-0%Akg|ijA_I21G(n_m$eI z&w8`k>|vsmnM$91D8i)xG`S2$q8Xe!J^#&ip-+f>OAfk;-pr<>uYc?lbstAyC0~o*L zTGr=aDzpUlNi?ufoHM;kDxC~p#GQ5s1&WWC)^`8QqeL=)+e4K5WIgcBgmF4snw5rI z3H1$=XjdydG0>`6Nrm#T2c$Pz8Uv@>WDM(P`S{J6a;N1(KbdkwrI|j*YuOpq4gSF! zf$YFbJ{SH5x%0k&AbJ}w%@R^l?X3<%od|bmt^0l*5x&W2oxzSzZZc^9C zU*@%(fOT|pz2(W4dq?x~EuNC>MZniqr+mWpbUgXj^Ib zqE$%bOt&iV6AuKap=(#!Z<1bVYlxz>=-rO9i;8Exz4AfF;CnMh{v$i+eFM3Z4bmEY zt-+hakimu!meq(BK0DNWPPs7E+`{OLi=knHlrENzP&Q6E!xQ?qf+by{vM}>B}x* zC8xW{_&2M9_z<=;O&5QC0AxUrzT&34|Lxj=Q*)gl2A!Fa?1ap=<^)36(mfGu77-)!4$gv4+DA77jNuzn z)|AJm_e30N0dc)gK%EiCA95PA#7|(GlZa<|XmUBQdNE|OnkzOs_e!68Lu3{l2AP>t zC)v!uld^_Al`;Inw9+QefBbMXV)s6Y?VkyyO;hr1$u%8<9{Q}6_Ne8(<^`;BwfrMZIsgv1y&4GZND&Cooj(r#+J|Jj!sfv^9 zX-9@@h|tnM+CRFbacQFW(EdtGG1M=gv#G?jG}7lVNI>SQBDGPos^rJ=%iwUatJOpa zz}*JYkrv(R$OhPWeo>@(%eNGh;W98Bq~AY6Aaw6)Tec>|8c1L-B}c;3Am=zy`tGlI ztH4V3l*@{mM;GPs47D6pwOPemo98>8JZ)`M^GT9XLmv~I-Wc--ut(jgWFR5}84p!i z@ecoeGi{;)>wAMV_nV5FCE?3EU64V11#P_`Cj!-Di$UG(k54F8?=lk16#OjhWruD# zo5(ODvL;ng`{nVGZtk4uU6XZeo5*igStgQy#mb4-FArj_HT({ea{v@c0Nx^@nH|^D zP25y!R@vm++1S@V;z#Eu?moyO=;ZsE=L8qq2)0ae=q*}9Rp9TCE^P8C$(P^kV*yMC z1xQB{N%SH9OlQDJC^_;7l1u0`#p4RKIKH3ge&lK_NkT>M2%n}Zm~H2^NYZ$A&bQrE z-UG`**;Mpv>HqWnl2*UE;rbVz8JryT9Jz*H4skN1a!kRoU*Z(K3=34pZy$RI50ic2 z51>;f6uwcGsA-Q0e|}Z9LAw)A)A}>_@{gqR^J`bvw;-r7Dz~OfFP`P6V6=hUeNq%H zQIqKmyF5MIWGf^yBE*5$+W)I9p;N4xR~S8jbY~g<&*LDPVpvcckR!R85+fVi-u0mw z1BvR$FZI^9({C9*OtNb21plZuYI{A~oT~oxlq=A29GLQ9oO!nxOx5yUiZ&asIRCs0 z1eZMx&03p&Fa?O~O@I!%F_1?D_JalpIK9-*a_~@SPti`n4z5YsC zC(AgZ%I_kkR4nnM z8zQyh>6%^f&-yh+n^g}W!>bg6rc8S}p-ixi<2sJ#MICx!*utSUU^~JmRALmmD7Mq- zvlJ~==wg8{ck zfb64ezD^m3qo3Qn8QEkFVyOtAXji;0yYm{Zjd)!jST^(^a5hZ$Tt<@dhYo7@AxO^Z z?rmzNe;BOZ{-w2L*Y@m=VcanW0!oxgM70-k9IU9h=_omc^u6T*+jV)9Om@{tPHI_%E3 zfUdgM`$JxcC@xje6q&>GRrXG;pB^-!=;ufhQ)XpUzS>a3`}uNJlGUy-$ei26$hsoj z^rrZl3_@8H9U&7*i%Z~YY^6$k&tb$gm~U~$s;E+CC*T-?*g-YSbGg|W7L%r!n-QXj zFXXFVgpB-oJ%E;DE)$Ok4ZD+#^7!_2RFtxPxnP$iq@&m<*Wr1TQ4esrl;pR={&|P9 zREu+=B@xrQMPH}GdFFoSP=2*0I9K0i8XB!sFWxaZ$~c`Lu+ZZ2o{YKjOId3LoY%j1 z+0O>416WE{iOR*f0B&#`PyJ9kF{7xTjy1M7)J`F58 zo-lR)It5P_NAzkL#80mOL2nmJUfo6SA)-E8Z2ijzS)K>hW6R+_Kj5#Bhor_Vk@ckM|xH%ralFBo1lABcASqOZn`OWXJI_lxte z<*qec)*x+8PyRT(s*aLJiAe#vhHWoQF=3g8h$l&X@dY-u27LM@SjRO{XRes>KFXwY zL+yaY(0UAk0}eNAAkoCK4wut9_&3=M1f6q#hk~7sD8t8EZVWW!V528r>y2{huENXx z==5^D0UUXvb2u|x)?ww6covU4VZ8b#U7N1zWK24h6n41ZaXy7`JO_OZFSkD&tA0l5hr)ab50I39Bk3md^^bvR(KP z=|eQDAk>d)|1F)P-bT(8_5NCCeD}{h^TVB(-4xYTG)#sIyglIcOXC>g`{avy7>=lHfmG#{A}KwynX?S@#jO5*pDp~iQ{$M&&o0%` zbHk>N3O6gZt$xJxf~?B0ZPJei%+O^imp~x9s>(2y+U|f0+>s$?=4!v*r#)uULSHbT zRD#&nb=j$%r+QwHN5Du4vfi}f&9fDo<<_?(T}?pKK<5KCpv-{83erq|lRs%S?{n%a zIxzKK@yIIv2Se(=Z0zUyQ~)8i`e+)=!#gych}ei>Yq9VwQDqt5#)TAz4&XY`oEVMB8t}mVOt;`F+x)`#R}mjVeWECR`d0uauV7v85Dh zh)N$bTM z6X?F1f1NGiAJ(FSb7*%v3s~7qk7Uhu;PA>P2bMaa~n|p@2_cGO>{@lr_o&`by>O&xay%z|!|R z$_RgN8&(4&pBoxM33Nq67PF0M#I`TU@n>;%=Uvz=n9x`vfS)ntcs3W@Bno#z0I&B~!qfOH$4Q&*P z?r~N@@_Qn$K40gls&hB~=MB`E)Ny~AowS)6{V^-j#pLmCez3U@Q7e4x zj0v&IJ|ZP)C=SsC_eKqO-60LGL^T`lrzj>l8zbs<|S0s2J+P(qx8D zf?w%O$;-@z{>-nReSPe?yN&vSZ`Fy7I;}p<+gXVDvx?Vq!1XubPE zjzdi?_A}zsF0|#%k&Fjbnc|H*^!bmXC9lH-<3)RM8j%iltm2$lq)b2Sz}ri-m4&{4>6z@Tibd+HDht+4URQ>L=WQ6>L@- zWm9@O?<{Bqv@86mLo?@9ScGWcj1~5T@^#zrVjqV8x_*A8er& zPaIE6yzXAcS{{rRs_~6I0wWmXYw#a_)c0zCXfg5`q7tWNX$#veE?yX>_S=&(TKJl} zE}oSo9S@Yn_^xwYEOUJ)Ga$DANYao$7Iq^4An`~Ob96b6J9-9vq;P<_v0*Q}d*4K{ zJav+rRFzc0NDjTR(7QwbR2}pE=B}!c!OTrJ6?yfo-r7xLbAPPjw>hs z;^MV|xvn+eb+G{I}i_Zb+oxGJ;w9aF*b(IBqh%?_!4bH(zyKZN5r z*KgTJ%pc3j_w|-it?loYFKcY)zON~@%|u+|#NIizswcyQ%tZq24=gj225lH3j43u^FKW$Iz z`Kaq$l0UIOF}CJG?!r%d5B-p5t~&`}AUO{|-9Rz7&p3KLLhmF@m$_dgHY3iO&Nxk* z{JPXyYiyn>yK)WM43}YQYF)TfvyEna$Iui{KR4*l)oOHl|0&(N0N09n$2lD#(GJ|E zs=>7#yROwby%~<`Xn*ZH`mc-bGqCWYOSsIMZQ0ai6Z+E(*iF!XvkFY42oKA_U+q2~kqRvIVvZ&r}1P*R&+z zX=j$M{9>m~w})@*T(DJ9&> zw5$V((2k1#YK(BoOc(~xgIZ?c*8RNo&5btqAUj`rA=LbD1)b}rKvw z38_t9@>*pb`HT+o$8qzbKbv85t&P^zjCjYCJDLX87D6@y31^L_FgJVQMd)#CxpO1M zt%Sj@4N<^d;dY{NuRn2a6IeV`SxWb$@mBtQwvctElUMF>pF7TV#1o~#MYFY?cCLGk zcb(gHr6WUPT3wL%TCp9Z;`68}nMP4}yHJ|o$I2f>Xr|=wWjxBx}!k|ywGu;v@as`BUp>g_s1hHHI0_N|60d!r(U#anerpY0`|L3cI| zX39Lv3^3$h+E;hkE&gyPQG4lS$Lp0=#@jVS?OmH6|Jc}U-WBv&x6sK|N;*uR6$jsa z%3+_f5)#b`$X6a?&X!!yn=u0Q!5qdKb|;~IRoSeJSyGjH@8gahDxNg2i_W&JI^|)y zx#Sh|TRT;gYGSAg`dXt|;_j{s%GnYux?QTb^f30Q;b#OTkd!30^$rZ@S!h-vI zMNx;b_Yd0C#C}J|$5%h;a#T!a-RHKr*(r{m6!Pp@Pw@^T+a%?#aZB)|)^_HV6r7h_ zvjRlI6QjFm6uliH+G4c>tT&t_W=r(ooow#V?MEhi(LoL3Qa4!DkM;m_auNNaFhkes z@xTtq*PEvIZmW)s3z{9Shm&WH<(mz+RG;rS%r+H^VC9Cenolwm7mP-yAN*`BnFVtdnCws7}F7woGq3>IClf?B-y*_PSZhPwy zYgeqenP*rT;r0i%9}(e;qXck-%4=b1-4gMz-kfUM$GhxNNvXIpRG zK>elSk<}PIL$^(*r#}ue)=AKU>qn!iuN3%H)OSNE#&t02rACXjD=V0Z)}aOe%8gFz zjCWsvz^0gaXi-tv4Y_Z}Y<*YZr4Ny({(@P%jyC*%MMr`ty6_Ef(Ot0S`worqzfsou zf$|_K5TaxS+X)b_8H0;NsJ-w86m$7@-9_=F2^@2@T6gA4TecN8SD6>&-=!VIiDXpjXWp04!V%5+NVYjUuHpPU%22N1r7x|^R^izusO)l#UcfAiXa$pjL zUItvU^-_Nd*es@2=eIGOGy>Q<@77|rsK3MaKg5ePp1UTy5D&cry>Q#4z!-lDv~Y6o zoUyjR3`s-UDG`3VBUKt4asw<3-2UVtQ(A|>gr@grPo2Y@F!wdKje^E8_#(w;^fWm8 zzCpG4QpHh&^}YCvwLNU7)xVF=S-o9?U8_^Xfp#y|3Z&~YIGlDk@?2N?Xs|cf;gYV-;W&h`0 z0Be&hZzIE1iwYY;*$VSeRZ70)b{&v9{V=?>w0YCqqmGJwxUqxcpmq@{0rlQx_r@M4 zx1)EpU(3%eYL(t!fX@Ue?C6y)<~Je4us4hZO$)RN+O$?@tw(}!-ukuX?UHqB7K`yU z_2s5zSsat8cg2(T``HLBoTR*O8iNj1i(kcXPObQ!iu%q`;%gkUxWx-5EeOS;y7DI% zOr&l@o8kr&70E3rwy3g=h#Eg#G;iJngh?MKJ->1$X4aJ|AG_Aq-GqrtYYB{tn!Xaf zrMobEk=4*@-EyNKU~}7Tg-vwV$G0qYSe)jzFucFIdq)v9gCP}PQ`i=hKbcjAZwM7j$?#=zG?wuzmJ%JSt-Op6 zcT1lwkXcrkw~=r1MH{$R45&Eq7^ZGQc0KkRtLX8X8#hrC>TyD;?p=v@MCL^_ZY_*? zDK^S#GhOF#j?g>RNjPQx}A-1gnL zT&FUrlchVdonrfFfCVp_;%J~mpkLreI%$ZM+~6zdpI4}CRAH|&pt!wi*Mpzj5S^Jw z^?SWJS)pr_`XLjoX7J@n;e5QPL#oJ|j*8QF8k;s)w(pb{n%gCa*|7|LFF@jBGGN26 zH%$1zAtrX?@NY(?;|0V>xjXX$%ir`*drNVT2y(|u7fuFSt?*tc@@`plxTg1)w73bW zBCDL*cx=6ekmt4oq-I;()o7cUTK%e_?^TPWn_jaUKD)7@nX?6^#>T@R6Ep2PUb#Jr ziRoQePbliG=9n)h8Sr4sf4=N6tdwyuSs7Xvq(8MgvSk`m=qs zS7F|GDnv78wk>SZnN;Ro`EclaINqS0Gn%n?^h-=spq$QQZqEiKAO*T1gU>e9XIuFd zF0q>TeqylYFwmj~EC&|eUR4QI3eWw8M&NI*+%EUdZ+dTRDB4!1EL>#Q)+EqFWE!b> zB#%w8ZcacK_5u4!&dl>)VoYy~g42fn_>d|#VPICr=04O#op1xNf89~! z{(e3$Nl}@-Pi?_KIn}v*s;_r6HoqLRB%?-&;zM-A)NKldjawLxF}-z7AAHrHW{h{D zVytNB5wsV`W)9C(aPaG>6q#keT$7R;&+fU*dpqMKCN?TJ_O0!C>wZ*WWkoJ_%rkRu zfnImr3EDU6!uWosP(IX%#iJ^gY`3XlOR;RolFd}nuB4yjIAQ0M{Dfzy{EjGxN~3<( z%j-9>E{LMt>;>^|Q_}$3uxFBXKi2m=8v7$a1<{Cy$p(A^gq5FBP|wjTKi|n`p{6W+ zUUZZ_6fi}#Msl0q!^Pg`DM(G8i*iTke$<)yH2P`8yT_M_#mym}f4u%$^ySu-Fg&(= zEHNOZdT!X0Lje29Q1|UjxwpMIs(=G-r0c~?R52@;G0H}`y?;0NZm=`{edSfV-qt3r zaJ*&b)yZ}ETT<_6?;6>ObYWdtTkPc}-in83lId(lFNr11IcxxVqI0bi^{|Ke-F%=h=ok&l z2G+396sIkJ-{B-CO5=7)L9FWN!{on#p~*}O-J@_KQVfl%0Kk_hX==3vBfgu z*#6GQo9Y+FoJL)eD-tSMrhVZF*KHCVihw%nFe%jEN>Np*@(e(#a3(6AW}P-QJy>Ge z$is5CCc2FcXAGv~sU*mKx-iLHpRbzwtAxNr+{e~3fR}h!35Au9*jb4jwPN&@R3^-^8 zchR<=z=hRJv|@g&IvU=Usj#{mPsehTn|fizLa@tgpaJP=sL!X>>w%7xdp2ZXSMX%w zX}VvNLP2UZQ^AS~`^5){szFq@ywIxPS6#Xc179Pt#KIV??{19LH2!Tj94=pHpc`70 zl}G6FhEIzc`WfiX<|^X~;eKC+oc!)r#Xr)Czvd`oyW;_(6ZIJ$2>UsznVL8E%kuLl4i_qy@Ts4dsE*RyepEg#d4Z% zTX%3edMj@QTfMmM_$+Iv5x#5H_ZLcp-wvUy6is!hS06$VwG};~*PCy#`ys}PL|8VM zs7xtHSw)c7yt!0UYM8yb6&9_Szn~In^TtD8*I^-OH`9bv$!dS6$1%N4F;-WlsfG|+ zSSScNi6e3WMT@8Fir4)Pr0<~2nc4}>3q6S5t#U8j$&T9nQP0EU3a%^r&9R@=t4+Hf zJJedbN+~TiWz2DfZijKI6{PPk4HRwsHIF0;)=LX?`i<-xR>DH7rsM5KY=4>e?Ek2d zCb)R}!iUgGY8&+XM}72$=9Ceq&)S+^uUg%o$VC z2irG|Yz|I-Efg3H6T>^*b03aKZS=V}*I?GulG)~Ul|lPavMuFH(IDO_THKS}ex7Ae zoVaF^qUeM7;-~r$S7Y8+N-|yWO&u<_bTuq#h>p>>VMWd&Y~Bxi)3;%%(=QMy9>-z=tsL1n^ zn)zBj`PuN5K9_OHgc#I&Pgs9B@MlL~xqj@W?|E~)rA|)D)OE^udS=Haj(Z^?q{{m~ z`kbmxeHJUc2XJL_zTG4?T!FCD*f0JLn)%nGMc>b<#cthMU2#+13EmZ~HFchjb3B?P)tPgr4l{@Co zC#jK~npPexZkjh0Xbn2X_%NetKkR|>4dym<`tQ*yJB0E;^t>NYQJ-DS42_;f}O2i zbdVXX_KexA#Cv4|W|URtTYEyqEXcfdJlO6H3MfX$b$JYpYOxL>_cU@^OsY5XsmB8m z9O{0rRS0BtDi`F9b6n59GI^0kqA#@+22rv3ll}IOhAuhyVrzykX)$E~L*|7h8UYfO z#Dl-6#BBSy;gBE=my{4%rti;Spvws2oPjJmCpb8Yio)aM{#`P1iZihP{1YI0zL@MS zNDj^bMdaW8zz&BXhs^`eJ+QLM?y~|1rDZ;+qCvtej*dYX*$k31$dSgY%d&qIgPys< z9cAuL)jp*y&W%~pi=&rK(|CqGGVpHe03j-NHIC&9|KCr36c~T)}ZxsIX{C`hJK;`*jScJ~~6d#eB@S2RZYqFS(h)8{X zF(0*0SN@oK;J+*E=wHE+C?Ac_p16nfqfP?PEnb>MD0j;rx$Zu_{etbOi)1{4b$rf$|wh<(~R6Y z^_yY*Jy;E~0Dc!5)w>!wYTxvm@#Wm5vVV?@oWk~8cfz0{3zSjJF>&(6&)K%RYboBn zor!nKvO*tN9=$PHfGhdIR>`I^qnOSIwDLQyJJb*x;GE$?6hUNePT}<^cap=MUH?j z9s7J7P4DPO=w3;N?IQ?PPgumuqh>}V+sE;56S~d>MWFIaEt~?6U%yK&6(sNRQk$kI+VdJsPDIq zj<0(X+z&{ba>M1PTg)Ot%V1{$*w3fF{@qa>u2;VzEa*87@DJs8D1sv`E`}ZbiMAkG zGzcfoouOLRtU*XNb25n|Rtc&f;dNeX4em7};}-8!$GRlemhJbvCV)!3(7mBU{X$i; z_=GU&6<=Ysk;w@U|2u6C=@Sz<8;bMkT}`Cz$;pD+rQH1hqgHWo@iF$0%QM@vN$wMu zVuMD_p3#o6cr9yA(Dl5GYHO3;x*;>%^&~;Tlr3E$^zo=uQ-h&Z5^B$EG)277RjPRN zUCQ2HMR-|CW{YRu+o>TekNtK!Ovje;idKhYE_>{*RMqL1S=O95eY?4!5@$P|GmNdY zXTtcGvLtfdkDD4abdq9P=AT^mf5d8^l>Qy323BYbXI%@|Bq+u{@(41iOmwIm`Q*?* z81#*dHSugG5r>-G5}X=qM$JQ*_lmob9{7u~*mK$}7* z{R?ea?VRdKY8(Vik*}PV!1{sC++aogO+?P&Kh6w(;$qx?9sur_&g4t?viI8j~+6S)QVIu?KtV z+cF0mGQO|d$6MVHCLaXSNk#Phf|*x{$lkxf_-&-&9|yc0caChw#!S0Ud>t&zq@obZW@zk|f8(5j9J*l*n z?h*#o6k>n&UahIiNBY&oCtW<@IuV-lsg){21sTvJY*t@oe7M6yoHWj^sA23DR`Oxl z_Tq&1MyJ~3LtJpxglC7;*6_pCj~7h&Q-*xFt`pv{Na5D58dhO_R-gFF*ww;Mq}Oq4gFP13uPe5(PFivD!}}04fX~34 zbMI3X+esJ`s2pyQ*=+jJLcLF}&qmGbSXcJcEQW%@E*u`Zg*Jj|mBG z0?uEJF?7T{_2!%#nG8|HGC70?QWAqq=qNqSblKF&p;F6>se7a~zb4iq(`foQjo!Oi zz77+QI|N9rnStWwuU5026Q%JNd)A|(uvfz+XB_KRMBTr=Rg5`tkue*12SXe}=mrml zBTmYB(cE@_Z^tL_o$>~f(Qy<#l@$nwX!92Db-6c|Ve>uFeRs1mt*7+KIi;5Qgow*! zSmLZv=7kl9_wm@6M;?En4ge!3+L;I+I2+XPKFth~(U<)B*ZKWa16c~G&jxVu)AseX z(J|Q}x>7lOXR1~zN5#QYDCUTFVJUFVGm&G^AHDAW_krEU=SSP~*wx#6;V$cXn_6|U z{I9*FHSac4!&bC~YaRVJjVa`iN%X7zCEcc_XK2>FDawv_IAL)s=w8h}5kH8ojyN!ILR4bo=e6k)Ftp6eBWCzr}4$@57 z8~pLTTW_~I_=@Uh_J4-^Rh#aw$L`l+SZkwZKm)a0e4jHmfv0Fc5UN~j+^tm=8!vxg zlP?_7A=oswmLBf6H>(!FyTf;zXO?yUM~JV-UdZ3U4<-Pj2(s;YI8o~FXbr>~k%J$F zlwBDa3CP_6$wY+!O7Qbd>Yd$*?Z$O(l3Y=UQ8d?!3GSF{Gk4_!I84EFuB~}K*;4^5 zz=wj-rq>B(*%={bQu)%P%|2g)=<6jJq(ay;7K0hbNC$B#ZUbdDCWawZ19d5jh3`gm zM0q{|j_iyLh1pH&hCo3`@j`%dQ@35*e$*y)MbeW))7aZbDo5XLgYPQSAt4Yw1oEVS z`UhFQfixHK>)Hqny0^+mn82BgS(T;<{I60%`Ci^)@F==Di{(4C`pwB8Ugom(5{H43 z0y9jd2qW~%W1~sG15#tZMeo*Ukuf)^oQ_#cb~10#v+t@Br(5dZ#bj^j0WY-R4S2At zFu&hQC$r4D$_EaL9LxXf#TZnnTa?EdW0nF^pZazyEEjF=mq9_IfqQF&6?r&9fkWXC=yWO(VxVx$*O9vKnrQ!2O zFPWr}maUS&mYdIB!*dpKc_fRr=j%FX=dzWB>YADCYR>DIKergG&A1a+b(ubD$P~BjV6;#3Pf^CE4BIBB2#R#Qn5+V8 z3d9FI`t;@!CiBFmKiag0AM?54`@o5&$XD2q_T0?jU(T0P%BbT^`*q3dg|EFYhmWQ0~JtoJnfxK?p&_F`I!P+G$S% z=_TH&R6+LW2ffd70}ag0I1(#ySl&~a=(s)Yb9d=XV#*y$OEbtKa?R!6RqB5b&MdZg zOXTygVU$u@iqE!<=Cz69T)f=3V;R7ZklpKoUhIvrB9FH&R-@b2&wI*Qv#6&zrARIf zjz@KNKX%=-mbq{PV-XT~leaxPQr||IvlmLE{fZ?d_j~q}dwn^7Wq@Gji(i`#NNbJS z+0j(mEVYff&&RO7TetiQd0wCwqgq%^`dJ0oGtA)^Oub7EO3Z9ho+z^Vl+!IQP%GPBb**Li2(EH4h^{YPdcc@P78Cf${7YGQ%gz$%PN!@P@1x8}S;!t{DKVFt@3Vs3 z-!&MT1=#sZsY)y+Ffk+E!NM!E#JM}yG2C^&n92;(Ow<#M>4oUDCN4w5O}pKe@97EZ zZ0%z4ukR$(g;x1S_n&&_%RU&20WnN>y5A0!mf0SAvX2esvp#bH`l>LSC6JI;%?Xy! zhBg6fC<95;>%DXSq@n8sw;8((%E1rdS?eI{3)o1O@2%(v76rfkjg(RACc0VNmIj7A z`m1JpnX_+#CS6r7E|U@|)xRjKxzdxv2ygHs7o(20gglcI=W5O9y*S-k&C)X9`>IkO zpXZT2ifC8a!9PU;b#^Asp=!KEp3Aoqj~={pKRWD$YC@%?MAKJ}uM+rq4zU$Qq~HL- z*bQR4s7_0>R)&?HGm{;hqj|n4P3#FLF4g23WNx|7L>4CTvS&ncLTEl~eux&r7$oP) z=_8suak!qJ7_tJA|AW39yMenX6CVAc;N1Y8gK?KOW}i>F-$DzwaoG@23?z2YbjX^- zqqjNBdNAx4o+lg$DwQEEs{1ILMsGE2_Nw@3wC0-eJSk{eWopS-a*P+_8M*D?ZlIwQ zU_%0K#S6Ht(r|kK7V5j~8rtwJQl&mA7jdwlD6{UzyTWO8?w@+70s^2B$cUW|kf%n) zIZ$m)s0vZ!&R$TT2^j(m^fSzdI$DbhbVML- z()`rjxjxo+$O1$}cO-b#K9N>ew{;)iwBO+~b3Vm+lCp-UW7atV$Yo3c8?-p%1}dZ}p%{}kUma{UqA2Qjwa(^rEz7bAuT3UCe`~zR zm%z7O;N;W6s)duLjud%J`pk4#*qfPA^PBoTG;b*@&F3mV6 z1n+@`g%15phvfzax&TPsrp_&}$EE@=I5)U)MnEJE>?zh#2(V-vHW028uH>f;&(wizZjEpSjR=!Pt+`mI>eGc1%{FDO;&3 z6u9ejQQJ&^NT2yxsm_!@KF+qU_aFQY%}5S_py{6^UxGX@b{8cR2{P)vCt`h52U}-0 z7yC#>5w-dQomC)+C-oVOCs1VP;(@ek;1qPBWXad_sfNwT70PjcoN7JGrt2-n?TFk8 z1PfCP?gAnjZGaf_Tq3_ap!q6Mo7je9x%qiGz!oa02*$_&VvcP99;}ixyY$%Xj2{LlO!R|z>j$zj>GoY zb)ZN(FfH;c;9!}J_t+?vcFbE_aLOSBGRYF2%V;Z}^p2sqL~;O02AB0#scp>J3SLVd5Hs0Sc5t`h(KtbfK=z!#=#>Oy$qce`(4g7c8cIj zV?Q*)?DBGd~CT4K(SrEki%MKC%p&*E;uh%KR1rYm+2ud4grAJt{s9H6a@ zWcem+GzcdKAyxtxP_+=oMRQF$nc5FUn_FU18hCS4WT35b520V2$EiYHt3M+|g3tKj zNyze|tXwN$DvRt*B#4bM%RdOjZSMc^yXum{=;t0+PxNc*U)G7y{2FE-a=C1(Ii>h* zCl|>-MS?=a6-4>LX94KHplZJb6&AzaeZtB><8!4fKEL^uWZDOM0kQZZnvIh|_WILq z93DLWS){WuEoD1U{%$wCq&B?>@&ZD-C(8Bm^MNV*)=mjCPFkLe8f^1^rd)Rj!6C4LwGRb)SG|&P<0Ig$Kk}?JNZd2n=T> zXiK>+unz<(bPAUczTLLY67S%R^k)&KckMh!^JOWGiMm6V{I!meL}{U&Kp%!8J$IC6 zYFKSj3(}qY#lnb9c+4a^qYU9;GkIcKvIm>XklXtd=L@z)@yoySy^Q#wJv$qCqi1nZ zouT_@mQNO2At;LDA5?aU9c@)8oB3d(A=gXo)de-QTB z^}LQ8g`r(QymJlS`jejo!V}N_m+|=*n8v{XRF(=-@gdBN{y&%f_m=^dkQ`O^K)Ft+ zmHtsI7RE%iAb*x32xq2P3_0fTEwHs#&U+j`^-&Pq`aIxWE84@%M2@{F&>eTHLjM>v zyqgPD?~||UMv)hA6h0Q#@{g43?6*8_s0maWh@Ahg^M0Wt_W!k<-)RS^VslfZ3F`Av z9tZf{$8!tZgWpRlj!p|1NJ>ho@JXl0kSp)ad;gRJzwyu-S5lYG)!(O%%^wy32I#OU z02n-as07T-qrFVR4jw%u3l^uY9k&<#mxrKX3!vpP5%RALR+U9dQCO-Uczfkj+5K%B z-9mtgiM)w?%)sJ!#MhHUHfy@+y^) zL-GwBPDZP`J&mS3GGk}BgJJ6G;ps%Z8(SiVFON(BRTS7;Idx)UVx3I-n6;v!@eT+J zJ3W;8`OK-K*M^~QgT}|lwORSPRxMSId5lbuuyE(wKc^NL1XKgod8((|mE2u2;mwgj zePsCI0HIItFF3N6j$RXO4RRRD>aKQ~P24|rBZZ!~&JzuS(!}3<^y=WMP=9rjTG!F- z02?jmu^?w3<%FD8jTdhBJf5J_L|0V}p_ZC-xWIl~YKhfjyu-ydeOUrx*E{?NbWO(_ ze$Bkr=X%6=%rG@Tjj4;W&rVj@r@sTqRmwqVkcJNy(9cdkw#zRGek6a)L&MD8!xR-2 z@e|TI0RQZTiD~XuzLs>)>@(YOqwAoE;n$xLH_-Iqw}XA&(yj<#kA_|mvUufs?85J_ zJOpUEEQO4M2DGF^V6z5`K-LlBnVcdLTw7OX4178F)0_9=s9dbxht&L{eTGA!O^yxHs8-T_~F)GJ-Ea$@P>};PvIZr}8 zI2d{cp`2!Lo;=k6{GRoQEu74SwZX=P94>G^Ke;~fX!MBxM;ioG=1S|VC~$PT&xVTC z0$|Mz8{yVtWc-5m$Fo3_ir)T=4J)tC^es);&7&BoAn3ymLl&c`S zDR>N3Y6>{Ee$(yC_|T)%uFV5ePUW4BqdhWXXBMy^TkH5pIg$rm>FSZ^^oP+OMih#m zT<3=j#|+7o`d6e}?%jWZr{DK3cbLB)XTz1d|E3(jtwq2Lm8-jZUDu5Lb;EeYDS+a0 zzF_1myUcHu=n^ckT0Q%qO`dXp+wY)imr&%lvVX`WXaZbpy2QrUTjNMTgj_jdnXvG! zhUh+QPFaO7tgEFKtQQ*cmXG^YGoSqAu%si}FG2Y7|K>TjMxA7;=3)%DE)C_dF!LQ! zZxR3_M7rX;{w}3@ceM^{{J5Pn)PQ5>5ANOKj0QW9qFh41l5Bsg$g(Ip?%F3!VdzkS zOxZ6_J|qMi@WyMr>Im%8t1o%UJJGt2$$W&;ih1!#N+{{;`lS1#+pPv(PUukp1m$Babdr0VFY}<9?^u+rs_L_Fb*T&8&UY;&j{lk<3yg`kssorHms2&P{ z?!B=cBD0sew+%4XQKz7ne*vt?N-)i(88sP_E9)5|K&>nvGTZCIht%abKz|`t!*|h( zSeXOws&Ti`n%Quf38~HQyQ{6N`^AR!PfJpairTf>V-8tuN;22~@m)TD>0ChRU ztUPwuF)%b=F=Vpw;R=`+f622;@1Km7#IHbVfCwk|czA{u!W(zEL(1 zm+~5gKet~?Sw1AHWe%HgIg|!7{97|)O_okeEDIfy#k(Vw<8FqgrPjD|o7ITBr(L!u z{hGXHUS9i~DOQvGc~2%3q_lJ`lbTy8o$OUFlT-aP^c#M8nLm~V5na02mt6-~%81V) zOV?+^>PN^kMM21dGv7dkOKqTUG~2I4pGLf7Sz(R-uDQrop`Vel*aVO(JJ{%bEgNC* zZd9_z_e-XM3*C3=2qc5BKotnAux_>1cQ}$$WzS{W>lfYcu8Xb8KbiIvWX_UrkmlVr zbvH<_9^&E0nEuaYjAt9?lfA}JL&o!Y3>e{%v{3y%nf;%1*&Zf9oN@1wzYuMubwgA{ ztpFVXFXRpy81DaEp2eO?T@M84MtEEnqqKLmlcF^MaykONE*rOO>jUL+l(~(Mlq-3W z(33$emHvbJR?IS(???@$fySuH2~WGp0l(bf7!+%eM^VET&IcaLGc4@6x$qdKeDSAxWUgZ9b3Pt}e77X~NelhJXh}r7V24&_1ph)TXLyFqpx#4TQ%=p5 zvm=lDv(EmJpQ1gZatYm%FrCH7_DY6D=Hgiv!+zymv`_-wg&o*#ckC#@Hr z-+tmZBjnEa$3fFHV_H`CabiZH(s`cUJ&LR=Zj(Ol+d!j*c=WFtATSZ@-{y+SSjaRj z4=35OqkU5;)FkiTy9&O{bIOMvUIO5bd=^WbJ*EGswzL^Eb_6j>+CXza1{>U{BorB5WfQgIH|8*4qn~{Of1L{?FZtY^9uJ6a4 z3BVJVss8up|MM5@0|ihE7c(Dw5*JLF{T=$4embZUx(qgoi%F<``Ye6)af2R)NJW$6 zgY>z1<;Wv1al;5D;twL}k4s7^pwP4ojn~@@oXQ6EC-fx${0$hou(C22y$K#$v%mT0 zL0|=Nk#e)2LZ7_jQhj`wPyjukd~2s^S!H~^Yh*6#vV5jIx&UMWxfI%noJRv~Kw)>= zCC$_Y9Iz>dTGE~@@{b7Z^FQoCr3~9sI@+iVEK!a!x&U~Ge{)17Hw_iWl$_&V7Vdwh z^Y7dm=0oA>>50o$Wk<62r9`3}Zl#k%6R#f~zCX;D+!UdN`fTu4o70}Sx#-&iAwFL@ zxmX4cOq(?*Dda!@+wS}u8M~+iVrFJ`?0$agyysyrWz1+M?<0oGwgZr^c#%BhYs;G7 z2J_E|?o!}pqBkLXe`RJ&yY$_pIeJ+bTb+MyxCm+GA!JLhwWp^!9C@v5>7iEE{hv;p zeOxw1dLQ|BEpKuj_Y~ZKxJ0!;nxQdR+UV_q6*U=;bw;yBoW0TQ{I@9>=|Lsq^`ixi z4wWz|db3Bj^O{3>mKIED<&^v=^h>-VVuI#4Y~Xr#zizK$-YaCw;p)zCcx=GGzBqf# zqmqNgB_t9?voy;4)fqNyzqdyU_8qfdiYA>6qz)ctf`@E?PKod?IC&FdL$6HlmC z<>$R}=44ZI@|b)Fae97sgKsjA_!3wdnEzLL z;S6XgI0fGz?YVn#plzujo?V8Tn3LC(oXj#=v2V>F>f?Hw^yi$gb<2SHsi1`o;J|() z;d-V5I2eEkFwzV&VzXu7r!8g?Za;ni3WbQ&yYVFu{@=st;k@9q&Dv);9eZZv8_8aR zLm1CqT=%HLeDF6B;5%zE4wOFU&M4uq;L zkGRs)AY5w8+S1bF*5K25cf%}>Lc1rFVLw41Y4h9PE7&v1rYhuceY>Qv&Cf0DI^6vn zbLl9=B~PzW-yA4+ljD4nX1C0pIIs ztMgX(s+%o+-Ut4pD-sL}eZzDHYTL@(#e2*RLm4!hUoJfi)lvK0^tPw*x%|zGM|=nI zJ?!c%B}EW%*0&-iMH4piA z=g8J13-INdQh|t+en|8E{^7X02Ax@0Sa4>3Mf3KzI_Tfgzq;BzKCVhAnOSzMgdTaK zGkUzRyM32W9hokF7&-VUrw_Ti_%YZf)i2Q?vwzu(-!91=Lspa_IJj?Vcl0^P1-nN^ zl!2R3A9J%FirU&*DhRzpc3H#G!_8A4o*7$72;B!zN7cmJJw;#oFT$YUDr{hJ>H7=F&;K%4eCZlL|n1qcs3 zMftgrQaj(?Y4h;C{z3lRga17lIja9cpO&0p@0Q#L${n=N6o~mU6(Ywn5IM#$T2*%% zz`1QDem>@MF!UsqtE=k|IMKJPN>B3`*Qy2rUc&9d+?g+}lTF}aI{FK;07i<vCig=O#c^AMPr~01?v?CTNglJt8mqSsB&Lal^80i!)%VLu8tuI@QRxd*gFQ6J? zFfb!`;Em(}3cw`g>Do}r$$I2A7h#}{@10M80w2{#NDo@-uD7bW6by*ELNJ)H!otEi;LV-!Of?%_ z65|1sEDKR|rvmn`{{T9DYePkG+^Ab7J_Mwg<=41=o0Bb{vtpqLA*D>8^{8K(m@9dX zIu57O1B%OrPyTn>E?xv3w#W6EiY%7*sXZZfyzA#`2b#8%Zg*HFIK~g^gF5b&sXOt7i9LP=^DTNb-iwRCcCGV02FfzCcZn5s(RskJCyd+*D>Uy z03c@$Y1$sDuq+nSRg(We5#DC!58psvwUA_31jTY&8_a zX3uEjdejxj#`N!7shgEzJ!aEpQxx+mZX)cms;9q6u~|SLQ$+uM1TtF_JulX@6H2$v z{Ue>M=PsSpx5?7{sqjEK2t#MG)Tk8DCEX~MMz3phBVLL`RerA-esJ%^U3qG%Q%!TS z>=kDLDxx4F_oc{;$d4}xzb7V8O&EDRP;)xgsLCuCw<1iP8V4U1Ns z<0GbGIaNT9!^EYYY*gYIm-{a0C0ZlrgVld+3I<>n@ZB5(U8%_2_(kNPZHSUz&n5tM zMN?|Z<=p>3Nr6*?kx#?`aR&MgBiy*cq0j!?`Dl260h|n3^Euv93v)FSfU#scBIcZIu(`f>r0w`^BlaKuY zY1@6xdtSolC0j$#eY}Ll=QCAXIJ-J`0E87VF=Pmb)xr?4&)*>@?%JNW`x;_0{N{cJApFgbPa!}oP62l(D?WYgP_TBKWy|Qlf6dOUOUxq0R)gK z1%j!)>2G?``jo|D*UxS=_6do;TgxMk-#))}TRW$?h$S2so{7d~=XJk_?ZOShH*POZQVG=TI48HSZ z{s4vmG+UTSBz7M2EF7=|xyzKtjFKGe>E&e{^8e~@_@5-;w&B;~kPxbBfV(zP#=0Cc zKTuV(_DD{Ey2hzldHwc?|Jc^S){We77q(+o1?ZeuUCkoumAKt8JO=i-oh>KF3_IpL zDyRxNJ39pEZ8-i!et`2oqX;_2NQB69!|Clq%8n`8{ZDBiK65M_lTd@t0j&+_q|U5k zj-AsWlyvDJ-Y|(>clilmBKI%1{f=V&Q*8z;feiq?wUG6fC?1TRv=7l$%mG*4Z*%dO zJ_5D~Qy_z@65$NuQjL$Qt^^vRn_iy3Mzo=#;Y8d3{kCEM$@mP=nFDQ+gE){ZAh&#e zyxg+8G*V7q=Y6vV183HMWA?w7Tc<7u-m#INXYjna`^}|WrH_S}k4zs_$qeu@w4=D> z(fNKjEI>=h|0Z{2svnF}?1~0Cvznk|@t9 zC_m7)Jh0J&*<`p0KP!)1IHtq`-cggF+q+>|f^*||a!i%wK>^?;h5!u38E_qFOP9oV zmLJ`%WFQeLR}`uyjPZMsrw;riQnl^P(O*|EsH%|@FQRVio)cdmcU;>_DXaqr zMflGHoYPl(_4c%{+V@`^DPXCzq1HADaulAttE^nd6jh8@x=Tfa7)wPg{>$;$Ky?+6nPnd$*yAs+ zB`@gcKce5B6ZE?yuAj1h$iV^;z7FWw*g;*qX`z(zvzC3o=Cvh=*e5h$3RrT`|Q=OK&)IevFM3uKm(Hw73Sn&UTW;xBku^%19L9nGW*r6 zS!)%mtE)ys0S1j)1ZEk4D5~ld9jyj(>*2$cZw@tc0wjM{Njzj`)%@N=@Re&gU z4`FtTJFHZ`r27IIn7Tu;ou49puXHoEY44*C-f;49-AZM`E+B%iede>xXS(wWzpyYh zQ5g=AqUyhn4$hJwJW`ZHk5deqcsU#@7e5v1Jbm}8S4Hqng(kgEF^yG!H6V4alU%5q zBo+Rxd zKpB%g6q4Xr+uoTVhD~zA*+@HET$R~rS0{Q56a_c*Hx3%RkI$XZ>mk#!n=*`cm zUr;^sO7xU51u>{OU%zZ`XEV&bzBLI@#&&?cT0^T3_IG{ETmexy9c7#EY3y0BU5ekn zhx=N?HW6JA*nHSfu6(5kMXTZBL)hiS zKH6s2u4C@O;`-xa;2`-8x@U4kPNB;OGp_}S{MtmWJ^8yQfD%oD6^c7lHT%*c5sSfx z!VT#k87P`QK;*jE^uvC*Zh~8;q}APL1mJAI2}>V|ezX0_-;a*|UnctrI_dV`l0=RAB*wx*$hl)+07kq4~IITfsUg0EFIm`@D zj1f%vJ#X71#euGlJyqaCwp(TEyxh%Y>tFbGmw4s^cv$(JKZaUD&ZVEsZwBQ1^C#py zr?jF=;N(MBcw99O74})!-^2t(_dqurPHEGpMo%hcvzfnCYG4|U7|Mf z-0W-a2v@qiURmCkd58cVgU{YGaOy_DOQ~(2;B7Cm3xdi^hlB_D)UemS_?GH{8~NKCWlEA7rtiFZQ8wJ zc}~D{p9;8gDrfv`1#?>D34rlm)q=2f$~Lj&`p`+4p8l{1%+(f0?M`4=VhhE6bLMFtXO z2jJ&|k)Hv;Vl>5ES+*ktV1fF%&~C)uj%v}c>0_LG;{}> zen1Jo{@B#bg;pN_$sp9h5MGKnQD<-g2zb0`vo|0)B1$7=z)dlkNjhnp_d#JWzYGDR zJ~weciM96s@bwi?QLfwjQc@Da0Ma5LEg%w#v`E9yE#2MSAPNFX3?(Jq-3e=QbkX4cI2y}94LpZz@hLr|VEgl_>EL80$J5eI5c{6;ci#_}KjdzQHc=OnKvn~Tq z8sniCY=x2)X9KYDpkMAd`9w{dU9!roiVBqqm6f>6 zw7@G621QV>}H)j)eL9um&mLtlXXu>twvMVQgVbQoH;+mypWA9>bj~1xuLpsKl)}qYwru## zH(XN_grsstm7>mMxYBx|NiO-l)*1K;u9q7EDeoy9K2n>1#8;7*kUP(B z%$h(Sv5JI=l5Y0&i zi!;Y%(mvq$z*!uLze?<;BzH33f&^8Ns?S3WGu7)O;((YWn}^Z(H0`cx)K0j zD7Z1A7{W=SmmRF$OABaEAb3NOO8Sd{VLrlCWSrExxxsF4*-qluu5>2uRsz#7n(f{d%GTI(BotN;)>8dV6zr?c5QiROke?7?o$G^13jnxd_Jm5stN!-J-Zsw>;UOv={!nriSR}n zX0wp{Wk2Ck?%$Ee-*ZusJ0uF!P*S3__`*~>PM^w1?sGk}pzk0rub7`smLyo*p!7LF z=Vn{=x4hL{v5rzSP=TP5Us;{P>-6^|7YI)9I4)+eYSb$rLwt>VikoxZI?5G?Snsi4 zYqDPJGHpf&FCucKL+TVjl6C0*gPS?$RRBrJX#WlX_Y%qW01#k~g5VghQsuUo0Q6fu zTyC3Qg0Z?8Ou~0K2Wa=L;ZPRz79&a$W0P02J>6<&%TInUXsdEuT@pP*8?~Yj?zr;Z z05xx}eVyjSuT&{o-EDQSxp#+1Zso0}PA@Alv;i!^ zra@*5JZ+$oiT4wsH2znoPr)t-{=!alwC(O_IUkO=n~uUJ3kLYFE$`}jCV}TWVPNE% z=FJBV>qHX7DnFHOPSAj^b2pn&UOSF?4+8@;X7Yp&?GZA;^KiQC8Zmn z%7nHx1n4{-Dh5gJ@5un{H=jNl#E$60!_^$diag&OlAL*FQ`*~C(m0-WVXaJu=^z%` zR6TcGB{2OU5>Vw_@M;XOSqEk@hDy08C}lu!TcY%|A$aVf5IV-@simNZ16>mH(?|JM zSOLIpqQwZ%G}S%hyg+sWT zojfOlv^-(P_Y(h?_IwEFmsWuqSqM~25^P_qBCP%u`KJPPEtmYJ4;8G48$XYr+Do>6 zcc+N~$O>RSn*U-|r81|!U*%r45;DU1Q_(OKj>uRcEHbiJW1>d)-|*DGBF5BKK{{Sl_j6*XsJ8#Z(%0~cXW)={9Furi!9?i90 z?~5nMHbDGa-vC3r3-I3S9EMVbrZ#d$qLJOVktMk9Sw#eJGESiz?M;Q*NS>Ou@jXZu zZccCu;L2+#dRY!er@V&$cLd2- zun`#`PG~B6Nn?pe{imP*d8I*}%9X{dS-M%FAgn}W(LtdX|F_12X@F&%JdPYRJPk^C z>sD5*k!1$pxZ=UoGyj29{td78gG?nP(wJ>170rGC2*BmXtX%8yJ`sPTzs*&PAd#v1 zS?OElpCGa_1ra2#;1aLD-P>2N99cs_fqth`CWU`am8$m*-^kyt1nf&geA8Zlhl`in zqn3;(I>i;6`=37k=arIILAo|E8d~K}vR>nVKK}DnYBOeq6F8@NrR?^ecGP2>o}X9Q zNTfN78vOmY5B&U|4pohHJw$vl^Y5YfuZvWqKcEeowks}?{jU%I+@FF0a0y~-i{am; zX=oMcfN~4R3Zrr*TrcTw4SwMF9^?O~n*fwO!8>5Xd$B<#%Rc?y(xUfI@{NVV~@kDcG(mj^!`yG!1FFiQwOOadpMF-=x6Jl4QRczCTLs zBAFOy2M`k(;u1MbWV76|WD?imdIvZdW}Lup_Cqw3@M?{5G5z#(M6O=b zy4I++o1hk6RBa9*Q&-N`G$8FaUVH#fh%eIRjQ|9&57f?c29i|qSvJ+5U(_rjUI2O% ze!EKRx~=Ec02oFWUhMQ!lt_DZfM?~4MmfVzSjzS62CViFfB`cH&*343cg=v@^$Y-+ zB%SX8u%~jeGXQit02S`kYg2H52_W&iy>0wW!U+LvnLGlbi2P&dW77iowi8P0#N+06 z;d`ensh*V^Eyf$M0Mvq;BWk|v_*l4n(R}CS0tg%G;AH@ddR;GXb!*>HrM+TH)Q$Fl(JdbXk%ta;Ot=yrk0EM7B}i|5RoLFK6-?ev8S(zYpM!Y zDeokA*M4v}Eep=hP%oE`dS$~AEC5JD_R}eEa%O-j0CXu<8~i|3nff41BB*i=?6`Lh zsAIR=bY59}g~toH%h^6)rOzapaA^?b&8FCG`7Q5SwBjt_0;}$;&Qo6f67!r#C3pOK z4PXdb6xle8-yGn2k6@)3ns2$oaAgVh>s4Hx9~-Cwmwq^Lrk8NFk<@qTIJVYUFchfv zmfp&rPIS{t}xpaxLS z*Y8y?%#(W_wl+1twc84SxBx?aeFW&BA`>|+Ae3Hh=yWx3RC3OBC2Suq{Af=GK+)_a z`+0b&oo(PZ-JJ#RxY9?rQHEbXyT!0P#gFFo}0lyf{4dA!Rs&5JQ(JnF9no zQ0sdFTzOoS=pr=wXN}zQAy2jIeCdS*1?3S4-hn|VOV_7S#;Qs!!nopS=v$4}H}fW3 z4)J^*gRd{FyRFOaE-q#oFOq?jTA#zZG%$WH{JVc_f~6oLLdfsOL>ET!q48$+q7BdgZ#V#)DD|pmcM<;@$Ac;>*V+%oNgijjji< z@+mJHb^+=Ozkr%8O6&G6&}%2&-I4&GhYbRyt4R^<`g-rRT3<5rPoy*(lvbXNYkJV) z9N-x-GZ=J*JHadAl3G=K^C3*rY6h^)?o=oX;w*-jd7H6oY8{i;*p;~F%1^Q(pped^bST2m*T@@@qj^Ps!>+N}duL#0>jO*7V zx(HMj*^Knb09P7D3nya%Vy*^}qoCBqR(BHsmp<%a+zd9|1ig~4}2l+fIp<634^`m(LDj^+yx-I*}<{(x$34fmJ2v~4={@K`1{c5 zzAsiSczfKD8-Xrr04>!VTv_xaI=H5U{+SIk3dt+eukhljUL@ef)VI*-iKcaeXK#yN zwf2OXguO(A1J`o^YmaSRpV1F?H=Nw76=LXQ|C4{a5 zSvE(Y(ky*+z$_+65cyqd7kWk|sruO|pb|WonE>cpgPIsGU)ur7r>lxG$9S$Ft_XC( zXSau@PGMPmX=)c%@2CXTOg_DZqy5?m{;4EFOYjd z!_cbg#zI@K`Bv00aGSgFK=sYhPbXm3Jc{W1(AvMez%vfi0ZxM-y-PK$7?k_va2X_Il>NaX zzK~EL9_FpvV924{THxsqT$0!JG_5yZI3R{-{N`}Usm<9>8#REm-wUrDHXp)#@OI*< znl*cUSlJ;G<)z?^(9H$1?hU|yyL$N(p@$w~*SFbq9A@L$jz!AV$Alsu`4SB4GvQy! z%gbBVg}wl`dMI*8C8^uls}S#L^ldj}3(4nr%VA`ua^TgcqiGeCS^=Y@qcy>l-jkZC zFYOeiOLj$%`jAnD>mvy8qPT$bUAVMirk-{4YX7l2l z0Ysa}l24*JfC7KtDPbJEpA?>>Nq$t57Z&?wBHLJ5UFA;b}X5I9}-ZKpM*pR}aspkq+A=}rk{CkVZfqza^ULmTIJ-0en6I)93U zihYXl9As0fjF#jKsVx2CdwQ7Yr~}X{7^l^t&^M==O zkKm&&6ol}269tj=cD10dzU+(iGsI^l`)F)iFEWSfRvKmZLDBpY9YfGmTtwUuWEi?U zkGe`wr2j!_s@f+MQCTA+qkU}cM=#>lztGFNd$ z*Ir1G1t>%{C_2m2bQ*olq>M)RjP|JoD*CiIx%1`M%!SK`KZ?X2Q^KY)*DBOBrPZEC zFLMQ*iMy=oFDBQTz~yN70hoMLJkVjtLB1%QIum_h+4L`z!@ zmf!$*K$KPzlQ-DF;`RdE;H%?_a zCy6ZiwB<=*`jrSek+Tb~r%NiXu)qB$gUA7Vw2;)psjIm0y_nW*+FjvOAXPQbWTd}_ z(JN*9Ak68}(jjKROBx>2aK*l&4?GI*!QfP_7Nw-NL4`E6w3FM5<^@eWJDE?3>eA5& z5*D<})G}(_sk%!z0vwm`Fw8PJdhDs&4qbp;xP!WUYe-P02~3Zw{kT@2TqT-u6`_?9 zlRwHo@)K-H_YHHp0RuKhvhM4jd|>;uNxi4C?zPDksI4xTOP3=r!MDko2rKC$-a zS}qa7-E_*t?MYcQWP9Gj&hSzH*_w~e0!VljSFHEaS?_7s4^&!IUad5cE~ahZ-Vmh^ z%a7$Vj0zbhNF-w!nYWNiWOx4Tn&?`|>cx|3^@bIMQ14 zST^@7KiiDj?7)=TG$Qxfthmh>WA58EkRTrJ3bX&@obVafb8Bfw1~9TiyvTqoT_ZExcW^`AcqLeeajdV{CyhLcpa zD2|s;0U=BK)spa0E}HEUd0ToTd~ZJL)_PgV76(LPh7o}aF_F+X`X++3IcML zUE#i1_Dp_B^Ye2ij+uck8783+J)><|FK_5Eb6;QQk~qH9VaaYceh)Q7BBOlt)yE_~ zpdLXaQKLY_9r^8{%P4;2MM0f{>~XTr{8jR=;$`6A06HBesKM9&(r}syDy+78oaoM3 zaWfYqH!V7h>&&@V!( zBQ76^jYwN%sM2C)rOs3%SnEhT*%3ha4%%Rl8Nbsa9Bc(BJo}L`d>sZu@{e(Wq50oG zQ|d*QAT|E77eQ;fYB$JT!!Hrr>TMNkHJjGtX@bwB**m^bWc<@luYip*YSG)}ukgvROGSu^ z^r);%e?z1u`F8ZUH2HbK<$sUZp8(P&?lpr(eFo6W&mG_rZ2eHEtD71at-ISX zHB;`d)AO&{+T=$Z8yjmhVE~y>t03wL1p-e91ApgI$LM%3)c@xHyn_Fl3;2=7JnI6)UJ{NNq?D?sKuSjJtItfNEu zV;BgI|M$E9db@^aYG$^@D@ldNY6Py0059F!+jps+h?gLZ4b9=$6lra$`!DruCXn$CS~g5C|bd5OjiC)%qVsHO!YeND1%$E2O489y%`dK5vQ9zW?rM z$c79c@lD11S`Xa*F%Z!}f48fs+<)%}h#LG^_V+CbV1RGF`bG=i9Hue#-aiFH)6;n@ zTgs3Aq2&U2U**znFGpic?rXW9w~Qb}_y&5!baL<2Z(@8sG0rCFiakUBW+mVj#sZOr zh2oE#1JdGs}$Av*ZaW%vKuHAT4X-dh774mG2hNzxp9^ zUVi?XsfLlzKTJNUUsl$0)wzY2a}&p!nwm2ckr}6dF}VMFYq^LFMAT47<`6&#-M@^w z_e=0mCqn=xr7m;G`+9GKKuE%92p)u7dH}3b_i$f*!v8&v{yd%hyu}}+2sdVdgwa7D z;Zj6XI0_Y^4{-lj=tIGe9>4#`;dcVeP2MD+gVQh>OrATN?D>QcGz1Vaw~Ac>R^dvF1R zE ziG14I3Mivf!F^1KNfj+7j<({nnL<}GH4^bT@SZDt5~O^7cwFRhF*SM?qJXxBGmsH5 zjM{ejs4V8>XlGN!d_fPFm zBl7qaU&5MyjY+x_#<;w}r=00oS~4IKGyqWjxpk6uwxAsS!0XgI+?;{}#~9O(H1~G}IMad!0owqHI7{g&{C@u! z0&e8%1Qm&Uh73Mx-r|Cq!x!zrMa=j2)c1mc=FvaiJ=C`<<3MLnvzFlAF+h+@t*g@r z&r&A5-&nxi5p(lMg`8$S$2Haa_Xl9eGe8RL|Iqx~_k#RE&>4JH@B7V53)-S$js^{s z&TlJ)XO^>HXYu21bu6jJt$HI;TIN`xE42D{zH-KTFYhDP*@DRQFrM<=H=KIASa0^d zitu}fWEB_i1IPs5%mMs|#KhU%(BfkstdXpX-F{I0y?e$_(83}=e?8?LGW3}r6lZVy zeX^%zaE3B=-j1y_>b)Z)N#~oswH*=?GF%M)g#~HpS-9(Ffwo4>wp3egZ(mIIvs`v2 z71=>8tXozktWSyQYNre5_fEo%Ta^g{BvQ1d<0 zr`rfWN*Gdvch;hI{N8c1YOSi=t)NWs7-VVQP8MrPi3B*Xuvqsu>p0qY9!Xh`1n)Z$ z;ZR8YyA}WeC(_M9R_)2`cd24KmR{AG9;&mVrLisRrRwI51R@sa^uafCmD80!gAVz` z+bxQ(SCF2|vY`y|OuVx3<}nJ%qAk*2Y-zJ;dc~@?sdBSd>)drIe_iBqS@EhU45wqA zaofABiRxooppsCg2 zYaUBj+$?@~&#dbrJsp~y%vm!aZE@HgXHEqZ+pVTq1BtAv^wTZ(8)!E2kit~+5pR1SLuCW*KD8DVaPe#l463nc-0|cDfad>Gs=iAV| zfN1-#Th;IE`-A!jW%H{^_gj$1)2nvu*F$>h9EK@;+Chcv?@ACuj3&D-&M>ILA5-Kf zj;|Y6Zx{PS1UPMZtSz=yd0Itb`>37#Y%4Otx2~CH^~iVIAUtB=zRi=G9YQ*{3z)BO ztbS-;wW8k7TXl#*g;-{2m9y9Ku>`~dDR5n}g=ba%=92D^`Wch9S5s;i+q?$5*C##b zA-~0iI4EONuE*L{a&cDHtDe38R-DpN1O@J0N>oGo-hugDVWb;}JS>m>?9mEbmx;L@?;3Bc4Z=qH)yrQe zzJF+aPN-@$kR4Fqc0{XMer25XN@HzY+Uqsh{^3+vLF12)59pIW@iGu_au&J6Cb@CM zBy+fNrmKG*C9rT^WUJn+xE*|%)_gZ*U$(aXg(P=MpW{ybGPb74R!isJMm+`d!ApU9 zI1j4XT0ZcM4gw)wF2p;nqhujZj}~6`k67{gH0~7^?eooCGO0z5@tk1IVBZo}AIA&S zC=X8U>t+RgLCL2n@GNDLR((xAYMks`MGEsvn%gGIt{WS?8L<%)Sk7rb{xRhCw*`yvc=9Ql>DA=J zqbDA8`1IfeB35T9ipyM!gyxpCoOs(Cf}o#YUT-{7eeL+Eo#=PS!p(22vZUUR6r)um zYE)m~HVv%n8n*<@GqDcGc1KU)bc@buLYN5QGnI)}uuWrn+mb&d?Fhdn#j1 z@=RwkyYa)gFq0*jR(BK_A3m~0qLb5ztscEEsz@Eg6|AMn1gE%>?T86af9I%n-AO&8 z?vTv9_qdG&qI`*G&?G6{6&o);?k|YVg{$b8wmI(L)6Fs?DM!F zE>(1d4*4$h5%archd^@;BG}y%gTn8e-KCB+fm@dQ%c1C{(b;C@}a10D zUNzOA{in#A3c*TZ0f(}#jQRdw&u0Uf#((hOPgxPCBb$8qY}QonSxCS*zV!pjxB)Jz z`agB>eQIv5gk;+P2eZn_%ZpSH@A!-V{O`9=QiLnewvC+D)jznY)K61{86W=7Di}gV zf5oc4t)Wu9AHbj(`7e9M1w!;1$i5F$5cHuPnx0%G^t!mVUOTuQ)p>jx?^(^PId3xj zBXAYh)XIsa_pHI5eyaklf_ljOK!)}X8nO#ySHcA(2Jz$0kJ@K@>-V)UJfDz)<+f z`$J`@kNF@2HK6G+J)&SJua#<6Ey2<&2G~&*OS>^ zyc`!jJ2&-X4W@QflVx2#dkMyaEU^8aSY@A^dd-`*=6XEQ?BcMUHT`dn+!L#O$2?rp z9{v41%QQQhUelbiDc>3z25-DqW~F9lEo^qxHhz)wfz@0%BfA(|TR?C<`?s zoCBWi!Bov;Hm*+YU6<~Q;_assWKPDahF8VOwj^M5l-FYWPt+f`vqTBR(-s%@l*g>AB=Eu1Y$yM#}1S>Z4W37d*|fFtt`QUX6Cl^TO*=p8K#c zYVP^P?2?wz!V^{}qLmr}vF|d#6RAZP>KFQ7pE!ypeGG@YVXLMHvn|~ zQJ9-2n{`eq)&AF4;b8x8QNVSxmGVCQs(CwVqur?7Q_kAdBU5vW!F|A_Z|t{?O9nXmOjnq9EUrLm`cOu1h%NWv3i)=dB&`@2+fAIrVEu%O)spiEEzq z%yF_d?h?*A)@zl83UHa4db4LzgQ3VwxT4;? zVJ*6V%3M2txg0wi$m-Lb?2%{>k)2LWa;A??H)@9IRBuzVf|TtqH>|bBVO^jd*NSLFhizFQ%IcJ3nD9;-=^I&IgT(Tw z;EI=tU3FxH)N(vM*?fC9R93*a;tx{CcNe%&5j!7w;Ut(rF(#%bHz7BJceNo1V@0>^ zl#c1LuLmAt#fYYy4c%NwdL5|pUE{#RT~EI9&3zB;&@oo08LO4|DJSYW2U+Yrc^Bd* zbw#12T&Y@P4JUgqs=rS?HCS?K+JM|`OL(}b*6Rh6ZIYNYE(sVS#`?u2!;hFhs5$qe{=lK{7zkZA&F61q^Tp)s07vIoFZK>9k@C>E!He7y3Hc$$ zuiX;o zhH-qjsLq@5)|@yzekFGO68a_TrgR+zbFP3@YZr*4?M|#=A4v`O9(!@n6c%;%py&TO zQq^82AZ?PZJ;d-Zk>#Xq!D);Ei#o-ukk4Q8Rzqv1Z+hJp%BDwRn(xZhweQMO`!KdF z)$97g-fqP?S1*ZCOk5%sBf*D zYNI&i^z}l@5}8#?nb>U?=Tv!)*Tl?R&R~*Ojz^?dDmu5;7^IUmdFwh1Yec8Isr7nx zvs@NnfXY~}QQqpG!NA;5hit;_c-y`VrV=|8fQjgZDTlJ5&OB{s-zn>3Qcq^ozH51(( z3JJVN$8TKHfMc5(_@)*7R>drom_3vrVKtPr2Y)<~W`)=1yND2tfXEh3DevIWlaXA? ziW_I|mJxWsJ)7UO%(!jdxE$O%Zb@1&KDFq$EHiOs;P9d`t7P>Hb_alKR3Qu(SuaQL z%%+l8mA9V7e2@@+^IFU#Fuv$p7PGKKJEi|JdPnC^O`F4z#IeD~MZ&4YHwRiD5^5Gg z=#s5T9o6gd-p6n;b^F?k>D;bwe-Tw!UvSMo&<(3U4Yf|!v_4E?2GOCBC&gzc?*VX; zz2ieu7-53H$rN?O^@-zi$n7c7I08>cSUn8U;G{0mfWyC(xvUk>^SRau?S$nK3JS7C zhI*%px~2vB71P`=1MCaQhMOwc}UqX~t2c|Aom)}-LO$k*pg3DeRE<`|`=G4vhF^Xvgpr193dda)g z#ax#AC+b5I5Ul4b6+MT`2G;Co+xSh+jcn zHelsl2z!0<%I0C?Zfuq-J3}W&n9tcHd(jvq`-q<^S`Q@HJCWe!@CD({7k%Yw`a|D4 zGK*$L(plM>BNFc0o=|d0RAc{d0LXOnG<6IVxl+{h6Kl$cvU+jcCNrVKBxXY2O|r>` zpc09r*OFpqphVouM@1ijr;)F?vUxaJw6taPTj;@EsVehJdJ3oM&mUg1-$87kiybwF zc9!a9gV3qw`VOx4*U)mhM5mS@6`VmAo9|v}s@@=jXw`$W_u73AK5s;<#*_!S%&$Oh zmhHH=M_1-1S(6S_Zg1tRukK)-6E0SdUtQHzRMt-2N#AOk;^RwEz;fFWjbKiyag`rp z61|Gl!ISnnkT)fuy4!S*ny~%2*`*we}Xni=U@anCND16UD~ZeykEA+dF+qYOHtk$)$f2G z;=Bs2eq~nbp4c6Di9?GS>B-H6in9$KT#Ly!B&*0S%vY(mzbX9b6=wLsz09jWFa6}0 zBD*|)&w@SN4km4@G&-t5Zu^Y^L8jK`%>8RmYe1uaxjr~4f5D)-Ekjv_oMU$}!egxy zZ^z^5Y4t+h!Da)CDuJ2TK1M>ki= zswuSXE^FLTX7srh)iXWHamQI&-5$ZFM3%}ix&~Z2pt3o|io{n;-y}@okw8(o9C%&Wm@hvwNt;ICa z!ik6gwPd#8FK-Wm0%9=D5SU9gafvrP-%6MFD$PSX)5+MM?Q2_Kx!Js@K)@g~&dYOu z2N?6Ch4KNGDgaoP(Q1YxlM(`TGs;+`J%c}nbtNB3mw#LDkdmP~Euf@%1VEAGZTN#= zMT}9a@)!Xzq(GxbWv3g>r-X0&w9;1d=8mNF7)?Yv5ais4|L=gv`S8{#0Qd~DF zBXB9c@VWR2TMMPZIkTD$7Vqkc_xWI#RryaxL-3o+hop)&^=Mk;% z#wLFQgy-VX($>LQR-b-U^^=s`^M;WWRKLv{xy$XbJ>z<*rJue`^t~ks-I5NfuAKdv zi+S%O94j>&drzJ?oD}qn%XZ+2Jh69rclyb0Fyb#i`j))fCXm(;P@WLVM@K227lo@`Q+&L%b6c;#1&fK`DXk`nsWnCmgp_NJtF>M%RtGyB28KM+mb%4iJZOoX~4 zbU2;`+L1pw>!{=D<|_RDjk18V^Mj*oS~98YRgg7Q$Z8Mc=&+BjxROn#Gc?k&8%f|y z#dY-NSBnH`eXZ((?%5_;d8(Qv(i{>-01pJK>Z&_#ZHC)NsHfRDU(vO>WN49(!fBa( z`~#MKVHQ}+0OO$G4L(x^mGNW3g8h;>^Y5H9h2Hxq3@*Li`)Bn&CAxN!TJ+TMGL$ys z^=560NzH0GB5h^emvcW87_Ro$Vwjf0Ru;JrG}%LO22i@UEr8rHB-vc&hVSL}rUDd? zDrxR_)AQFKYpybOWnfSz>ooOC-T07Vv1#Am*(s*@n$$NxXZ#awT%58-bIYOp#YM)5 zdKK#Bx}{U*lBU~q&160MK?Jj9IyarHl0N*xdzZ2{2*PGI`;pukf}770-7LPxJHKyC=2TWZ0#=~5qx^J1m`15>f}i;- z^`fb3LYcnfn`HT?uI=B|2j_f{qEQpOw;fF!#7EH2DHgm&HzS=>4qE-|HV!Mr>?j^| z8Q)##iM{%Ht8F=rw}OH=1~cPU&*o~vT|V;5#T76SMuY>vk|WKKrIVmjS392%jSLlt z+23D*o|zmoB<-+%Lvd1IUoiOVdo*G;yYE3#kh*@S@G-znQ<%-- zuXpHRE&~SSc)gRMO^ZHdFA@j1dcFKBrtQm~TLi{AiLeJo5Rxz~8(uw0(x=&hy9dda zZ4crXIs#>tb^V4hjHGYG_;=N0zk>R_Nk7D|L*AZZ21gNK$q|(L{YVogGnrToxs_b0~sy zyw&$6Ha1JL{ENtP*#XWfET4kA(`8+R&GXgIa3KR=2gb7}x>zM5+MHqD9jmzXhZ4F; zee8j@HbwR5ax+8|L1uN;e;#*m-X(9N5*$IH8s&oYpBM=8-+!@XvFKG>s_`-_L$FeD zqqY2=ZEFQ&S-saBeX?A%?C%ydirsJU6)UXbAlw25=2Ye|^8ljA%u!El#}OGU98ncE%12y<;K2F^~idWyh;6>Lt^>-CqB zDAlf15DAdk^VA8-v|y(0Wfa?69&lSY-oE51YB+Gy8Yz;?KRFpzDZrAcN9{_q{LB>P zsn$#M6ZU9quO>;IxlxM;bm7+~^jtGQDXx-xTuA6Lti&+?8JX6#y2%aC@kBh7`LS|v zirUK01A$(`_#Dlvjb?X?L~No}GWrejp3ixkTl?P0qBcJQo(;*Nmq=HsMhnxs=>zAU zkdQnm83iIl9}GqY)IS*@49B{SsLrPp%!Hwp?tM9Jdfz{FHrepB+6au8kXu6<*wPiG z!CEDd8f~$k%+_k&0hHK%j=y({UE4gT7OOXlJo+cP>0n=^$7>s2eItYnucC)pgLT(} zj3mbL1O#>_ggB_#TVQ9*9QjOv*ho@cA?UaCxHb}a@$33dO5`jkA*hLVZ~2S4EBtBjC!;Qftfhlw$$O;VC)BrvR!G-f$Tmw`tWn-=$1>`haUJbU zT+1p=*J_1Z#0cB*BUTp-hHP_R5n>XZ^sPh;ry13%$4y!CLxe?eCcFBIHlPU4CG&-N z50rKZy-VJnly4;1Nd;k+84-@$%kK9t-rPmJj_*$8`hmSBc zGR1B18FBIg`8-QG$lpPi&;h+`c-|x0>!_Z1KN#_u%6P{bd-42ESRGGB{b9VqfOvgu z4)$tw&N+)c2hH23w`b3t1anem=2)TME@n&Lx6~npB0|3Fo<-5Bai*C{MqSQ5 z((7SR)ly^*$5ov+VeksGwUVnWezaM>z1iTxm=Q6!Z>m$y1C^l2ZwkrvG@EWqgW~#>ui$x#yNC3i$@R=b*=e{mvz>{AqmEjvd7W zeTcKp$Tn;sqfqAcab+*(QjBz?It8)vOxyq{84-M!4IrZdkP2RMwzQ#MbLJO zTjoYI%RCn}NRz7?ef~C7J*;CX#EW%2H@xyv1{}lz;8)@imHAb(MtuzTT%Hv1+dbvown{0N*i#$KcuCQhu6*O@z zaAOnNh2Qw}Wf`NpXFYfwJ0j~dXAob+^FH~ktoXHWqty8dA1QS}ypNZ)Uwf%? zx!ULOio!fx^2);XN|}45W<>h)F{?n_`h3U0S|&Or>xVb-cS^?cp0%(&Fa7h!fD-u7 z*7HOC7{vI;Er)NG8p%ut5`=AMNK_;Ulj(;)faMzz+&@JQePv;1ed;47&u`K z;_Uf0Q1YvPar!~+;1BV4j-v+Z21Yo|l+h+2H}=@K;q*ajRqwn$1>yROQrt#N^KI0? zPFw4E*1w&R>pYKUnvN{_0)duxZ;va`&<_D8*8a`8Ef!Kdca!Zmme%@~YjuP8&YIpA z^zVq6`i}%atmNe&)EBRiLBZS27V6b`knudE)^2KA@ima zI7#+MV$l&||5S|KGwXW7F+l*BSmC!u(M&}QBw|!$MP6Io=Ri*&fm|GgKKMGMZJk{` zR=}z)t9axSO6qeBX=4GO%M*1Paewd2H$bbN^gQHb)w1NTd2!K1)lJuncS3XE)oUS_ zxX!x!)tEU^f9;*P2*m_$(db}9MGT1?+D43H+J4(J&%(p`E=aigAeWZnHeF(~;h0Ic z>#viLY)g(nqu$1-8{6b2E`_ik>>_cSTAl|1#8ks_K^w8>*zy-u1=>lA2Bkvui4xI_ zb2o3L8jIUL3;IwEalO$&trblRI7T(XdFf<6vse`u`RPOm9TdFg{yO=i_yJnhkrajJ zB&!q^N`aJ){apm+^OHXFAANf9AZ!6Z<<`xIMdH&}RKD_PW75sS?+RaEw*_0`l0t9e zi!(Ms@aQ%1>8Jx2Z%S;|{`0Zv(arQn0qSo`dEOd*#MFE5n0bXjwSe};HcsaDh)=P( zE7-Fs-pgRI3$KC}=j|$i!L9!nAGOd+7T*4b*g2Oc;w&|5*as8OU-N!hMsMcmoz!Ct zh$34kg|UQJf@UF47}*wp3S{O+H>`*}G;32;GN^i4tmc_{ zNNL%l{N}i6#duAOCjz3V7tm3M!P;BWk`;~v; zp8g_yB=#(6u4P-GCUoH{1Oee}($k?Wq{9>!^z_ozz|BsfgbQHP2|Fy$>Nk0tN~!4w zR6gi+l`rzZWcq$GO{vMeVo5AEj21Avc6X6c%$>t)D@~EH#7TCibGPor^5UWECmHr~(8ac|$rt{OqTzsTTxF^4PM^P_Ja2-O!4~97&`H2)x-_3vu(8Ft^8wUk0v)bIokrPB4!cM!7wZQ8viQUCo{Eia(}O!l z93t)6)ItaJEeGSsC2)UvIO4l zh;S{>EKF!W4scPvi|kx}pu%m_Nlw26+l-AYt7=YF5bficItC`{Xd&nsqE_ zkxU&Uwg28RB+)&(Iidd*@6vhd?}eR(R#=SG=>x~@MC#h5p{dHIW;LY>Y`c%|Pqg6ZVO`8PZUMK+P_il}BY7p=Fw zgp5w*@<@}|_myifZQ03*r zxFsW_uSaPZqkVMKOvM%>UZU(GMK@15KgIq-gt+6JgQX4&?5>gb-d$3kk{pzlKYbwk z=}*yEv}f5&6TH+nS6#A$TYsj3B6KWG+BRPOVV^fHt@eU~bMrE-=R(H5VHYHaLSKY` z%UgF=`-Zs8z?~Znm%#|vNNhsheyabU5B{TZ5?1s1n?B4=;3*HJuZbVDy1w(b7p&&p zF}bN|2vxWhWvJ9;g$^32l-LmYdZjDaX2XEye%16tK^7j{lYQnK9Kl28{z}PL$Q;5aJmo6M(T@gRtMn?~*4a=iy|$|*uC6ZoJQr~e7SJp72WJ{Bpd0=C)882eLh z7?bmSv&fROos=!i@^6fJihAx#gfA<cl1drM%AkV_# zDwH|LWdO&D+_~LtxN_T1N%_>kyYSEnF*DwrK{K1c1)5nbY4|>Z=ZXzbs={u7jO?FjlQ5v|?T?Ej)xuhv=^l>$6r2=Q_AWKR8*C zr5xL9@i0l4`s*tTQ80(9_%S*EbU4pULGm4}>hpJn$uIL4J?a~hP)r^a3VH8+Ud3@P zND(R*KxcK|E>crRGCrdes+;vqpdSProo1X$!0;gFpc}!Kp>O(0gYM}iJ?{~-`1C#T z?>gcBVTN-;n(c`~sL%SiPm30f=X)zS-Xk$RA{;A_+qpApBYI6yYh1P0OZ!x_%3dT$ zmmtn|wdDR#&da_m->SWuGK!-3DD5h&HdnP0cz#g!fh6`*>L)F)&{ZL;L<&UuS;_Yx zj9B!!WKena=J39?YpYvS+SMAG#@=zwt8veVB+H>mL-}pXY%4V7EYrdC&{p^_d+@j2 zqmj5wNQDGDzUxfr*kT>o2OXasUX|Szn9v5!k``W*Ahyb{ZyV8-c)^G=+zE(7?P#&` zJ>jd9;dXgE8Njn(r(fA^sHrnq$3+o=zjtaWj{X6m)+zI(#Y>3&fvd}`=MCPx`>Ar@ zWYOKRZf3kTtjL8mRmQKexXu&&Gb+1yPz(>nbknFZ8Ew|Y-FW2{Sfc@Y6^v&~DgWky z_TVqKdXeBUAb_0zohFo3+R?!=V_WE<>psS-Q&{Z+?cqs6KG~{>-bYFb%z^_~mh(%_;HwaE`(%AAWtAq;S^rCpOfVf0 zZfiv*c(oyS%OPE+3nsqrA}`x&szemVWOep4qXHmSVltH&Q5%0YlE*aQYId;43 ze}YmzYSIJUE7dc>>?B)EC3y4f`4LY6Cqk8a?CaV01Y_)G-EHAjqfigENoStfCduLI z%Z*834_~!s_t{wPkVQB?D%Mi`MA6d;6)ood0*wQfCbjRiRQf*B(R z++stc{K+akPN@GMQsj%Z2aG3vE_&39}nNbIyClrG(kq(_x zrCfRjld~>THy2fATmd1PxOuU|fDlMOJJ0mV_c{S|(wzj`|FB5`OdNmhl(W6kz%F#K zKnrU!c#z!pHI_$kwgttnY^smT)Vaj~yRFGhfPxd2sD-4t%$Q$gN2&z~Nu^r0=eGWC z-l?=U{bJNHo;2IrKBc6GYt0FCSLK$I7eA2u@7KzMmgYO_B>NTiCeb1stLXjcyb@7o zO&dM`DJrE&3gfV1fQh78eAIj%^Fm@u^*$#gMf8tYL+{f?Qr|hl7Si@eGYK|aDsV4g z(KkuueP$r;HQqA;&Y--Ye{~MA5yG@FOam-esz2eQ4sJ&R4xJqt_sj^80Qh&SW+Jp55^R@*cl@FSI&78Fo!W=mQ1d{*ybOtHCZM{6|& z+@G@e(3Q*l(j{37wOH-RTFPT-=_H5hc{L4|2PVa@g&u9n7P- zA6i(Pc^z83?_*nM^hNR(h6;F+ao4x?Q8};8WwD#?OgqbUbJ?QNG?PRU5dEpA zL5W-PHO84h=@FHj?`pHy9_ZJok4A(n zH4jwC-=A}P4x(uKQyagq1ud%b$@U`>t3@Iz zvCY2c4AX6sNcOtFwe(pBr*$)@neGkP&Bo--dvoe(j9)=0=DPKcEUf)(ac`6}vBOP) zrDEQ17I_dnUV7o6OLoJt;k=dby3~bdv$HWgqjkrg`1nKNQ=mHk-0?tE83H58RdTc0 zc3t^A-KvsJV%UltHmVF>{5N9MFNAcU>4WnTaseMVW?1TB4ZY#E^SNV*BBRE&E=IIQKf;kUN` zhqdVIUv)A26sJKy70)kccvf#Zrmr<;D?u=?9Zw`bRtB!htMXVe!>gL%_$K4Z z&kIeh*V2HL1%R0)Kv6QM5kP(Lb(*2mWu0F#j#}J6-K`Zt3?`9YBV{SwB3h69rugj} zEeA{%>pGfhH)1rqYtC<&FFk?f`JobN84U`VZi8vDZKP|b83a9&}iyex{YOk>{*j+qQ*x+y0U*}gUz!p-XfbiMNS4vGIFnf z@@+0KJ9lS0{8g8%Zehj#of@-w%P)=^@OG|Wc$IvWYel4!M0FEr2&6dil*f(w1 z&u_WPq%|Iy8e|UeLiEwJB*jOIBi6VYjbN{_N*9xJA1)U!@!i_LTJ3OhEH8@AYZk4w zio{Y5aG)gm`K(s_XeXrNV#bLzw^g+CiXGOYXnZ{o+SE%%5mY(#XNzTg$)}JTo zOr2PxB}aGG_K4w|#-6#wuWrA9-G8E48SAr7PW)}{4_zmx(sz63hC}`}4Gb@iOj83} z`p)PSo`OHK>{kQy(dtEb?^)48gM@~cLP%mDrH6k$pxbBZ{6bZ?Zf|lA6YqgoKdk5N zh?)L*wzs7tbuzbl{isQ-B$CQU(WzV({Vi=_r%e`}e&VwYh`~Ylbr=MK+TN#f2ZN*B z7jSAU7mCuh&ZG|>LK_)s#gKUHx@a-^|3YcMmIon|o5M#ZU$*QlVq0)PnpcR01Ed=U zovD9TqR}s%baifSN4W3FE3&90(+0Z;va7mCPmf`nag0D5N&`w^o{vv^GA&&QMf+tp zJg$V3s2$pnvf2y2#g-h4E8*VQZ!J zf9VAb1I_z$d+7v;r#QxvlCnBOPJ2i-)mF%YzZI+`+L~Z{Due-TtMoUQzq@Q-Jcg%p zmsWLjF*)Q)7SzXzcv-#fa()3|mLa!|uI$Ht_g5NvFtfkiuX{5;O%#zk z4Cm|mD6EyWju#SJlS3ZNrH6KGoOAODgv^JTbi7)UfW9BVZ1~gNlT1*pzfl&&BzG;u zF-xx>^h!t}J5vo+PqS9^L`dFScZR}K-`X*b~Wh5ApmG;1Fu4^ACSX(-EmyM z0XzBOBHr*uwyomLh5$1!UTVJVbqJTJy7L-eTRXQb(g>U(tLrfHdgPJlVs4mrscVqO z^sod%_rkY=@nZLg&;667LeoPXKy(|%LiV7iv$&V?bC*m-TN?)+de**nu!Pxyy%?4& zJ0~&iUQm?mHRf(YC$u?gH%kek{t>-2U+m~4FH_l+=G6766sJGqt!7JXzO)_v5~P*6 zjZ3Rm6{aO0rTrrdhs3V#>q>h>#)KMoB2z40{MjYus|&+zy$z7i@#AD#I`3p#adTKm zJK-UUeQUbv9r^IPc#_dZVgkjGzHon*KG1ZTiu#24>Z|2uCcfyxewm4da=St?F!X78 z-EGDvkzWYS-Ii#R^`)#S>6XIrp_ogF8mCL=- z5txd^p;OZWDmy!QRvQiTn54uQt;G*J=}@+Tt0%oPG$sys)q5>CF*C~m{KNQt^UkjU zO-qcwgU@7nvp64_8<g2X1Cz8}x{WeR&xU4Pyw%U3#K7|wF`u_(l;zk}ztjzv;ccTdZyyP~ zyLp>7Xl9Eo%e>)xh>x^&tQobEXq874A^sr5`5<5F11rO+5k+zF3 zJ!b%r4M3q<3h+9LMdWVH$dKuwUo^hQk_+2D@GnOOFh0rlIua(Jv&;CV<4@lFKWdNy zQk><}!7G5TR8br12AtSXeQ8pFDE(JT6@J^eWhhiD~}|l+L|v|%QP59QRw)sx}MGROa|TICg|zY__JSg zHrz`b)}7*iFdUhO@yX4e;Ek4a5kPkt;&IUHh^Tko3tF5CT)@#+QJL4#_;(Wz^3XMp zw^Ujf@LGP4uo{;<9^D4Th+jUEP3u1y9DP(hio%DY7cqC>>AAB8niICP$P`euL*EW+09iQAe<8cD$Tls zmQvQ0q#m_%TyHtF84KcFPfUtw_-~mwf+_dAUUTw?2rAcv@6`SdQXo*tjD<6AT<17t z_9j)X)cO{pBL{0{WF>5ebUc*(7C}mbciLxMoOu+J_bduHxcx^XI>{rFyiQ}+%$=l$ zZ78}LV3mWyQe8ycp?aBl?B|%fZ<*cw$nrXq88f9_OIt45 z`U-xFWM+IpDc1#}PPi)`*Au0FD3JD{w03jgHC4cbrnb;u@z-L}?u>!&?qmqq5XBl) z(cAjke`7vAlB|2Aw;4wwFiDnhm*;UTxgs-?s>K&L#knX9i=q8!lTR2j^?S2q5PRk# zlyqs|o0MG14z)l4P|~Z6Rvu2f?=~r6HUuXA*=hcN$z=?96ll$&>Sp?J{%)u6WZO*t zgV<9k8=nvz18K!&tC^prw3SOH_{9>mX3k?`_TTF2ix)h&9oZfb=S?m?UOd}5w6wp| zn#gVZ?|)DdC`@0KfRoFJWzp;e z!Wu=<`Y*;(VesS*W{<57{Ea2;z>4^GqAW{gI1y&7k}|5~bEzwKPg>pqmARSnC0-Rw^32+rST zI?-tc;J>|8u@gqooXD$_z{zrj^=w`k65Fvdoys=rA`;z`iYI^bPYE^Y=rhYLP!u#8 z+^TJ`KvmkeLlMm1Bh!cH|H})wrD&G_wTF}%nLi#Ne~SIQl2N$d^CaGraRAkL2C_u& zw6sR|Sn#W078w^Gvg>W-KIa~!cNtQ-Jz1&3u|3Qk)J=ztug!mdd#wOAp)w)kftLr~A{}2UrvKHT*1U$J- zzJsJYnm-8rZp|G(RLyZr{!iFi^<46Ko2o>cf)A=T`%AYQFkrHejSoXEI^q5AoGR<)7LVnZ0Z>o)(#=R{1kjw068{&y_$b7_qTeG*fA6n; zF_YlS^wWL@f|!c#ZEiN%6$ARGFIPW7E<+#RLtP7S6FhpPM@Dae`Tp0OB|}e!zp6(# zIUy-7Mk-&^;70A;SOAA@_R$;GfFGvxR?v_5wl(>0)v7k9T?*gbkl}6pBwKC&$yj&x zSUg&h?rF~Q5m9yxIhkybn2k%n-=bYEr|)`?#%rkL{d|pjGGbnvvkzhxD`YQE(N0sTUg>+Wb42SHYE(tkgEEhC{#c zvrCZ+k2_uF%F~RRsYLom&KFihN5k{KCsy1QF?$RWkESA2nc>8v!XvPmYyl$z-$oi6u)Ous z%Q@Z@?@`WfmP#_b!C>APR4#rPX067r4&Xt&VbQBw^C-OuYNFgBr7X}BD8Da=8wVX> z=wNr{jKF84E1f_SEQirN`}%|QC$C+rKP4|oaZ~& z`fnTxcWj;t+U6z-ueWa}N&t?Vq4gKBWE^``+iz#6X7Puqii!XDm@Fhta6CBUITind z8(p=+E>KIeP!)Yh(IU(-R%@rd-v2kOU;~skdzPecexD1?kGUz+C8|hg%=#3xIHd#JOgwX$YZi;SX!WNk5)ys( zZ|%x;%O>y)s5Gy;TcC0jIH%)l=wzxkTyX@vA5WHT2tTZU?j2nfUg#oc_wS zw;f#*u{1^jv2<^H;-E2NsugJcDK@Z+w2DFC4^tq5MM_deDJjcd4<*Ri7eOZ@Q2@Iv zaE=5fgo(mD6&gP7ACYVmWq}VVqVrjm%&(;d{mOguq~7c3D`dAnc?}ir4g~zx+bTcb z@UiKEev%0zRlg64j64;uvlW>>n z<%9(^3w-UXV?Ibjr0a#dR0KSVOJN#trKTv=@bTA2lUw(wJTEJ;lm7b6cx-DIzQIV$ z4HZr>6yXm&3;I#pRC|f2$}(4B(0e(s>~O%ueC+>w7C+qIYJ-~y*+%Wh0h1qcAtHFo zspwTWH;_j0Mi2OC(S5ViRO;Lo5_Mg9)|^}|&ZycV76T~oxG-a6HzDr0n6e0pEG8Q zmj7ihdANBJ5MF8V&`VFjXrVRgA-I>BC=LeH{8$Wro+`B2+%cb;BI%h*K{CW>&daJQi+I1xK zPWRVnioXJvHBYN-{Jpe!*HEq?4-x!%*?AO)|1jE(I`rYv(GG@;Z$?AC81mtB?;bJt zBQnY`+(wj(R+)aEtM-W$Hnx5t*bd>|yhuRmS?d#B6YPMmf6oQ%!}W)1KjTZ^?Xl;! z*CG&sizFJ|#U`C$S1U_O_IX-FiPz2RSL0W4mew+tdFEeup(;&c0bpE4~;bO&hvxw{6Zk|;c% zF{k#Jx2B=wBYmv8@>&$abvoGaPN41Skxhr4q~757iUOHO)Z4J0%HB-bAlO|B_@zt5 zY^E)bo*YX;ic6N~Q;qMe-2Rwp=R3QT9?FYoNm9pj&oI#z_@HDlkDy^BB3)BQ&Onbq z+lj}X(AJCa=U+h+{SAtDcsTsot*tp6opAjhB2Cnmn{e=R)uRW+uqheWz%#heRk^%C zLj?#x4F#;`Igg&%bH(VtegE%0@f`?P|xG)Sc;@$i|` z8|Sn%CT>x^SnP1k<4kfWKi@^iwL>7*SZ-D#kul43(uZ@pj%~QVUeS0!|*cbQ5C0OX^pF)|Q73n|$ zBEku=K5MeHPiIK!i27kJotO_cc0(5e=QgW1Jnzi0%yL+pZFU)h1C5IFfY4@lJCm7X znj~yYe&%>e$1G6~pUkH#b>k04xWid^m55WgcnT>)>$-bf5<4U&>2uX(M}``%25P0Y zfu;U+q+Z;{9zm+g2J>L7YA?=#bLV=Bk1nFDkNZ{zlt(#KycFI-+Wq0noca~m@0nhH z4U6+)+)~S@stNs8bst0;b>ZXF8_WD8+!ABaPLXJ{nM3}ngWf4>sEQttWH||27#c<{ECH2;TqH5KmpagFT($;k|4SN7Qs^@_g*( zv^ZEs{EWNHtzt5r9scHv9(@HSW$AJuzw^=0m@ak`{og$u>5m2Vw&JmM9cJcUy?4O-!{ zQ>QW)*@#2c-W5Nl6yXWExr#7-l{VrKEJY3ly$7k~GKx{7Ogd)FfPhpl<|j{k=#y|f z7$t2mpuWeZ2sD{#O|>C|wz|NqYJ3A+nbcm&!oAPxhoichqo@L zg`Vs`c+BIk{B8G={8qBq*CI+z@u>=1KOgAdt}Iy}ZT=P0GU@ zmtt65O`lD=TBna3y|aTFSn=B|{mmy426!bG!M>h6Zwyq!IuU09LBc{fx6IGg903C> zZf#W%QyF1KyR;tI7&zMu2%2ktm*1y9N+j<$I#;JG}*qVPU* z5jtz;6UHVqzdXD}-=VIXlHikkDAZVlcK+{-0=A(ucHE%9%tY0(C6 z$mRijZ6+MEGas6-A++XBn`Q8vZE9E!rQ??>XiwZHOFXHeu4AT_a5ay>K}pl^WjUh| zYt{$4#uLNdwPftReZQI>KyjJtNU(-4UAEbyPAwJRdEVwdNfUCqXyC*ii>jwD^kP46 zA%gM4uQNa9zI)j}-(Pe^l;uZddUj0_qjiB7bYSbqn>*@J*OC^{igOFAv$kouxYJk< zj+xW-i4A9y&NJABXfW4lSdRN)jQ^^iAZCBU;hL|k-PHc%?C0K`?@S`56{>v`xBaJB zR(Z#@;CQZH*J#mot>1e}l`j3{DVJvgw~_SyL%%0SN8wsYj0Lf!&@(d63WU`RAGHGf zLL@+@g3WJ9p?W1hI^YlH)@Kwa+Yn8pV@b-Dh5YuM6rGy9&?)!rA>eQm(hKTuXQl(M zzH+GDI~K5C((n%TPktLMwg0CRBwT4LBZ*$VBRbFFYw@yq)`qPj{Aa9% zQ}46DH8Bm<0&;j0r;F20_~_k;7gw%7GNT->zkILV;)q&0NAY>Osy#f}StP8{f4GZX z@i1&)2Xv1<=azl+V|y9D@P|C9tc?KJOk3irkjv4|&GvU3ICY%XG)FFL7}E%iNs z$Jf^%kW>yfPY|#D2OF}^HV6C`Z*sOwO|Cxt9WToTX^O3V7vWB?u2fA?(Cds%xM=Y> z3o3wG7re*ekFXNb;VVr4=0Dyr|KtDghLkMAt)OnunomVMO~1YeON!H;^}D6`Y$O05 zS0Ivn6-!^-4O8?>wVCDn>TlnQebjZA3;hDGE|%lzUIt&zpuD(3;Zu@FzhhwnUjbz- z1@GSkq$hOXy4cRr6+i#boy<_o@sRIHhkVfS#x3UvbH=7J^L#YOc=c!Js}Mx;@Myp% zX8NV)qOL=waTSlTPHiZo@7Lm2ZTQ)&s(zvf-yK!SWzAcuVM&cD%i;lz6HwmP#+Zo`_Q9Vq zb@mZmn33j2QIvkLTS1L6e|zY7|E zJIxpyMr4D6r^I{s4zXQphp1Go4)=3Rk=DxG3$Mn}&k1`!J?(d{9}f78eu=g;T|mb# zD!G_oH&gX0ck0B9D$x1WxG^Zf>d+VY@C8vBk=_f7aoaIc@qX^HZA+ZG{YnnPiuQd< zGvEQ9+&%5R^8_`6BUO!q5jzww)(jn}<5UBe=eQr7*}zLXY=)k^D03iPX}m}|+h3o! z+e|txU9b7N;h{FWk?wR{y@lLTps`y8J22+~S6x=DZf_j=L3IB1*emh3b3-o06*TF4 zXf;2oI_dFvuzN!r|3%WLTZIk@-~9Q(ngv7KT(VwzRldr3K^`u^h97U?6&ppYE+k=Y z6Ex*mbqe4^gPk{8?DP?_eX{*j@n;=Bs*jY;^N?zX1&o2buJ+m1Ez;(uN_w_Gp@;!=aAi9j&xeHr1m8@wKF zY0}qvGgAVFgHOVzl}rVmOdhUk#*s)5WOnX)KP7=%fByFB>~Rq6Tnb9;_I>P1v)jCZ zxyk6G0c+o&g$}*nwDrI&)FS0u=8~A?Mxz#f1R+6I_6pZVqYFk`+4s>$e*2RvPMns?l`}`)Yz&SG;CO&cAVTnM&`q=n51ue5Q(i5QD$W5(WB@%RLeu%;Uo24 z27h1=b7#Uu3eSLE{i{2VqwGSxb{Tu=gsAQNDovHK>tL}eruUXpEB^2`)iw)PtLg|QgX*x$<&8P{GitZN_7x6Ikv+rT=wO!l zWRhHu&$#PAKbSoDc}|(Ccp`vIJ1=2LoktJPh_m#uL^w^9!S#sMM(u3o8>7up{dLBI zT*gdMqC(sTJ?>qHDZWg;o1aoY%gcnAWqV$f?GO1x>bj58_eS@w!8AHF*Mlm?=B(UO|o0d*J&CM4%{oZ@UxcxJADAI(B8wyVy znKhrw@^|}LkH+>rm9dUA?1!xSZEWhESfEW7OYUQ?joxaFJlPW8jSRpBlXG%)V{y97 zo2RB%84KI=CK;0s;?kP~rFd)a2d*+t_Y-ERvEEr1=@)fxm3)#+W%u1=Uwy6QDaj&t zh}G|vdnQBYsh0(tSd6z~ASaAy+r-5`z1x=f6UR_5Et2(?vUNbQM(Pv$xs@k7q^laJ zF`HiFbt@esTXbqnLFDFpS=WnzEN6x#XYG!}*YA~e2YkMBV8b?^Gwl5=iqE6?-&J$z zOwZN^kGIE+uW#!-Ih^8*@mt^;yv8kvmS@=DJ?TKRAI5AHuQQ)NHxGULnxDn|N!&~!u;8rp_iYvHb+7S%awQSpymjyj`(tip$GN5_ zuQ2|)F)bZJWqbejx75+V2g?}&=@f)(seJWi;C%DG9Me%tTk@5IjLp#z_H?P)gactX zfC*&YbtBJA^i(6<&hwR!g+4J@K+Y+m8dBB^;r=tXzq!`{w@k;cqL*@!8-^wqIq@Dz zp!nw4W3+}zoy>*q`#Pb|G{|s`qed03+oKFc2ewr|2k;CeqAh`OOla>$b4n@#8pF&j z>mFoJLv1KxaW*AByoS8%=m%?f8GN4(PSb0*boby71fTWAQtb*30?LGhM0&} z0+CvytN4cD4D~b0vdf4fGK~MGWYU_mBqu9lnw=>zQyE(YvGIVRPE2ACBYZP2ipHe; zFVv%Ty)0241SuZ&5P#k3j;{M=&WX+ITUjX zuHpJ|=I3dzkfF!=wOyImi+_73*r0)I681GMyh$>vi4Uv$=c?9zr}EfzjznPg!}F7O z^Cb=v*OgNvGD)^~|<<9;#6wz;tr)w;hvAMN9fA%}*gT4cv`CD zpV9f>-q$C#sq`7E)`)}v<;x}eB9?VC{a@*KGH{pcfPftRd zvaT379(&I`ts#W0AjdFvjgS%#-EST%yPhVJcIh!5D4wax5kr}>H#4W*4sJ}$aJM0iV|$&$mM^c&GdPNE>p2Ic zUYuSHcCALrFbKWRF6_tz+%V})wkhkx*clweEQ;wS&<`vW&RHVTUAqh!szihqje0ru zd)GR^h}$MoIG=RiQ3J_J!1o1A*VwzdZ%tVjk>z`z%04IbtmEpXrP4RwO&R>ZAmA49 zE9(89m8!HGnzJr-(I({#wk}VZ$p6c`*=+COM`1qNL^(UalDc^B=EAYeV=3LGDDJmX z&t^`ij3%ei+q)(sXAv>Qh=VaPgKH&+flfS^T9At}z(;s3hC4Wp-?X_u)wt7q)3lk( z>)4-=G*$ehOHydz(6oCq(_u8*U3LQ}qe(crG&xKayJLIwtlT+h5@OLhXcbKenh>Ke zrNy}QS6zHWNfRQZHf+)?Q}=S*d)X1lRW4AxrT2~ju=!Fj#_!N{PKVDc%RVSZl%iz) zdI)gC=q@>0y+*$^N5z*(?RsmsNCpf!;*nJ$m6_ZPVuNF3{G@b^yr5Ov%nJ+2*Pzlh zFto7`ePt*HqpR1kI{>-QnV!kgM4LpYSOzsf>ugd*^vWaIB{N*J`iP{S|Ccd%y8*SC zYIaS!Pa)YE^6rbO)Yw0!?b2#RK$NpxNL87SisfHR4WR$+{(vQSaG&D>HE{B9kebPQ zQ4sL>bK{2C`;ycQ@r2VoQpH7YzvPP>(lwzIc?3i!-9{#?6i9ebF&lCS_(JyalTkfe z_d%26BfM0T`a=$j3n&Td^{@21s#qRf&qU)%K2(S=SD zBe2@^ukB}~rkBxT$;E{QCY*ybWmblyccz|tk~aI`Sk0+OQP#ef&Zj|0_p5pB1g6Fd zgoX9DZYDd3 zUCCp8QXDShq-~@#viqjAIraRaZWU&i*#f+zO3D%{h#0^gwqdO-CkYUvZg0m%F4G4n z8$16VWySB_BrqEec-zrQZ{U^V{kQ449>qN-?V=ksf3>$s?=u|&_Cuw_K5C>tphz_k zeHg#gsHaeQZ(q}N0N%uX6#4*EX-4oL9uCF0ZU{0y?E2q=B zMHo?TL|1n4jgac?avCctmA_r9)3T)p zV*X?B)tmX8t@hhSHLNDr`P_`^|@P!@|EvyKJS}$tzHqT+_(1 z@R@F9VONExYPFXx-@p>K{085-mgM{z8mPE8L?xM-ZNX(e0J&|MZuzqiH5>A#ra$GX z4lUg13eGqLT&ZyGN&xEd!-Kf#dfTpQriJYfrZS%vv|gh7;g@SZ16U0ND?~;eZG6#( zK{ttKW?uNNPL_o%!exGgo#BY$H45kD1$7ZlW{I3h69~nZRAX~^nh7%jjWJI zMhB!BKU^0`zMnKzTIKm0!%1NX2EX(q_4XZ>yp^h*bqN959W-dq`)F7m-sqar4ctV_ zwmt`GbIa&TW$=w{aOOsRKf3?lZt#1#pW04cTnwjy@p!Fhu}YY8C#L*iAMsXzlnH`mXa8p0FaU#N*N4L=DG#H*zk z$}O_*H;L}`y_%KHTqXXo%2j>Y%ZF6oJpcoipchR+(f|AHaciwbrT zRf|{OoY1Z&lx^vo6X8V#v+9WD<^BZqF1bUDf4X{IrBji*>U~e{st|acQXu!pzE21*jW%dti(C>Y~nIm@%OuN&2)!Z%U!WZ zzZI2!m5n)7+UxmSV(FOk8HIt&MYya) zf9T!08SyT9ebt`Y0eReG68w0yWznpGE7 z|0>8dt993(P2D`b8C_u?N5ld^`OI7H@XC+VcP=E(8zcW3E<#~U{a-$PWYWR!P~E!J zh>->FCZrH?l&u1mhN$FBCeMgt?A?IezeoQhzGrF|f4FZkQG+t_Q)*KQqIQgmSfICg zWuEN?Huby3(#ZP{AnWI5kKI6b-FESqqZg9nbY4fR995{uHUJ`viYL28Td9m#%Ey=c z33b_@wygMZ#Pq#r3oylQ=#j50XHUDUs!NtOR65sx_;iPASXP6|?Ia*4qb@fK>pOiF zN5j{EuWh-hrty+PVXZj5(S{f3gl}19z#=~Wo65boQ95!LYXryh%KBpDJ?>IM?lv@N zKTG*LUfX%3T|2X={z`uOxO20YTAq)gw8-^lCNG z@OqSnT!zXq{h1E>G*wVwsX|{D{XQ`3?DxIr4;L5l7!g!b4jOiU?2C1ey}&g^mdE3U zD50{X2?1u=heM`C@zzJue3Sr3l!L)OebRk|ln1&B0#NlsFEQ}G0U@b*hB}NB6+Ut~ zy-bu_T$+^i1s^>6h}VYcMlQfNnWkrq&*n?|jp5!x+$rz{XD8H4PbydI%%&T*YzYbK zCNuZh9=;ieRz=)@`^RxfWa$e_E?w7CDT0rv#*Hq;3HqG?fwdDOx*4e-r+*!93v9G} z%xN#LWJAkrV@_+yL&WD6*uU}I_>`--gjs?ZO;>>7T`J% zg%Y<%3kIK!s`SCnHjsSpqeFqoUr5H7RNiT4Tn>~@d9uXcD_5&;o0-p z>;JkY>eswr7-4{1v-j>e>NJ16p1ySP`dy0WDj&#L(zA$orldl+|0hA6dSH{piR@ug zXSA%haV4h=)A;ffYt{`2zQ#8+Tfab@h!-QiF;kMtO)yuoQ(a%#d3aJU74>r;Mq!F= zH25jqSW&b`VUH3@0ztk7H4Qdc{|$Z_EHylWTq^T4bc^7v>y<#u@9Y#oK_nb9*lm1E zLrrcm&zRybk5~~ro6DH}j-pK>833qZ8y}HT6TY@q8MmF{{wK#+2+xNwCH;c=g8%IUx4FIAikTZHmH;&4q~dioVdh_}Mc0Pu)IliD~7m zR|yB!x)8HMet8x>WsJsC(=9|TfSL!5?dEf`PY`R}Zci?l%1W*1W#NJn;IBq8%x>!$ z=t))Gg(@3yl$GfaibvR_loIo7_z2%q81rm)fc#tL<=`~E9p)6BSuMFacNpXM(nHt9 zQ-E-DWLoyi7w?uSdV&eIAxo}AQsywniG;!u?CO+<1I_#>XDMV^^FU0Du(Vz|DEwA& z`YLD1w(bIEU7APhg^9PIk|QeyamZx5 zG^=(jTq+1Pr4d@A{nlAmP3$(be2>qyNlITx93HkM0{y^7)5t6n_r5`rV|WM5l5XmP zX?iv>%Qd7!C6k^TB>k+G&>^N|Oh~K-xP=<8tckq1vgajT1l;}q0%hpycWcYP(WG|+ zX6{uCOy%;0Q_*3oJO;hTEYXp_d`8P#o15ec3JJM~}f%=!n5gAh^exsEh#Pd&VH?vHrfSi|yV-W7r)x(hCQOe_#eYqwz z2?G(+<~RqvJ&y$4soGz2AKx79dK=A_#E+SE+z9OHX!n84_9jtQDNSGPeI{-noT2?E zl!{3|zdjJ_jm2=<{#ql-e)fOry6(89vZgJds|G15NRt4INE1*{l+YrINbdxYgx*oQ z6b*<{R+J(w^dh~58j#SIWg!#|J=A~-F<>N--r>vc+w@B|f93wpy>n)sd1lU>bIXy7 z>mTK{Biw24zJMmIdBY*A_5B$qTZzk+8QtTZN5rb7eMN4a(OQ$W9YmY7HG4{y3z zzS~F+Wshx}hw{GoS}EkatY{as3jP9&!f?hgp9nbXXQ3m(!F4{gInW~~W*`$!y%A)O z-3U37Q5Cv)xE2u3((bM4!9dsm5VQC&2%kn3$g0E5Gu9vzH8oAuOAKkszd%ltJV(@IJCT#V$A5*ux`R_5|vRqI_GR1!t>L{{r!@{& z@g3GJjn*qsH8-Lp;k9KZE?g3w7`s=%&^%>m9!LdQq;UiO31~hl6pIf`bW)!d7^x{? zvDm3U6?mm&_>if_sH#6XUY99OW}HFU9&c;fow+r{hj2&mQ;N$v#_`eOX=xvb@tAE_ zU^N_>)x>FOMzm=5uAh21A8pxa=A)k0yqKk>?%I4%cjiYzUXbw`@6u;xYntbKHD~Z( z#&&|LKzAICF zQtOAAim*TV9+}pTew3Mh)MR`s6ms#TYw4cFx5srb?pU-4n&|18np8JHn?{cwV66sBQ@H#ljXI(OaUk! zZbx&L{;u^JXWXTqQ1m!1yYL~ZVB=5GL)b{i96vhrOYyXNvf~d`lHfD2#EF@&ziH)} zI33Kq+zgcVjUe!bIwB9MMprwERc~y^#j`TRLGS)BF+WCC^Ol9+lht2SeoV0c;Z#LH z*nTX(;&r5?{~eNYzNWyBRoTBTh(Glw+5RLO@XULal=$yIvGHHJRfIA?07G|O4v2E% zcmL||=kA?O2WkaNL^!?q&Pdb7e*Z7vmU^6xUj9d;|7m&sxQqB`?#I(~R01+|b7<+q z5{>?UXYAlyA%jXY9^;a{j`OsQf+CDHh4FjwXaAp$e;*DD$A56TgS&C(IPHbU!q!ij zNN}R#3PqbW#c4G%;Ihee)ncS=h*x7MD$utrN_3zVDi|w%oQd|5XJGX4)C3jij;`B} zODz9FHcTvjfXL&LUi;tL`G0^F=;m5U8;d73=!mxdM4P{{1xq9HjefJEd)>2Z5yL6- z1zfZaia%x#Fg!yGR~QH2YLNjzF6)votwfZil*0krPovDgB?u}rdQ(4yc{wqggP!w_ zg;8CQ27m2CEAtf9IunT@_?3rgdcm}~Fbt@q6z@$;Nu3IS?$@LEg6v{x80D;!Yg8J( z&!Y%BsUi{xH?Yv8GxQHih zo&)dF3iW3st2Df|2SB|#PJF8Emwv#$i&dnY8HWbopOb3nFz4Ct!^h3)jd~3IA_mm* z68$esoutt8NVW03RQ20rwfbY}io$^>X&q=T9ws*o|3=+|0(upWRGO-D*8h$s``m-n zp6E5Ff_B5SySpXH(U1%ZX_cugZF)Th2`psJz2oX}{ zZO^x_Y5T7LgmDTO_av+MvhZfrA9D+7$Ad?DgUi+8@Bc3#{`=3}AlI@I`7KpV-m=7~ z7{9li@{eK}8aevVY&>+30aM94=^?)Wm8-X8k_tC-$Fj@N*kRt!n5^YUXpWQm#bY2_ z`ISYMKMfbCkql!04UYkt$C=Vb7Q=Den`cqy`;htT@fgQ#CFb++v__I6T8qdFTJ~QOooL*9zxde$0D%pt#Lar~R=ggAQ4Fp11qM`d7^N;< z;-Mu@iCOt;@w?aPKr?)q{Q;oq9|IL=4I-rr(Mzk~;Nud>0IKs7@dX@odSt#jcwK}} z_}|a_D=Lew;_2ym9|gW>EH=h?2}mpPe%>+T;o_?!nzFRapbq9sD);EyXCRFz<yij`>MJE^p zpcUBq?;^6sAVA)PDo0kB`ut}(qL^Ny5*ZJ1GVP6(y1v;$9Ja|5=EVNS9VEN zIh+yr=753V56rZ(kA)G=n{(nZ((gV#Pc#~RG^r_BLmOl4V4ERE=lZ>gLIiB;x9<^L zu!+EICC!v3AF&4eCuyNE;4${j85BzDx^Iw#&I8UwJcvW*m zdVXi8P`Sm@9rhk*fdWE@cB2G*Uf>Z#8AHZNjp|KrHi(gJ|-d4<|hvD|X=7^a@@- z>5o7=AY?aY-0FO7lU9%WYRy&9wR5rl8{sU~P-a_op4i=_=co^i z$TL3UH8){!)9sa6#XoSmt-LNEW9Bkmz)1{i#QCl_gL88NySuw)e)np>++V#&FaCCp z&p1|4XB6YGAjiNxmhmV9@hBE1yiir7+U+s54yj1iayu70JEdC6F0YyUH%kZj%00|-6a@EA^tdAeN*l4;@bl; z7J$IJDiK@ZtsnS?7*A*g79J!f!sMK7kfRS#FhdK(E@)H`J*G z*~unR_hJ5Cqlsdh`gUkvlNbMZ#t*$6w0g7dR{mHWa?pVAW{RzALvF`oaf!q-9n}z} zwm2Lsn`crUxs)qTmK+<*A_1V2$avp~sLkR^HFcCe=MiE=c3BeA-wpq2&9C_asG!Bu z`Uzd8C2xY#r@p+D>aE>qIlNcaJ$%ii_bpsOHZ~{DLJIQrKC-H`WRRq~k!jq8(>W2F zu4!67EM_@ns#6>XDevZzdsPdv zItV1EY=Q4BMIw45TZWhJ>W(FySd|4))j^0Fx~Zl9*+;VDZ>(qVh|% z>8~#nEXu#sqW}eKVh~pRLDQh}VBvGZR+7M!dST{i;m(o1Ms|5m$`Df0*2l!tggMWo zEHWV$VVL=law-Y+eh*uMeNT`vE`ww%gvu#cEIKx5bGrCQOG>3*mN6-gzLt}9SRwxn zUoGS@I%kllnpE#`wD|IB(1Ll-R>?P(63GHUTdWyHoF^dlY+c_=)+|GwitVPpH+PhV z9G1fo+J&i}FqOpeYqMC0v-Ruh&nA^A^;vzdc5Njh{a*wcopvpDj3`#=nnYYbJ>)h%mK4w=gdzT`>%W7JgQ^_TkHNA1*jIPUTZPEz{Rq6Z; zoyi@FYEJPKMEI6;h!7Xi^eIGgo0p_S-OGNeN7XLV7ps>AL3w@e`E>Of2sod;azc+p z*nq5e>5_>4_{w!cCzfB)4i?827rwM24xRS#R#hj4;UpJ%jWc=2n=H=oHTXx}CfMt7 zk@7KYQONADYHzPspNIHkQ!sz@;8lk%6U>ov=uJibrbj`Na~`Udz7s(R806`CZe2UH=eUVPf_xRVz;?L^p# zjF(yhRc6YRRp>3Xnc=K+u+2hvYf8CZWFK6^5BhkQGpcq|`8qrL=EE}wpzlL(hi{mj zcI*-rr7$e#Kk>EZ9@=mS_LE%<4=}Oky%>ra3R-@$^l>n9P;QVfdc+ash4a@PA9@}# zXe9AAW<*w5;cUNg!e$^F4)!!>E9etpwsgSltgCj~qW_h>=qmnY|3P2^6D&dfYTIy$UUw=w8tf}StQhJ>SVIk!^iR>#;${Sd*uf=U3%iM#H z2IX5T_a3WbaKRCQ-bR@ye7vf=I9`O%Ia+{)b6!GlBNRiWadL2A=@C1~_g!H7ilSzZ zi}F#IWANw_#|sK3Hc^+J zFV@dhG1S* z42u;;plT_%H-?F+q#)(dmrl7YVq~?*kk6`3~zlFrsw_wwrs~~jI`+q)(AbaAK(d2E# z6x5)tMYYfJi{Ax~-b~eLHw@ZtDSh4-OMH%Glt?-}{OEpL`E7J{4zG4-+oq_D zhjFMJ*=&Hb{zxZJe}!)l-p6VI|3$0|rf~?PP)0UnD<+z(cHYTN@6;8ka)FZk@uZ|9R@rTDuqJ*1feAoGS?d|RHfqs-1XQD@?;}asH};RcguHM40inOKHs?QzP+b^ zuwOCvgj71pCnr=SqUM$}71bZcTJcZ<9kg|r`Tqe-4>j!o literal 0 HcmV?d00001 From c2e53065353995abebbab4cf0a6290a16058b1ab Mon Sep 17 00:00:00 2001 From: Carlos Esteban Lopez Date: Thu, 15 Jun 2023 18:40:37 -0500 Subject: [PATCH 28/78] feat(kubernetes-backend): Add WebSocket support to `kubernetes-backend` proxy. Signed-off-by: Carlos Esteban Lopez --- .changeset/khaki-rocks-do.md | 5 +++++ .../src/service/KubernetesProxy.ts | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 .changeset/khaki-rocks-do.md diff --git a/.changeset/khaki-rocks-do.md b/.changeset/khaki-rocks-do.md new file mode 100644 index 0000000000..a9eb55d533 --- /dev/null +++ b/.changeset/khaki-rocks-do.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +Add WebSocket support to `kubernetes-backend` proxy. diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts index 8e8fd54c77..7e03d863b8 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts @@ -135,20 +135,26 @@ export class KubernetesProxy { const logger = this.logger.child({ cluster: originalCluster.name }); middleware = createProxyMiddleware({ logProvider: () => logger, + ws: true, secure: !originalCluster.skipTLSVerify, changeOrigin: true, + pathRewrite: { [`^${originalReq.baseUrl}`]: '' }, router: async req => { - // Re-evaluate the cluster on each request, in case it has changed - const cluster = await this.getClusterForRequest(req); + const isWS = req.headers.upgrade === 'websocket'; + const cluster = isWS + ? originalCluster + : await this.getClusterForRequest(req); const url = new URL(cluster.url); + const ca = bufferFromFileOrString('', cluster.caData)?.toString(); + + // Re-evaluate the cluster on each request, in case it has changed return { protocol: url.protocol, host: url.hostname, port: url.port, - ca: bufferFromFileOrString('', cluster.caData)?.toString(), + ca, }; }, - pathRewrite: { [`^${originalReq.baseUrl}`]: '' }, onError: (error, req, res) => { const wrappedError = new ForwardedError( `Cluster '${originalCluster.name}' request error`, From 11fad09c74acf7a3da9d452204197626485e013d Mon Sep 17 00:00:00 2001 From: Carlos Esteban Lopez Date: Fri, 16 Jun 2023 17:41:52 -0500 Subject: [PATCH 29/78] fix(kubernetes-backend): Swap `.header()` for `.headers[]` Signed-off-by: Carlos Esteban Lopez --- .../src/service/KubernetesProxy.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts index 7e03d863b8..36617bbbad 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts @@ -140,19 +140,15 @@ export class KubernetesProxy { changeOrigin: true, pathRewrite: { [`^${originalReq.baseUrl}`]: '' }, router: async req => { - const isWS = req.headers.upgrade === 'websocket'; - const cluster = isWS - ? originalCluster - : await this.getClusterForRequest(req); - const url = new URL(cluster.url); - const ca = bufferFromFileOrString('', cluster.caData)?.toString(); - // Re-evaluate the cluster on each request, in case it has changed + const cluster = await this.getClusterForRequest(req); + const url = new URL(cluster.url); + return { protocol: url.protocol, host: url.hostname, port: url.port, - ca, + ca: bufferFromFileOrString('', cluster.caData)?.toString(), }; }, onError: (error, req, res) => { @@ -179,7 +175,7 @@ export class KubernetesProxy { } private async getClusterForRequest(req: Request): Promise { - const clusterName = req.header(HEADER_KUBERNETES_CLUSTER); + const clusterName = req.headers[HEADER_KUBERNETES_CLUSTER.toLowerCase()]; const clusters = await this.clusterSupplier.getClusters(); if (!clusters || clusters.length <= 0) { From b7267331b9f5b4d2abb0f2b7c24efb20a26ffb1b Mon Sep 17 00:00:00 2001 From: Carlos Esteban Lopez Date: Fri, 16 Jun 2023 21:50:00 -0500 Subject: [PATCH 30/78] test(kubernetes-backend): Fix test mocking for headers Signed-off-by: Carlos Esteban Lopez --- .../kubernetes-backend/src/service/KubernetesProxy.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts index aaf3843e61..038a3d4bad 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts @@ -54,6 +54,10 @@ describe('KubernetesProxy', () => { params: { path, }, + headers: { + 'content-type': 'application/json', + [HEADER_KUBERNETES_CLUSTER.toLowerCase()]: clusterName, + }, header: jest.fn((key: string) => { switch (key) { case 'Content-Type': { From a8fa79ccc105ffef6b2795cf9e22ce55c896877b Mon Sep 17 00:00:00 2001 From: Patrick Jungermann Date: Sat, 24 Jun 2023 01:54:26 +0200 Subject: [PATCH 31/78] docs: fix docs for catalog module "unprocessed" Signed-off-by: Patrick Jungermann --- .changeset/old-rules-give.md | 6 ++++++ plugins/catalog-backend-module-unprocessed/README.md | 11 +++++++---- plugins/catalog-unprocessed-entities/README.md | 12 +++++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 .changeset/old-rules-give.md diff --git a/.changeset/old-rules-give.md b/.changeset/old-rules-give.md new file mode 100644 index 0000000000..e28e2778ed --- /dev/null +++ b/.changeset/old-rules-give.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-backend-module-unprocessed': patch +'@backstage/plugin-catalog-unprocessed-entities': patch +--- + +Fix and improve documentation for the unprocessed entities modules. diff --git a/plugins/catalog-backend-module-unprocessed/README.md b/plugins/catalog-backend-module-unprocessed/README.md index dc5e830fa4..92d9e59445 100644 --- a/plugins/catalog-backend-module-unprocessed/README.md +++ b/plugins/catalog-backend-module-unprocessed/README.md @@ -1,4 +1,4 @@ -# @backstage/plugin-catalog-backend-module-unprocessed-node +# @backstage/plugin-catalog-backend-module-unprocessed This catalog-backend module adds support for viewing unprocessed entities. An unprocessed entity is one that doesn't show up in the catalog. @@ -10,11 +10,15 @@ A `pending` entity has not been processed yet. ## Installation +```shell +yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-unprocessed +``` + ### backend In `packages/backend/src/plugins/catalog.ts` import the module and initialize it after invoking `CatalogBuilder.build()`: -```ts +```ts title="packages/backend/src/plugins/catalog.ts" import { UnprocessedEntitesModule } from '@backstage/plugin-catalog-backend-module-unprocessed'; //... @@ -22,7 +26,6 @@ import { UnprocessedEntitesModule } from '@backstage/plugin-catalog-backend-modu const unprocessed = new UnprocessedEntitesModule( await env.database.getClient(), router, - env.logger, ); unprocessed.registerRoutes(); ``` @@ -31,7 +34,7 @@ unprocessed.registerRoutes(); In `packages/backend-next/src/index.ts` add the module: -```ts +```ts title="packages/backend-next/src/index.ts" backend.add(catalogModuleUnprocessedEntities()); ``` diff --git a/plugins/catalog-unprocessed-entities/README.md b/plugins/catalog-unprocessed-entities/README.md index fd824bec94..c386ace174 100644 --- a/plugins/catalog-unprocessed-entities/README.md +++ b/plugins/catalog-unprocessed-entities/README.md @@ -8,9 +8,13 @@ Requires the `@backstage/plugin-catalog-backend-module-unprocessed` module to be ## Installation -Import into your App.tsx and include into the `` component: +```shell +yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-unprocessed +``` -```tsx +Import into your `App.tsx` and include into the `` component: + +```tsx title="packages/app/src/App.tsx" import { CatalogUnprocessedEntitiesPage } from '@backstage/plugin-catalog-unprocessed-entities'; //... @@ -22,7 +26,9 @@ import { CatalogUnprocessedEntitiesPage } from '@backstage/plugin-catalog-unproc ## 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 [/catalog-unprocessed-entities](http://localhost:3000/catalog-unprocessed-entities). +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 [/catalog-unprocessed-entities](http://localhost:3000/catalog-unprocessed-entities). 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. From 88c62048fcbd026475ed997cbd7727c2e8b399aa Mon Sep 17 00:00:00 2001 From: rui ma Date: Mon, 26 Jun 2023 18:03:43 +0800 Subject: [PATCH 32/78] fix: update plugin home dependence @rjsf/material-ui to @rjsf/material-ui-v5 Signed-off-by: rui ma --- .changeset/popular-kangaroos-accept.md | 5 +++++ plugins/home/package.json | 2 +- .../src/components/CustomHomepage/WidgetSettingsOverlay.tsx | 2 +- yarn.lock | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 .changeset/popular-kangaroos-accept.md diff --git a/.changeset/popular-kangaroos-accept.md b/.changeset/popular-kangaroos-accept.md new file mode 100644 index 0000000000..9e3fcf454a --- /dev/null +++ b/.changeset/popular-kangaroos-accept.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-home': minor +--- + +fix: update plugin home dependence @rjsf/material-ui to @rjsf/material-ui-v5 diff --git a/plugins/home/package.json b/plugins/home/package.json index ae2ea7ea1f..c5aa8ee238 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -44,7 +44,7 @@ "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", "@rjsf/core-v5": "npm:@rjsf/core@5.7.3", - "@rjsf/material-ui": "5.7.3", + "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@5.7.3", "@rjsf/utils": "5.7.3", "@rjsf/validator-ajv8": "5.7.3", "@types/react": "^16.13.1 || ^17.0.0", diff --git a/plugins/home/src/components/CustomHomepage/WidgetSettingsOverlay.tsx b/plugins/home/src/components/CustomHomepage/WidgetSettingsOverlay.tsx index 65e0917fb1..1d863c020d 100644 --- a/plugins/home/src/components/CustomHomepage/WidgetSettingsOverlay.tsx +++ b/plugins/home/src/components/CustomHomepage/WidgetSettingsOverlay.tsx @@ -30,7 +30,7 @@ import { Widget } from './types'; import { withTheme } from '@rjsf/core-v5'; import validator from '@rjsf/validator-ajv8'; -const Form = withTheme(require('@rjsf/material-ui').Theme); +const Form = withTheme(require('@rjsf/material-ui-v5').Theme); const useStyles = makeStyles((theme: Theme) => createStyles({ diff --git a/yarn.lock b/yarn.lock index 697b463991..a2b10a747c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7139,7 +7139,7 @@ __metadata: "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.61 "@rjsf/core-v5": "npm:@rjsf/core@5.7.3" - "@rjsf/material-ui": 5.7.3 + "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@5.7.3" "@rjsf/utils": 5.7.3 "@rjsf/validator-ajv8": 5.7.3 "@testing-library/dom": ^8.0.0 @@ -14296,7 +14296,7 @@ __metadata: languageName: node linkType: hard -"@rjsf/material-ui-v5@npm:@rjsf/material-ui@5.7.3, @rjsf/material-ui@npm:5.7.3": +"@rjsf/material-ui-v5@npm:@rjsf/material-ui@5.7.3": version: 5.7.3 resolution: "@rjsf/material-ui@npm:5.7.3" peerDependencies: From bb59bbfd0e05014ad37359601b35491a51456cc1 Mon Sep 17 00:00:00 2001 From: gowthamshankar99 Date: Mon, 26 Jun 2023 10:52:22 -0400 Subject: [PATCH 33/78] Update README.md for kubernetes documentation The current k8s documentation is broken. updating it to point to the correct URL Signed-off-by: gowthamshankar99 --- plugins/kubernetes-backend/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/kubernetes-backend/README.md b/plugins/kubernetes-backend/README.md index b724babca3..742ef79692 100644 --- a/plugins/kubernetes-backend/README.md +++ b/plugins/kubernetes-backend/README.md @@ -16,4 +16,4 @@ The plugin requires configuration in the Backstage `app-config.yaml` to connect In addition, configuration of an entity's `catalog-info.yaml` helps identify which specific Kubernetes object(s) should be presented on a specific entity catalog page. -For more information, see the [formal documentation about the Kubernetes feature in Backstage](https://backstage.io/docs/features/kubernetes/overview). +For more information, see the [formal documentation about the Kubernetes feature in Backstage](https://backstage.io/docs/features/kubernetes/). From 939bb0651a1eccc42f01cee93db84b3187760402 Mon Sep 17 00:00:00 2001 From: gowthamshankar99 Date: Mon, 26 Jun 2023 11:52:18 -0400 Subject: [PATCH 34/78] Update docusaurus.config.js adding microsite mapping for kubernetes documentation Signed-off-by: gowthamshankar99 Signed-off-by: Gowtham Shankar Gowri shankar --- microsite/docusaurus.config.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/microsite/docusaurus.config.js b/microsite/docusaurus.config.js index a13168472d..0312354404 100644 --- a/microsite/docusaurus.config.js +++ b/microsite/docusaurus.config.js @@ -127,6 +127,10 @@ module.exports = { from: '/docs/features/techdocs/techdocs-overview', to: '/docs/features/techdocs/', }, + { + from: '/docs/features/kubernetes/overview', + to: '/docs/features/kubernetes/', + }, { from: '/docs/features/search/search-overview', to: '/docs/features/search/', From 2ae94fb80455bae5dffc2f8592f500d4f95a79cd Mon Sep 17 00:00:00 2001 From: Gowtham Shankar Gowri shankar Date: Mon, 26 Jun 2023 12:34:38 -0400 Subject: [PATCH 35/78] ran prettier Signed-off-by: Gowtham Shankar Gowri shankar --- microsite/docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/docusaurus.config.js b/microsite/docusaurus.config.js index 0312354404..e78626e37c 100644 --- a/microsite/docusaurus.config.js +++ b/microsite/docusaurus.config.js @@ -130,7 +130,7 @@ module.exports = { { from: '/docs/features/kubernetes/overview', to: '/docs/features/kubernetes/', - }, + }, { from: '/docs/features/search/search-overview', to: '/docs/features/search/', From faac6b7425b2bf003be3257dea0a66aad879cb87 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Jun 2023 10:38:25 +0200 Subject: [PATCH 36/78] chore: update changeset Signed-off-by: blam --- .changeset/tough-flowers-suffer.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tough-flowers-suffer.md diff --git a/.changeset/tough-flowers-suffer.md b/.changeset/tough-flowers-suffer.md new file mode 100644 index 0000000000..784d331107 --- /dev/null +++ b/.changeset/tough-flowers-suffer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +Update readme with a valid link to k8s documentation From 0a9c34febf5ff113ac2a6c105fe114e3fe0f95c3 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Jun 2023 11:24:42 +0200 Subject: [PATCH 37/78] docs: add a note about isolated vm Signed-off-by: blam --- docs/getting-started/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 820f5ef394..773b5bd5a2 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -53,6 +53,8 @@ create a subdirectory inside your current working directory. npx @backstage/create-app@latest ``` +> Note: If this fails on the `yarn install` step, it's likely that you will need to install some additional dependencies which are used to configure `isolated-vm`. You can find out more in their [requirements section](https://github.com/laverdet/isolated-vm#requirements), and then run `yarn install` manually again after you've completed those steps. + The wizard will ask you for the name of the app, which will also be the name of the directory ![Screenshot of the wizard asking for a name for the app.](../assets/getting-started/wizard.png) From 57585d89f926f09a52d0749e9ba7c99f876ae39a Mon Sep 17 00:00:00 2001 From: ivgo Date: Mon, 26 Jun 2023 16:36:36 +0200 Subject: [PATCH 38/78] Export more types and functions for customization Signed-off-by: ivgo --- .changeset/green-otters-wait.md | 7 ++++ .../catalog-unprocessed-entities/README.md | 24 +++++++++++ .../src/api/index.ts | 41 +++++++++++++++---- .../catalog-unprocessed-entities/src/index.ts | 10 +++++ .../src/plugin.ts | 4 +- .../catalog-unprocessed-entities/src/types.ts | 12 ++++++ 6 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 .changeset/green-otters-wait.md diff --git a/.changeset/green-otters-wait.md b/.changeset/green-otters-wait.md new file mode 100644 index 0000000000..4f9b02351e --- /dev/null +++ b/.changeset/green-otters-wait.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-unprocessed-entities': patch +--- + +Export some types and API items. This allows people to call the API from different places with the ApiRef, as well +as completely customize the client if required. Check the [README.md](../plugins/catalog-unprocessed-entities/README.md) to +note what needs to be added in order to use the new `catalogUnprocessedEntitiesApiRef` exported function. diff --git a/plugins/catalog-unprocessed-entities/README.md b/plugins/catalog-unprocessed-entities/README.md index 198d60b882..3e5e434c67 100644 --- a/plugins/catalog-unprocessed-entities/README.md +++ b/plugins/catalog-unprocessed-entities/README.md @@ -40,6 +40,30 @@ import { CatalogUnprocessedEntitiesPage } from '@backstage/plugin-catalog-unproc />; ``` +## Customization + +If you want to use the provided endpoints in a different way, you can use the ApiRef doing the following: + +```typescript +import { catalogUnprocessedEntitiesApiRef } from '@backstage/plugin-catalog-unprocessed-entities'; +import { useApi } from '@backstage/core-plugin-api'; + +const catalogUnprocessedEntitiesApi = useApi(catalogUnprocessedEntitiesApiRef); +``` + +Note that you will need to add the API implementation to avoid your instance to crash due to "missing implementation for apiRef". To do so, add the following lines: + +```typescript +// In packages/app/src/apis.ts +import { catalogUnprocessedEntitiesPlugin } from '@backstage/plugin-catalog-unprocessed-entities'; + +export const apis: AnyApiFactory[] = [ + // ...other API implementations + + ...catalogUnprocessedEntitiesPlugin.getApis(), +]; +``` + ## 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 [/catalog-unprocessed-entities](http://localhost:3000/catalog-unprocessed-entities). diff --git a/plugins/catalog-unprocessed-entities/src/api/index.ts b/plugins/catalog-unprocessed-entities/src/api/index.ts index 5be81c8331..92dde93a93 100644 --- a/plugins/catalog-unprocessed-entities/src/api/index.ts +++ b/plugins/catalog-unprocessed-entities/src/api/index.ts @@ -32,20 +32,43 @@ export const catalogUnprocessedEntitiesApiRef = }); /** - * API client for the Catalog Unprocessed Entities plugin + * Response expected by the {@link CatalogUnprocessedEntitiesApi} * * @public */ -export class CatalogUnprocessedEntitiesApi { - url: string = ''; +export type CatalogUnprocessedEntitiesApiResponse = { + entities: UnprocessedEntity[]; +}; +/** + * Interface for the CatalogUnprocessedEntitiesApi. + * + * @public + */ +export interface CatalogUnprocessedEntitiesApi { + /** + * Returns a list of entities with state 'pending' + */ + pending(): Promise; + /** + * Returns a list of entities with state 'failed' + */ + failed(): Promise; +} + +/** + * Default API implementation for the Catalog Unprocessed Entities plugin + * + * @public + */ +export class CatalogUnprocessedEntitiesClient + implements CatalogUnprocessedEntitiesApi +{ constructor(public discovery: DiscoveryApi, public fetchApi: FetchApi) {} private async fetch(path: string, init?: RequestInit): Promise { - if (!this.url) { - this.url = await this.discovery.getBaseUrl('catalog'); - } - const resp = await this.fetchApi.fetch(`${this.url}/${path}`, init); + const url = await this.discovery.getBaseUrl('catalog'); + const resp = await this.fetchApi.fetch(`${url}/${path}`, init); if (!resp.ok) { throw await ResponseError.fromResponse(resp); } @@ -53,11 +76,11 @@ export class CatalogUnprocessedEntitiesApi { return await resp.json(); } - async pending(): Promise<{ entities: UnprocessedEntity[] }> { + async pending(): Promise { return await this.fetch('entities/unprocessed/pending'); } - async failed(): Promise<{ entities: UnprocessedEntity[] }> { + async failed(): Promise { return await this.fetch('entities/unprocessed/failed'); } } diff --git a/plugins/catalog-unprocessed-entities/src/index.ts b/plugins/catalog-unprocessed-entities/src/index.ts index 11ed24113f..4fcc9a8fcd 100644 --- a/plugins/catalog-unprocessed-entities/src/index.ts +++ b/plugins/catalog-unprocessed-entities/src/index.ts @@ -18,3 +18,13 @@ export { CatalogUnprocessedEntitiesPage, } from './plugin'; export { UnprocessedEntitiesContent } from './components/UnprocessedEntities'; +export { + type CatalogUnprocessedEntitiesApiResponse, + type CatalogUnprocessedEntitiesApi, + catalogUnprocessedEntitiesApiRef, +} from './api'; +export type { + UnprocessedEntity, + UnprocessedEntityCache, + UnprocessedEntityError, +} from './types'; diff --git a/plugins/catalog-unprocessed-entities/src/plugin.ts b/plugins/catalog-unprocessed-entities/src/plugin.ts index 14598c825b..baf7278454 100644 --- a/plugins/catalog-unprocessed-entities/src/plugin.ts +++ b/plugins/catalog-unprocessed-entities/src/plugin.ts @@ -23,7 +23,7 @@ import { import { rootRouteRef } from './routes'; import { - CatalogUnprocessedEntitiesApi, + CatalogUnprocessedEntitiesClient, catalogUnprocessedEntitiesApiRef, } from './api'; @@ -42,7 +42,7 @@ export const catalogUnprocessedEntitiesPlugin = createPlugin({ api: catalogUnprocessedEntitiesApiRef, deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef }, factory: ({ discoveryApi, fetchApi }) => - new CatalogUnprocessedEntitiesApi(discoveryApi, fetchApi), + new CatalogUnprocessedEntitiesClient(discoveryApi, fetchApi), }), ], }); diff --git a/plugins/catalog-unprocessed-entities/src/types.ts b/plugins/catalog-unprocessed-entities/src/types.ts index 490027b57a..65f21970f5 100644 --- a/plugins/catalog-unprocessed-entities/src/types.ts +++ b/plugins/catalog-unprocessed-entities/src/types.ts @@ -15,6 +15,10 @@ */ import { Entity } from '@backstage/catalog-model'; +/** + * Unprocessed entity data stored in the database. + * @public + */ export type UnprocessedEntity = { entity_id: string; entity_ref: string; @@ -29,11 +33,19 @@ export type UnprocessedEntity = { location_key?: string; }; +/** + * Unprocessed entity cache stored in the database. + * @public + */ export type UnprocessedEntityCache = { ttl: number; cache: object; }; +/** + * Unprocessed entity error information stored in the database. + * @public + */ export type UnprocessedEntityError = { name: string; message: string; From e6f362887cfc02e2d913272cb330641cbb3daa10 Mon Sep 17 00:00:00 2001 From: ivgo Date: Tue, 27 Jun 2023 11:47:59 +0200 Subject: [PATCH 39/78] chore: update documentation for exporting the plugin Signed-off-by: blam Signed-off-by: ivgo --- plugins/catalog-unprocessed-entities/README.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/plugins/catalog-unprocessed-entities/README.md b/plugins/catalog-unprocessed-entities/README.md index 3e5e434c67..db0a21c9c4 100644 --- a/plugins/catalog-unprocessed-entities/README.md +++ b/plugins/catalog-unprocessed-entities/README.md @@ -51,17 +51,12 @@ import { useApi } from '@backstage/core-plugin-api'; const catalogUnprocessedEntitiesApi = useApi(catalogUnprocessedEntitiesApiRef); ``` -Note that you will need to add the API implementation to avoid your instance to crash due to "missing implementation for apiRef". To do so, add the following lines: +Note that if you are not rendering the `CatalogUnprocessedEntitiesPage` in the `App.tsx` tree, you will need to export the `catalogUnproccessedEntitiesPlugin` from your `plugins.ts` file to setup the plugin otherwise you will receive an error like `No implementation available for apiRef{plugin.catalog-unprocessed-entities.service}` ```typescript -// In packages/app/src/apis.ts -import { catalogUnprocessedEntitiesPlugin } from '@backstage/plugin-catalog-unprocessed-entities'; - -export const apis: AnyApiFactory[] = [ - // ...other API implementations - - ...catalogUnprocessedEntitiesPlugin.getApis(), -]; +// In packages/app/src/plugins.ts +... +export { catalogUnprocessedEntitiesPlugin } from '@backstage/plugin-catalog-unprocessed-entities'; ``` ## Getting started From bfa7f07089c65bf8dcef49dca74ad0547ec7fa6c Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Jun 2023 11:11:00 +0200 Subject: [PATCH 40/78] chore: updating API report Signed-off-by: blam Signed-off-by: ivgo --- .../api-report.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/plugins/catalog-unprocessed-entities/api-report.md b/plugins/catalog-unprocessed-entities/api-report.md index 940bc2b3a5..0ccf9716f2 100644 --- a/plugins/catalog-unprocessed-entities/api-report.md +++ b/plugins/catalog-unprocessed-entities/api-report.md @@ -5,9 +5,25 @@ ```ts /// +import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { Entity } from '@backstage/catalog-model'; import { RouteRef } from '@backstage/core-plugin-api'; +// @public +export interface CatalogUnprocessedEntitiesApi { + failed(): Promise; + pending(): Promise; +} + +// @public +export const catalogUnprocessedEntitiesApiRef: ApiRef; + +// @public +export type CatalogUnprocessedEntitiesApiResponse = { + entities: UnprocessedEntity[]; +}; + // @public export const CatalogUnprocessedEntitiesPage: () => JSX.Element; @@ -23,5 +39,37 @@ export const catalogUnprocessedEntitiesPlugin: BackstagePlugin< // @public (undocumented) export const UnprocessedEntitiesContent: () => JSX.Element; +// @public +export type UnprocessedEntity = { + entity_id: string; + entity_ref: string; + unprocessed_entity: Entity; + unprocessed_hash?: string; + processed_entity?: Entity; + result_hash?: string; + cache?: UnprocessedEntityCache; + next_update_at: string | Date; + last_discovery_at: string | Date; + errors?: UnprocessedEntityError[]; + location_key?: string; +}; + +// @public +export type UnprocessedEntityCache = { + ttl: number; + cache: object; +}; + +// @public +export type UnprocessedEntityError = { + name: string; + message: string; + cause: { + name: string; + message: string; + stack: string; + }; +}; + // (No @packageDocumentation comment for this package) ``` From a60c1466a072a352a5da73d017162d74b803097b Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Jun 2023 11:13:28 +0200 Subject: [PATCH 41/78] chore: fixing plugins Signed-off-by: blam Signed-off-by: ivgo --- plugins/catalog-unprocessed-entities/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plugins/catalog-unprocessed-entities/README.md b/plugins/catalog-unprocessed-entities/README.md index db0a21c9c4..172110495c 100644 --- a/plugins/catalog-unprocessed-entities/README.md +++ b/plugins/catalog-unprocessed-entities/README.md @@ -59,6 +59,20 @@ Note that if you are not rendering the `CatalogUnprocessedEntitiesPage` in the ` export { catalogUnprocessedEntitiesPlugin } from '@backstage/plugin-catalog-unprocessed-entities'; ``` +If you don't have a `plugins.ts` file, you can create it with the path `packages/app/src/plugins.ts` and then import it into your `App.tsx`: + +```diff ++ import * as plugins from './plugins'; + +const app = createApp({ + apis, ++ plugins: Object.values(plugins), + bindRoutes({ bind }) { + /* ... */ + }, +}); +``` + ## 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 [/catalog-unprocessed-entities](http://localhost:3000/catalog-unprocessed-entities). From ed41ee492e4eb779b95c9c23e9e2b3c092f22488 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Tue, 27 Jun 2023 11:57:30 +0200 Subject: [PATCH 42/78] Update popular-kangaroos-accept.md Signed-off-by: Ben Lambert --- .changeset/popular-kangaroos-accept.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/popular-kangaroos-accept.md b/.changeset/popular-kangaroos-accept.md index 9e3fcf454a..c297b3220f 100644 --- a/.changeset/popular-kangaroos-accept.md +++ b/.changeset/popular-kangaroos-accept.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-home': minor +'@backstage/plugin-home': patch --- -fix: update plugin home dependence @rjsf/material-ui to @rjsf/material-ui-v5 +fix: update plugin home dependency for `@rjsf/material-ui` to `@rjsf/material-ui-v5` From e7f5f99bbb255c61638f630c92ab07ab65019ffe Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Jun 2023 12:19:31 +0200 Subject: [PATCH 43/78] chore: fix api-reports Signed-off-by: blam --- plugins/stackstorm/api-report.md | 10 +++++++++- .../src/components/StackstormHome/StackstormHome.tsx | 4 ++++ .../stackstorm/src/components/StackstormHome/index.ts | 2 +- plugins/stackstorm/src/index.ts | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/plugins/stackstorm/api-report.md b/plugins/stackstorm/api-report.md index 3e3d79fe27..7a307847cd 100644 --- a/plugins/stackstorm/api-report.md +++ b/plugins/stackstorm/api-report.md @@ -6,10 +6,18 @@ /// import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { default as React_2 } from 'react'; import { RouteRef } from '@backstage/core-plugin-api'; +// @public (undocumented) +export type StackstormHomeProps = { + title?: string; + subtitle?: string; + headerButtons?: React_2.ReactNode[]; +}; + // @public -export const StackstormPage: () => JSX.Element; +export const StackstormPage: (props: StackstormHomeProps) => JSX.Element; // @public export const stackstormPlugin: BackstagePlugin< diff --git a/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx b/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx index 4c244f4891..1bb9031815 100644 --- a/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx +++ b/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx @@ -27,11 +27,15 @@ import { ExecutionsTable } from '../ExecutionsTable'; import { PacksTable } from '../PacksTable/PacksTable'; import { ActionsList } from '../ActionsList'; +/** + * @public + */ export type StackstormHomeProps = { title?: string; subtitle?: string; headerButtons?: React.ReactNode[]; }; + export const StackstormHome = (props: StackstormHomeProps) => (
Date: Tue, 27 Jun 2023 12:49:53 +0200 Subject: [PATCH 44/78] docs: fix microsite build Signed-off-by: blam --- .changeset/green-otters-wait.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/green-otters-wait.md b/.changeset/green-otters-wait.md index 4f9b02351e..02bc30f6aa 100644 --- a/.changeset/green-otters-wait.md +++ b/.changeset/green-otters-wait.md @@ -3,5 +3,5 @@ --- Export some types and API items. This allows people to call the API from different places with the ApiRef, as well -as completely customize the client if required. Check the [README.md](../plugins/catalog-unprocessed-entities/README.md) to +as completely customize the client if required. Check the [README.md](https://github.com/backstage/backstage/blob/master/plugins/catalog-unprocessed-entities/README.md) to note what needs to be added in order to use the new `catalogUnprocessedEntitiesApiRef` exported function. From 5d1224067b7a38bd6a6274833877d2a4d3b8c161 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 27 Jun 2023 13:32:23 +0200 Subject: [PATCH 45/78] chore: fix lint typedeps Signed-off-by: blam --- plugins/stackstorm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/stackstorm/package.json b/plugins/stackstorm/package.json index 1f3a014b0a..9125ac08af 100644 --- a/plugins/stackstorm/package.json +++ b/plugins/stackstorm/package.json @@ -40,6 +40,7 @@ "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", + "@types/react": "^16.13.1 || ^17.0.0", "react-use": "^17.2.4" }, "peerDependencies": { @@ -57,7 +58,6 @@ "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/node": "*", - "@types/react": "^16.13.1 || ^17.0.0", "msw": "^1.0.0" }, "files": [ From ae6ee0093ef735f28bfa98b21c3d58ed691a7b18 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Wed, 21 Jun 2023 17:33:39 +0200 Subject: [PATCH 46/78] test(search): optimize search bar suite Signed-off-by: Camila Belo --- .../components/SearchBar/SearchBar.test.tsx | 163 +++++++----------- 1 file changed, 65 insertions(+), 98 deletions(-) diff --git a/plugins/search-react/src/components/SearchBar/SearchBar.test.tsx b/plugins/search-react/src/components/SearchBar/SearchBar.test.tsx index e4859861d9..5af5447740 100644 --- a/plugins/search-react/src/components/SearchBar/SearchBar.test.tsx +++ b/plugins/search-react/src/components/SearchBar/SearchBar.test.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { screen, render, waitFor, act } from '@testing-library/react'; +import { screen, waitFor, act } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { configApiRef, analyticsApiRef } from '@backstage/core-plugin-api'; import { ConfigReader } from '@backstage/core-app-api'; @@ -41,16 +41,23 @@ const createInitialState = ({ }); describe('SearchBar', () => { + const user = userEvent.setup({ delay: null }); + const query = jest.fn().mockResolvedValue({ results: [] }); - const analyticsApiMock = new MockAnalyticsApi(); + const searchApiMock = { query }; const configApiMock = new ConfigReader({ - app: { title: 'Mock title' }, + app: { + title: 'Mock title', + analytics: { + ga: { + trackingId: 'xyz123', + }, + }, + }, }); - const searchApiMock = { query }; - beforeEach(() => { jest.clearAllMocks(); }); @@ -64,20 +71,20 @@ describe('SearchBar', () => { ]} > - + , ); - await waitFor(() => { - expect(screen.getByLabelText('Search')).toBeInTheDocument(); - }); + await waitFor(() => + expect(screen.getByLabelText('Search')).toBeInTheDocument(), + ); }); it('Renders with custom label', async () => { const label = 'label'; - const result = await renderWithEffects( + await renderWithEffects( { ]} > - + , ); - await waitFor(() => { - expect(result.getByLabelText(label)).toBeInTheDocument(); - }); + await waitFor(() => + expect(screen.getByLabelText(label)).toBeInTheDocument(), + ); }); it('Renders with custom placeholder', async () => { @@ -106,20 +113,20 @@ describe('SearchBar', () => { ]} > - + , ); - await waitFor(() => { - expect(screen.getByPlaceholderText(placeholder)).toBeInTheDocument(); - }); + await waitFor(() => + expect(screen.getByPlaceholderText(placeholder)).toBeInTheDocument(), + ); }); it('Renders based on initial search', async () => { const term = 'term'; - render( + await renderWithEffects( { ]} > - + , ); - await waitFor(() => { - expect(screen.getByRole('textbox', { name: 'Search' })).toHaveValue(term); - }); + await waitFor(() => + expect(screen.getByLabelText('Search')).toHaveValue(term), + ); }); it('Updates term state when text is entered', async () => { jest.useFakeTimers(); - const user = userEvent.setup({ delay: null }); await renderWithEffects( { , ); - const textbox = screen.getByRole('textbox', { name: 'Search' }); + const textbox = screen.getByLabelText('Search'); const value = 'value'; @@ -164,14 +170,13 @@ describe('SearchBar', () => { jest.advanceTimersByTime(200); }); - await waitFor(() => { - expect(textbox).toHaveValue(value); - }); + await waitFor(() => expect(textbox).toHaveValue(value)); expect(query).toHaveBeenLastCalledWith( expect.objectContaining({ term: value }), ); + jest.runAllTimers(); jest.useRealTimers(); }); @@ -186,22 +191,18 @@ describe('SearchBar', () => { ]} > - + , ); - const textbox = screen.getByRole('textbox', { name: 'Search' }); + const textbox = screen.getByLabelText('Search'); - await waitFor(() => { - expect(textbox).toHaveValue(term); - }); + await waitFor(() => expect(textbox).toHaveValue(term)); - await userEvent.click(screen.getByRole('button', { name: 'Clear' })); + await user.click(screen.getByLabelText('Clear')); - await waitFor(() => { - expect(textbox).toHaveValue(''); - }); + await waitFor(() => expect(textbox).toHaveValue('')); expect(query).toHaveBeenLastCalledWith( expect.objectContaining({ term: '' }), @@ -219,22 +220,20 @@ describe('SearchBar', () => { ]} > - + , ); - await waitFor(() => { - expect( - screen.queryByRole('button', { name: 'Clear' }), - ).not.toBeInTheDocument(); - }); + await waitFor(() => + expect(screen.queryByLabelText('Clear')).not.toBeInTheDocument(), + ); }); it('Adheres to provided debounceTime', async () => { jest.useFakeTimers(); - const user = userEvent.setup({ delay: null }); - const debounceTime = 600; + + const debounceTime = 100; await renderWithEffects( { , ); - const textbox = await screen.findByRole('textbox', { name: 'Search' }); + const textbox = screen.getByLabelText('Search'); const value = 'value'; await user.type(textbox, value); - await waitFor(() => { + await waitFor(() => expect(query).not.toHaveBeenLastCalledWith( expect.objectContaining({ term: value }), - ); - }); + ), + ); act(() => { jest.advanceTimersByTime(debounceTime); }); - await waitFor(() => { - expect(textbox).toHaveValue(value); - }); + await waitFor(() => expect(textbox).toHaveValue(value)); expect(query).toHaveBeenLastCalledWith( expect.objectContaining({ term: value }), ); + jest.runAllTimers(); jest.useRealTimers(); }); - it('does not capture analytics event if not enabled in app', async () => { - jest.useFakeTimers(); - const user = userEvent.setup({ delay: null }); + it('Does not capture analytics event if not enabled in app', async () => { + const analyticsApiMock = new MockAnalyticsApi(); await renderWithEffects( { ]} > - + , ); - const textbox = await screen.findByRole('textbox', { name: 'Search' }); + const textbox = screen.getByLabelText('Search'); const value = 'value'; await user.type(textbox, value); - act(() => { - jest.advanceTimersByTime(200); - }); - - await waitFor(() => { - expect(textbox).toHaveValue(value); - }); + await waitFor(() => expect(textbox).toHaveValue(value)); expect(analyticsApiMock.getEvents()).toHaveLength(0); - - jest.useRealTimers(); }); - it('captures analytics events if enabled in app', async () => { - jest.useFakeTimers(); - const user = userEvent.setup({ delay: null }); + it('Captures analytics events if enabled in app', async () => { + const analyticsApiMock = new MockAnalyticsApi(); + const types = ['techdocs', 'software-catalog']; await renderWithEffects( - + , ); - const textbox = await screen.findByRole('textbox', { name: 'Search' }); + const textbox = screen.getByLabelText('Search'); let value = 'value'; @@ -351,13 +328,9 @@ describe('SearchBar', () => { expect(analyticsApiMock.getEvents()).toHaveLength(0); - act(() => { - jest.advanceTimersByTime(200); - }); + await waitFor(() => expect(analyticsApiMock.getEvents()).toHaveLength(1)); - await waitFor(() => expect(textbox).toHaveValue(value)); - - expect(analyticsApiMock.getEvents()).toHaveLength(1); + expect(textbox).toHaveValue(value); expect(analyticsApiMock.getEvents()[0]).toEqual({ action: 'search', context: { @@ -376,13 +349,9 @@ describe('SearchBar', () => { // make sure new term is captured await user.type(textbox, value); - act(() => { - jest.advanceTimersByTime(200); - }); + await waitFor(() => expect(analyticsApiMock.getEvents()).toHaveLength(2)); - await waitFor(() => expect(textbox).toHaveValue(value)); - - expect(analyticsApiMock.getEvents()).toHaveLength(2); + expect(textbox).toHaveValue(value); expect(analyticsApiMock.getEvents()[1]).toEqual({ action: 'search', context: { @@ -393,7 +362,5 @@ describe('SearchBar', () => { }, subject: value, }); - - jest.useRealTimers(); }); }); From dd7dfaa9220b876de6761a9c99c6cfd6ed8ad4cd Mon Sep 17 00:00:00 2001 From: Renan Mendes Carvalho Date: Tue, 27 Jun 2023 10:44:46 +0200 Subject: [PATCH 47/78] test(search): Move expectations inside waitFor Signed-off-by: Renan Mendes Carvalho --- .../components/SearchBar/SearchBar.test.tsx | 59 +++++++++---------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/plugins/search-react/src/components/SearchBar/SearchBar.test.tsx b/plugins/search-react/src/components/SearchBar/SearchBar.test.tsx index 5af5447740..9b4664aceb 100644 --- a/plugins/search-react/src/components/SearchBar/SearchBar.test.tsx +++ b/plugins/search-react/src/components/SearchBar/SearchBar.test.tsx @@ -323,44 +323,39 @@ describe('SearchBar', () => { const textbox = screen.getByLabelText('Search'); let value = 'value'; - await user.type(textbox, value); - - expect(analyticsApiMock.getEvents()).toHaveLength(0); - - await waitFor(() => expect(analyticsApiMock.getEvents()).toHaveLength(1)); - - expect(textbox).toHaveValue(value); - expect(analyticsApiMock.getEvents()[0]).toEqual({ - action: 'search', - context: { - extension: 'SearchBar', - pluginId: 'search', - routeRef: 'unknown', - searchTypes: types.toString(), - }, - subject: value, + await waitFor(() => { + expect(analyticsApiMock.getEvents()).toHaveLength(1); + expect(textbox).toHaveValue(value); + expect(analyticsApiMock.getEvents()[0]).toEqual({ + action: 'search', + context: { + extension: 'SearchBar', + pluginId: 'search', + routeRef: 'unknown', + searchTypes: types.toString(), + }, + subject: value, + }); }); - await user.clear(textbox); - value = 'new value'; - + await user.clear(textbox); // make sure new term is captured await user.type(textbox, value); - - await waitFor(() => expect(analyticsApiMock.getEvents()).toHaveLength(2)); - - expect(textbox).toHaveValue(value); - expect(analyticsApiMock.getEvents()[1]).toEqual({ - action: 'search', - context: { - extension: 'SearchBar', - pluginId: 'search', - routeRef: 'unknown', - searchTypes: types.toString(), - }, - subject: value, + await waitFor(() => { + expect(analyticsApiMock.getEvents()).toHaveLength(2); + expect(textbox).toHaveValue(value); + expect(analyticsApiMock.getEvents()[1]).toEqual({ + action: 'search', + context: { + extension: 'SearchBar', + pluginId: 'search', + routeRef: 'unknown', + searchTypes: types.toString(), + }, + subject: value, + }); }); }); }); From d72e2eeba6f103348248ba96bc65fc25bcddfc62 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 27 Jun 2023 12:10:42 +0000 Subject: [PATCH 48/78] Version Packages (next) --- .changeset/create-app-1687867724.md | 5 + .changeset/pre.json | 20 +- docs/releases/v1.16.0-next.0-changelog.md | 2583 +++++++++++++++++ package.json | 2 +- packages/app-defaults/CHANGELOG.md | 11 + packages/app-defaults/package.json | 2 +- packages/app/CHANGELOG.md | 75 + packages/app/package.json | 2 +- packages/backend-app-api/CHANGELOG.md | 16 + packages/backend-app-api/package.json | 2 +- packages/backend-common/CHANGELOG.md | 17 + packages/backend-common/package.json | 2 +- packages/backend-defaults/CHANGELOG.md | 9 + packages/backend-defaults/package.json | 2 +- packages/backend-next/CHANGELOG.md | 24 + packages/backend-next/package.json | 2 +- packages/backend-plugin-api/CHANGELOG.md | 11 + packages/backend-plugin-api/package.json | 2 +- packages/backend-tasks/CHANGELOG.md | 10 + packages/backend-tasks/package.json | 2 +- packages/backend-test-utils/CHANGELOG.md | 12 + packages/backend-test-utils/package.json | 2 +- packages/backend/CHANGELOG.md | 55 + packages/backend/package.json | 2 +- packages/catalog-client/CHANGELOG.md | 8 + packages/catalog-client/package.json | 2 +- packages/catalog-model/CHANGELOG.md | 9 + packages/catalog-model/package.json | 2 +- packages/cli-node/CHANGELOG.md | 9 + packages/cli-node/package.json | 2 +- packages/cli/CHANGELOG.md | 17 + packages/cli/package.json | 2 +- packages/config-loader/CHANGELOG.md | 10 + packages/config-loader/package.json | 2 +- packages/core-components/CHANGELOG.md | 13 + packages/core-components/package.json | 2 +- packages/create-app/CHANGELOG.md | 8 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 15 + packages/dev-utils/package.json | 2 +- packages/e2e-test/CHANGELOG.md | 9 + packages/e2e-test/package.json | 2 +- packages/errors/CHANGELOG.md | 8 + packages/errors/package.json | 2 +- packages/integration-aws-node/CHANGELOG.md | 8 + packages/integration-aws-node/package.json | 2 +- packages/integration-react/CHANGELOG.md | 11 + packages/integration-react/package.json | 2 +- packages/integration/CHANGELOG.md | 8 + packages/integration/package.json | 2 +- packages/repo-tools/CHANGELOG.md | 9 + packages/repo-tools/package.json | 2 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 19 + .../techdocs-cli-embedded-app/package.json | 2 +- packages/techdocs-cli/CHANGELOG.md | 11 + packages/techdocs-cli/package.json | 2 +- packages/test-utils/CHANGELOG.md | 13 + packages/test-utils/package.json | 2 +- plugins/adr-backend/CHANGELOG.md | 14 + plugins/adr-backend/package.json | 2 +- plugins/adr-common/CHANGELOG.md | 9 + plugins/adr-common/package.json | 2 +- plugins/adr/CHANGELOG.md | 15 + plugins/adr/package.json | 2 +- plugins/airbrake-backend/CHANGELOG.md | 8 + plugins/airbrake-backend/package.json | 2 +- plugins/airbrake/CHANGELOG.md | 13 + plugins/airbrake/package.json | 2 +- plugins/allure/CHANGELOG.md | 11 + plugins/allure/package.json | 2 +- plugins/analytics-module-ga/CHANGELOG.md | 10 + plugins/analytics-module-ga/package.json | 2 +- plugins/analytics-module-ga4/CHANGELOG.md | 10 + plugins/analytics-module-ga4/package.json | 2 +- plugins/apache-airflow/CHANGELOG.md | 8 + plugins/apache-airflow/package.json | 2 +- plugins/api-docs/CHANGELOG.md | 12 + plugins/api-docs/package.json | 2 +- plugins/apollo-explorer/CHANGELOG.md | 9 + plugins/apollo-explorer/package.json | 2 +- plugins/app-backend/CHANGELOG.md | 11 + plugins/app-backend/package.json | 2 +- plugins/auth-backend/CHANGELOG.md | 13 + plugins/auth-backend/package.json | 2 +- plugins/auth-node/CHANGELOG.md | 9 + plugins/auth-node/package.json | 2 +- plugins/azure-devops-backend/CHANGELOG.md | 9 + plugins/azure-devops-backend/package.json | 2 +- plugins/azure-devops/CHANGELOG.md | 13 + plugins/azure-devops/package.json | 2 +- plugins/azure-sites-backend/CHANGELOG.md | 9 + plugins/azure-sites-backend/package.json | 2 +- plugins/azure-sites/CHANGELOG.md | 12 + plugins/azure-sites/package.json | 2 +- plugins/badges-backend/CHANGELOG.md | 12 + plugins/badges-backend/package.json | 2 +- plugins/badges/CHANGELOG.md | 12 + plugins/badges/package.json | 2 +- plugins/bazaar-backend/CHANGELOG.md | 11 + plugins/bazaar-backend/package.json | 2 +- plugins/bazaar/CHANGELOG.md | 15 + plugins/bazaar/package.json | 2 +- plugins/bitbucket-cloud-common/CHANGELOG.md | 7 + plugins/bitbucket-cloud-common/package.json | 2 +- plugins/bitrise/CHANGELOG.md | 11 + plugins/bitrise/package.json | 2 +- .../catalog-backend-module-aws/CHANGELOG.md | 18 + .../catalog-backend-module-aws/package.json | 2 +- .../catalog-backend-module-azure/CHANGELOG.md | 16 + .../catalog-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 17 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 20 + .../package.json | 2 +- .../CHANGELOG.md | 15 + .../package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../catalog-backend-module-ldap/CHANGELOG.md | 13 + .../catalog-backend-module-ldap/package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- plugins/catalog-backend/CHANGELOG.md | 28 + plugins/catalog-backend/package.json | 2 +- plugins/catalog-common/CHANGELOG.md | 9 + plugins/catalog-common/package.json | 2 +- plugins/catalog-customized/CHANGELOG.md | 8 + plugins/catalog-customized/package.json | 2 +- plugins/catalog-graph/CHANGELOG.md | 12 + plugins/catalog-graph/package.json | 2 +- plugins/catalog-graphql/CHANGELOG.md | 9 + plugins/catalog-graphql/package.json | 2 +- plugins/catalog-import/CHANGELOG.md | 16 + plugins/catalog-import/package.json | 2 +- plugins/catalog-node/CHANGELOG.md | 16 + plugins/catalog-node/package.json | 2 +- plugins/catalog-react/CHANGELOG.md | 18 + plugins/catalog-react/package.json | 2 +- .../catalog-unprocessed-entities/CHANGELOG.md | 22 + .../catalog-unprocessed-entities/package.json | 2 +- plugins/catalog/CHANGELOG.md | 19 + plugins/catalog/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/cicd-statistics/CHANGELOG.md | 9 + plugins/cicd-statistics/package.json | 2 +- plugins/circleci/CHANGELOG.md | 11 + plugins/circleci/package.json | 2 +- plugins/cloudbuild/CHANGELOG.md | 11 + plugins/cloudbuild/package.json | 2 +- plugins/code-climate/CHANGELOG.md | 11 + plugins/code-climate/package.json | 2 +- plugins/code-coverage-backend/CHANGELOG.md | 12 + plugins/code-coverage-backend/package.json | 2 +- plugins/code-coverage/CHANGELOG.md | 13 + plugins/code-coverage/package.json | 2 +- plugins/codescene/CHANGELOG.md | 11 + plugins/codescene/package.json | 2 +- plugins/config-schema/CHANGELOG.md | 12 + plugins/config-schema/package.json | 2 +- plugins/cost-insights/CHANGELOG.md | 13 + plugins/cost-insights/package.json | 2 +- plugins/devtools-backend/CHANGELOG.md | 16 + plugins/devtools-backend/package.json | 2 +- plugins/devtools-common/CHANGELOG.md | 8 + plugins/devtools-common/package.json | 2 +- plugins/devtools/CHANGELOG.md | 15 + plugins/devtools/package.json | 2 +- plugins/dynatrace/CHANGELOG.md | 12 + plugins/dynatrace/package.json | 2 +- plugins/entity-feedback-backend/CHANGELOG.md | 14 + plugins/entity-feedback-backend/package.json | 2 +- plugins/entity-feedback/CHANGELOG.md | 13 + plugins/entity-feedback/package.json | 2 +- plugins/entity-validation/CHANGELOG.md | 14 + plugins/entity-validation/package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../events-backend-module-azure/CHANGELOG.md | 8 + .../events-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../events-backend-module-gerrit/CHANGELOG.md | 8 + .../events-backend-module-gerrit/package.json | 2 +- .../events-backend-module-github/CHANGELOG.md | 9 + .../events-backend-module-github/package.json | 2 +- .../events-backend-module-gitlab/CHANGELOG.md | 9 + .../events-backend-module-gitlab/package.json | 2 +- .../events-backend-test-utils/CHANGELOG.md | 7 + .../events-backend-test-utils/package.json | 2 +- plugins/events-backend/CHANGELOG.md | 10 + plugins/events-backend/package.json | 2 +- plugins/events-node/CHANGELOG.md | 7 + plugins/events-node/package.json | 2 +- .../example-todo-list-backend/CHANGELOG.md | 11 + .../example-todo-list-backend/package.json | 2 +- plugins/example-todo-list-common/CHANGELOG.md | 7 + plugins/example-todo-list-common/package.json | 2 +- plugins/example-todo-list/CHANGELOG.md | 9 + plugins/example-todo-list/package.json | 2 +- plugins/explore-backend/CHANGELOG.md | 12 + plugins/explore-backend/package.json | 2 +- plugins/explore/CHANGELOG.md | 16 + plugins/explore/package.json | 2 +- plugins/firehydrant/CHANGELOG.md | 11 + plugins/firehydrant/package.json | 2 +- plugins/fossa/CHANGELOG.md | 12 + plugins/fossa/package.json | 2 +- plugins/gcalendar/CHANGELOG.md | 10 + plugins/gcalendar/package.json | 2 +- plugins/gcp-projects/CHANGELOG.md | 9 + plugins/gcp-projects/package.json | 2 +- plugins/git-release-manager/CHANGELOG.md | 10 + plugins/git-release-manager/package.json | 2 +- plugins/github-actions/CHANGELOG.md | 13 + plugins/github-actions/package.json | 2 +- plugins/github-deployments/CHANGELOG.md | 14 + plugins/github-deployments/package.json | 2 +- plugins/github-issues/CHANGELOG.md | 13 + plugins/github-issues/package.json | 2 +- .../github-pull-requests-board/CHANGELOG.md | 12 + .../github-pull-requests-board/package.json | 2 +- plugins/gitops-profiles/CHANGELOG.md | 10 + plugins/gitops-profiles/package.json | 2 +- plugins/gocd/CHANGELOG.md | 12 + plugins/gocd/package.json | 2 +- plugins/graphiql/CHANGELOG.md | 9 + plugins/graphiql/package.json | 2 +- plugins/graphql-backend/CHANGELOG.md | 9 + plugins/graphql-backend/package.json | 2 +- plugins/graphql-voyager/CHANGELOG.md | 9 + plugins/graphql-voyager/package.json | 2 +- plugins/home-react/CHANGELOG.md | 8 + plugins/home-react/package.json | 2 +- plugins/home/CHANGELOG.md | 14 + plugins/home/package.json | 2 +- plugins/ilert/CHANGELOG.md | 12 + plugins/ilert/package.json | 2 +- plugins/jenkins-backend/CHANGELOG.md | 15 + plugins/jenkins-backend/package.json | 2 +- plugins/jenkins-common/CHANGELOG.md | 8 + plugins/jenkins-common/package.json | 2 +- plugins/jenkins/CHANGELOG.md | 13 + plugins/jenkins/package.json | 2 +- plugins/kafka-backend/CHANGELOG.md | 11 + plugins/kafka-backend/package.json | 2 +- plugins/kafka/CHANGELOG.md | 12 + plugins/kafka/package.json | 2 +- plugins/kubernetes-backend/CHANGELOG.md | 19 + plugins/kubernetes-backend/package.json | 2 +- plugins/kubernetes-common/CHANGELOG.md | 8 + plugins/kubernetes-common/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 14 + plugins/kubernetes/package.json | 2 +- plugins/lighthouse-backend/CHANGELOG.md | 13 + plugins/lighthouse-backend/package.json | 2 +- plugins/lighthouse/CHANGELOG.md | 13 + plugins/lighthouse/package.json | 2 +- plugins/linguist-backend/CHANGELOG.md | 15 + plugins/linguist-backend/package.json | 2 +- plugins/linguist/CHANGELOG.md | 13 + plugins/linguist/package.json | 2 +- plugins/microsoft-calendar/CHANGELOG.md | 10 + plugins/microsoft-calendar/package.json | 2 +- plugins/newrelic-dashboard/CHANGELOG.md | 11 + plugins/newrelic-dashboard/package.json | 2 +- plugins/newrelic/CHANGELOG.md | 9 + plugins/newrelic/package.json | 2 +- plugins/nomad-backend/CHANGELOG.md | 9 + plugins/nomad-backend/package.json | 2 +- plugins/nomad/CHANGELOG.md | 13 + plugins/nomad/package.json | 2 +- plugins/octopus-deploy/CHANGELOG.md | 11 + plugins/octopus-deploy/package.json | 2 +- plugins/org-react/CHANGELOG.md | 12 + plugins/org-react/package.json | 2 +- plugins/org/CHANGELOG.md | 11 + plugins/org/package.json | 2 +- plugins/pagerduty/CHANGELOG.md | 13 + plugins/pagerduty/package.json | 2 +- plugins/periskop-backend/CHANGELOG.md | 9 + plugins/periskop-backend/package.json | 2 +- plugins/periskop/CHANGELOG.md | 12 + plugins/periskop/package.json | 2 +- plugins/permission-backend/CHANGELOG.md | 13 + plugins/permission-backend/package.json | 2 +- plugins/permission-common/CHANGELOG.md | 9 + plugins/permission-common/package.json | 2 +- plugins/permission-node/CHANGELOG.md | 12 + plugins/permission-node/package.json | 2 +- plugins/permission-react/CHANGELOG.md | 9 + plugins/permission-react/package.json | 2 +- plugins/playlist-backend/CHANGELOG.md | 15 + plugins/playlist-backend/package.json | 2 +- plugins/playlist-common/CHANGELOG.md | 7 + plugins/playlist-common/package.json | 2 +- plugins/playlist/CHANGELOG.md | 18 + plugins/playlist/package.json | 2 +- plugins/proxy-backend/CHANGELOG.md | 9 + plugins/proxy-backend/package.json | 2 +- plugins/puppetdb/CHANGELOG.md | 12 + plugins/puppetdb/package.json | 2 +- plugins/rollbar-backend/CHANGELOG.md | 8 + plugins/rollbar-backend/package.json | 2 +- plugins/rollbar/CHANGELOG.md | 11 + plugins/rollbar/package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/scaffolder-backend/CHANGELOG.md | 23 + plugins/scaffolder-backend/package.json | 2 +- plugins/scaffolder-common/CHANGELOG.md | 9 + plugins/scaffolder-common/package.json | 2 +- plugins/scaffolder-node/CHANGELOG.md | 10 + plugins/scaffolder-node/package.json | 2 +- plugins/scaffolder-react/CHANGELOG.md | 16 + plugins/scaffolder-react/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 21 + plugins/scaffolder/package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- plugins/search-backend-module-pg/CHANGELOG.md | 11 + plugins/search-backend-module-pg/package.json | 2 +- .../CHANGELOG.md | 17 + .../package.json | 2 +- plugins/search-backend-node/CHANGELOG.md | 13 + plugins/search-backend-node/package.json | 2 +- plugins/search-backend/CHANGELOG.md | 16 + plugins/search-backend/package.json | 2 +- plugins/search-common/CHANGELOG.md | 8 + plugins/search-common/package.json | 2 +- plugins/search-react/CHANGELOG.md | 12 + plugins/search-react/package.json | 2 +- plugins/search/CHANGELOG.md | 17 + plugins/search/package.json | 2 +- plugins/sentry/CHANGELOG.md | 11 + plugins/sentry/package.json | 2 +- plugins/shortcuts/CHANGELOG.md | 10 + plugins/shortcuts/package.json | 2 +- plugins/sonarqube-backend/CHANGELOG.md | 9 + plugins/sonarqube-backend/package.json | 2 +- plugins/sonarqube-react/CHANGELOG.md | 8 + plugins/sonarqube-react/package.json | 2 +- plugins/sonarqube/CHANGELOG.md | 12 + plugins/sonarqube/package.json | 2 +- plugins/splunk-on-call/CHANGELOG.md | 11 + plugins/splunk-on-call/package.json | 2 +- plugins/stack-overflow-backend/CHANGELOG.md | 9 + plugins/stack-overflow-backend/package.json | 2 +- plugins/stack-overflow/CHANGELOG.md | 13 + plugins/stack-overflow/package.json | 2 +- plugins/stackstorm/CHANGELOG.md | 11 + plugins/stackstorm/package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- plugins/tech-insights-backend/CHANGELOG.md | 15 + plugins/tech-insights-backend/package.json | 2 +- plugins/tech-insights-node/CHANGELOG.md | 11 + plugins/tech-insights-node/package.json | 2 +- plugins/tech-insights/CHANGELOG.md | 14 + plugins/tech-insights/package.json | 2 +- plugins/tech-radar/CHANGELOG.md | 9 + plugins/tech-radar/package.json | 2 +- .../techdocs-addons-test-utils/CHANGELOG.md | 16 + .../techdocs-addons-test-utils/package.json | 2 +- plugins/techdocs-backend/CHANGELOG.md | 18 + plugins/techdocs-backend/package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- plugins/techdocs-node/CHANGELOG.md | 13 + plugins/techdocs-node/package.json | 2 +- plugins/techdocs-react/CHANGELOG.md | 11 + plugins/techdocs-react/package.json | 2 +- plugins/techdocs/CHANGELOG.md | 18 + plugins/techdocs/package.json | 2 +- plugins/todo-backend/CHANGELOG.md | 14 + plugins/todo-backend/package.json | 2 +- plugins/todo/CHANGELOG.md | 12 + plugins/todo/package.json | 2 +- plugins/user-settings-backend/CHANGELOG.md | 12 + plugins/user-settings-backend/package.json | 2 +- plugins/user-settings/CHANGELOG.md | 13 + plugins/user-settings/package.json | 2 +- plugins/vault-backend/CHANGELOG.md | 10 + plugins/vault-backend/package.json | 2 +- plugins/vault/CHANGELOG.md | 12 + plugins/vault/package.json | 2 +- plugins/xcmetrics/CHANGELOG.md | 10 + plugins/xcmetrics/package.json | 2 +- yarn.lock | 426 ++- 415 files changed, 5740 insertions(+), 286 deletions(-) create mode 100644 .changeset/create-app-1687867724.md create mode 100644 docs/releases/v1.16.0-next.0-changelog.md diff --git a/.changeset/create-app-1687867724.md b/.changeset/create-app-1687867724.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1687867724.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/pre.json b/.changeset/pre.json index 88b1ec9b27..e724582519 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -230,5 +230,23 @@ "@backstage/plugin-vault-backend": "0.3.2", "@backstage/plugin-xcmetrics": "0.2.39" }, - "changesets": [] + "changesets": [ + "angry-phones-wash", + "cli-always-yarn-pack-freal", + "create-app-1687867724", + "cyan-shirts-deny", + "dirty-wasps-draw", + "dull-onions-remember", + "green-otters-wait", + "lazy-frogs-destroy", + "many-ants-poke", + "mighty-shoes-refuse", + "old-rules-give", + "popular-kangaroos-accept", + "purple-starfishes-design", + "short-rabbits-roll", + "sour-humans-begin", + "tough-flowers-suffer", + "twenty-seas-float" + ] } diff --git a/docs/releases/v1.16.0-next.0-changelog.md b/docs/releases/v1.16.0-next.0-changelog.md new file mode 100644 index 0000000000..51a4f561c7 --- /dev/null +++ b/docs/releases/v1.16.0-next.0-changelog.md @@ -0,0 +1,2583 @@ +# Release v1.16.0-next.0 + +## @backstage/plugin-catalog-backend@1.11.0-next.0 + +### Minor Changes + +- f06f0e46ba88: Support placeholder resolvers in the CatalogPlugin, also moves `PlaceholderResolver` and related types from `@backstage/plugin-catalog-backend` to `@backstage/plugin-catalog-node`. + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-catalog-node@1.4.0-next.0 + +### Minor Changes + +- f06f0e46ba88: Support placeholder resolvers in the CatalogPlugin, also moves `PlaceholderResolver` and related types from `@backstage/plugin-catalog-backend` to `@backstage/plugin-catalog-node`. + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + +## @backstage/app-defaults@1.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + +## @backstage/backend-app-api@0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + +## @backstage/backend-common@0.19.1-next.0 + +### Patch Changes + +- 787ddcc5ef99: use `Readable.from` to explicitly convert the `buffer` from `node-fetch` to a `Readable` stream +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-app-api@0.4.5-next.0 + - @backstage/backend-dev-utils@0.1.1 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/types@1.1.0 + +## @backstage/backend-defaults@0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-app-api@0.4.5-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + +## @backstage/backend-plugin-api@0.5.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/backend-tasks@0.5.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/backend-test-utils@0.1.39-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-app-api@0.4.5-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + +## @backstage/catalog-client@1.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + +## @backstage/catalog-model@1.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/cli@0.22.9-next.0 + +### Patch Changes + +- 6adb6f41711a: Fixed the `--alwaysYarnPack` flag on the`backstage-cli build-workspace` command. +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.2-next.0 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/eslint-plugin@0.1.3 + - @backstage/integration@1.5.1-next.0 + - @backstage/release-manifests@0.0.9 + - @backstage/types@1.1.0 + +## @backstage/cli-node@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/types@1.1.0 + +## @backstage/config-loader@1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/core-components@0.13.3-next.0 + +### Patch Changes + +- 68531cc70e1f: Break some internal circular import chains +- a011d2316a58: Fix keyboard navigation & focus highlight on Select component. +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/version-bridge@1.0.4 + +## @backstage/create-app@0.5.3-next.0 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.12 + +## @backstage/dev-utils@1.0.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/app-defaults@1.4.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/test-utils@1.4.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/errors@1.2.1-next.0 + +### Patch Changes + +- e205b3e6ede8: Set `this.name` in all error classes that extend `CustomErrorBase` class to their actual name +- Updated dependencies + - @backstage/types@1.1.0 + +## @backstage/integration@1.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + +## @backstage/integration-aws-node@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + +## @backstage/integration-react@1.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + +## @backstage/repo-tools@0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.2-next.0 + +## @techdocs/cli@1.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/plugin-techdocs-node@1.7.3-next.0 + +## @backstage/test-utils@1.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.8 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + +## @backstage/plugin-adr@0.6.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-adr-common@0.2.11-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + +## @backstage/plugin-adr-backend@0.3.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-adr-common@0.2.11-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-adr-common@0.2.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-airbrake@0.3.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/dev-utils@1.0.17-next.0 + - @backstage/test-utils@1.4.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-airbrake-backend@0.2.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-allure@0.1.36-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-analytics-module-ga@0.1.31-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-analytics-module-ga4@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-apache-airflow@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + +## @backstage/plugin-api-docs@0.9.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-apollo-explorer@0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-app-backend@0.3.47-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/types@1.1.0 + +## @backstage/plugin-auth-backend@0.18.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + +## @backstage/plugin-auth-node@0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-azure-devops@0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-azure-devops-common@0.3.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-azure-devops-backend@0.3.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-azure-devops-common@0.3.0 + +## @backstage/plugin-azure-sites@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-azure-sites-common@0.1.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-azure-sites-backend@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-azure-sites-common@0.1.0 + +## @backstage/plugin-badges@0.2.44-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-badges-backend@0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + +## @backstage/plugin-bazaar@0.2.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.9-next.0 + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-bazaar-backend@0.2.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + +## @backstage/plugin-bitbucket-cloud-common@0.2.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.5.1-next.0 + +## @backstage/plugin-bitrise@0.1.47-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-catalog@1.11.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + +## @backstage/plugin-catalog-backend-module-aws@0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-kubernetes-common@0.6.5-next.0 + +## @backstage/plugin-catalog-backend-module-azure@0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.8-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.8-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + +## @backstage/plugin-catalog-backend-module-github@0.3.2-next.0 + +### Patch Changes + +- 68531cc70e1f: Break some internal circular import chains +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-catalog-backend-module-gitlab@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.3.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-events-node@0.2.8-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15-next.0 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.1.1-next.0 + +### Patch Changes + +- a8fa79ccc105: Fix and improve documentation for the unprocessed entities modules. +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + +## @backstage/plugin-catalog-common@1.0.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-catalog-graph@0.2.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-catalog-graphql@0.3.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/plugin-catalog-import@0.9.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-catalog-react@1.7.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + +## @backstage/plugin-catalog-unprocessed-entities@0.1.1-next.0 + +### Patch Changes + +- 2c4869473155: The Catalog Unprocessed Entities plugin can now be integrated as a tab within the DevTools plugin + + - Added an export for `UnprocessedEntitiesContent` + - Updated the `README` with images of the features + - Adjusted the styles to fill in the available space + - Set the table page size to 20 as 40 was causing errors in the browser console + +- 57585d89f926: Export some types and API items. This allows people to call the API from different places with the ApiRef, as well + as completely customize the client if required. Check the [README.md](https://github.com/backstage/backstage/blob/master/plugins/catalog-unprocessed-entities/README.md) to + note what needs to be added in order to use the new `catalogUnprocessedEntitiesApiRef` exported function. + +- a8fa79ccc105: Fix and improve documentation for the unprocessed entities modules. + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-cicd-statistics@0.1.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/plugin-cicd-statistics@0.1.22-next.0 + +## @backstage/plugin-circleci@0.3.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-cloudbuild@0.3.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-code-climate@0.1.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-code-coverage@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-code-coverage-backend@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + +## @backstage/plugin-codescene@0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-config-schema@0.1.43-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + +## @backstage/plugin-cost-insights@0.12.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-cost-insights-common@0.1.1 + +## @backstage/plugin-devtools@0.1.2-next.0 + +### Patch Changes + +- 5969639fd075: Allow specifying custom title for `DevToolsLayout` +- 2c4869473155: Updated the `README` with instructions on how to integrate the Catalog Unprocessed Entities plugin as a tab within DevTools +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-devtools-common@0.1.2-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + +## @backstage/plugin-devtools-backend@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-devtools-common@0.1.2-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + +## @backstage/plugin-devtools-common@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-dynatrace@6.0.1-next.0 + +### Patch Changes + +- 3424cbfe5f4a: updated the link that the "View Entity in Dynatrace" redirects the user to. +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-entity-feedback@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-entity-feedback-common@0.1.1 + +## @backstage/plugin-entity-feedback-backend@0.1.5-next.0 + +### Patch Changes + +- 5c1c10adac8f: Added support for the new backend system +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-entity-feedback-common@0.1.1 + +## @backstage/plugin-entity-validation@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-events-backend@0.2.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-events-backend-module-aws-sqs@0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-events-backend-module-azure@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-events-backend-module-gerrit@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-events-backend-module-github@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-events-backend-module-gitlab@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-events-backend-test-utils@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.8-next.0 + +## @backstage/plugin-events-node@0.2.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + +## @backstage/plugin-explore@0.4.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.29 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + +## @backstage/plugin-explore-backend@0.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-backend-module-explore@0.1.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-firehydrant@0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-fossa@0.2.52-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-gcalendar@0.3.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-gcp-projects@0.3.39-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-git-release-manager@0.3.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + +## @backstage/plugin-github-actions@0.6.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-github-deployments@0.1.51-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-github-issues@0.2.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-github-pull-requests-board@0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-gitops-profiles@0.3.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-gocd@0.1.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-graphiql@0.2.52-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-graphql-backend@0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-graphql@0.3.22-next.0 + +## @backstage/plugin-graphql-voyager@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-home@0.5.4-next.0 + +### Patch Changes + +- 88c62048fcbd: fix: update plugin home dependency for `@rjsf/material-ui` to `@rjsf/material-ui-v5` +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-home-react@0.1.1-next.0 + +## @backstage/plugin-home-react@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + +## @backstage/plugin-ilert@0.2.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-jenkins@0.8.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-jenkins-common@0.1.17-next.0 + +## @backstage/plugin-jenkins-backend@0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-jenkins-common@0.1.17-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + +## @backstage/plugin-jenkins-common@0.1.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-kafka@0.3.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-kafka-backend@0.2.40-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-kubernetes@0.9.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-kubernetes-common@0.6.5-next.0 + +## @backstage/plugin-kubernetes-backend@0.11.2-next.0 + +### Patch Changes + +- faac6b7425b2: Update readme with a valid link to k8s documentation +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-kubernetes-common@0.6.5-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + +## @backstage/plugin-kubernetes-common@0.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-lighthouse@0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-lighthouse-common@0.1.2 + +## @backstage/plugin-lighthouse-backend@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-lighthouse-common@0.1.2 + +## @backstage/plugin-linguist@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-linguist-common@0.1.0 + +## @backstage/plugin-linguist-backend@0.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-linguist-common@0.1.0 + +## @backstage/plugin-microsoft-calendar@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-newrelic@0.3.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-newrelic-dashboard@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-nomad@0.1.1-next.0 + +### Patch Changes + +- 68531cc70e1f: Break some internal circular import chains +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-nomad-backend@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-octopus-deploy@0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-org@0.6.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-org-react@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-pagerduty@0.6.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-home-react@0.1.1-next.0 + +## @backstage/plugin-periskop@0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-periskop-backend@0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-permission-backend@0.5.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + +## @backstage/plugin-permission-common@0.7.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/plugin-permission-node@0.7.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-permission-react@0.4.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-playlist@0.1.12-next.0 + +### Patch Changes + +- 68531cc70e1f: Break some internal circular import chains +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + - @backstage/plugin-playlist-common@0.1.8-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + +## @backstage/plugin-playlist-backend@0.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-playlist-common@0.1.8-next.0 + +## @backstage/plugin-playlist-common@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-proxy-backend@0.2.41-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-puppetdb@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-rollbar@0.4.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-rollbar-backend@0.1.44-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-scaffolder@1.14.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + - @backstage/plugin-scaffolder-react@1.5.1-next.0 + +## @backstage/plugin-scaffolder-backend@1.15.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.23-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + +## @backstage/plugin-scaffolder-common@1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-scaffolder-node@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + +## @backstage/plugin-scaffolder-react@1.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + +## @backstage/plugin-search@1.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + +## @backstage/plugin-search-backend@1.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-search-backend-module-catalog@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-search-backend-module-elasticsearch@1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-search-backend-module-explore@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-search-backend-module-pg@0.5.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-search-backend-module-techdocs@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-techdocs-node@1.7.3-next.0 + +## @backstage/plugin-search-backend-node@1.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-search-common@1.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + +## @backstage/plugin-search-react@1.6.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-sentry@0.5.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-shortcuts@0.3.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + +## @backstage/plugin-sonarqube@0.7.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-sonarqube-react@0.1.7-next.0 + +## @backstage/plugin-sonarqube-backend@0.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-sonarqube-react@0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + +## @backstage/plugin-splunk-on-call@0.4.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-stack-overflow@0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-home-react@0.1.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + +## @backstage/plugin-stack-overflow-backend@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-stackstorm@0.1.4-next.0 + +### Patch Changes + +- 1745959daf98: Add props to StackstormHome for Header Customization +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-tech-insights@0.3.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-tech-insights-common@0.2.11 + +## @backstage/plugin-tech-insights-backend@0.5.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + - @backstage/plugin-tech-insights-node@0.4.5-next.0 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.31-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-tech-insights-common@0.2.11 + - @backstage/plugin-tech-insights-node@0.4.5-next.0 + +## @backstage/plugin-tech-insights-node@0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + +## @backstage/plugin-tech-radar@0.6.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @backstage/plugin-techdocs@1.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/test-utils@1.4.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + - @backstage/plugin-techdocs@1.6.5-next.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + +## @backstage/plugin-techdocs-backend@1.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-techdocs-node@1.7.3-next.0 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + +## @backstage/plugin-techdocs-node@1.7.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + +## @backstage/plugin-techdocs-react@1.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/version-bridge@1.0.4 + +## @backstage/plugin-todo@0.2.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-todo-backend@0.1.44-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + +## @backstage/plugin-user-settings@0.7.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-user-settings-backend@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + +## @backstage/plugin-vault@0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @backstage/plugin-vault-backend@0.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-xcmetrics@0.2.40-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## example-app@0.2.85-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-devtools@0.1.2-next.0 + - @backstage/cli@0.22.9-next.0 + - @backstage/plugin-catalog-unprocessed-entities@0.1.1-next.0 + - @backstage/plugin-stackstorm@0.1.4-next.0 + - @backstage/plugin-dynatrace@6.0.1-next.0 + - @backstage/plugin-home@0.5.4-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/plugin-playlist@0.1.12-next.0 + - @backstage/plugin-nomad@0.1.1-next.0 + - @backstage/app-defaults@1.4.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-adr@0.6.3-next.0 + - @backstage/plugin-airbrake@0.3.20-next.0 + - @backstage/plugin-apache-airflow@0.2.13-next.0 + - @backstage/plugin-api-docs@0.9.6-next.0 + - @backstage/plugin-azure-devops@0.3.2-next.0 + - @backstage/plugin-azure-sites@0.1.9-next.0 + - @backstage/plugin-badges@0.2.44-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-graph@0.2.32-next.0 + - @backstage/plugin-catalog-import@0.9.10-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-circleci@0.3.20-next.0 + - @backstage/plugin-cloudbuild@0.3.20-next.0 + - @backstage/plugin-code-coverage@0.2.13-next.0 + - @backstage/plugin-cost-insights@0.12.9-next.0 + - @backstage/plugin-entity-feedback@0.2.3-next.0 + - @backstage/plugin-explore@0.4.6-next.0 + - @backstage/plugin-gcalendar@0.3.16-next.0 + - @backstage/plugin-gcp-projects@0.3.39-next.0 + - @backstage/plugin-github-actions@0.6.1-next.0 + - @backstage/plugin-gocd@0.1.26-next.0 + - @backstage/plugin-graphiql@0.2.52-next.0 + - @backstage/plugin-jenkins@0.8.2-next.0 + - @backstage/plugin-kafka@0.3.20-next.0 + - @backstage/plugin-kubernetes@0.9.3-next.0 + - @backstage/plugin-lighthouse@0.4.5-next.0 + - @backstage/plugin-linguist@0.1.5-next.0 + - @backstage/plugin-linguist-common@0.1.0 + - @backstage/plugin-microsoft-calendar@0.1.5-next.0 + - @backstage/plugin-newrelic@0.3.38-next.0 + - @backstage/plugin-newrelic-dashboard@0.2.13-next.0 + - @backstage/plugin-octopus-deploy@0.2.2-next.0 + - @backstage/plugin-org@0.6.10-next.0 + - @backstage/plugin-pagerduty@0.6.1-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + - @backstage/plugin-puppetdb@0.1.3-next.0 + - @backstage/plugin-rollbar@0.4.20-next.0 + - @backstage/plugin-scaffolder@1.14.1-next.0 + - @backstage/plugin-scaffolder-react@1.5.1-next.0 + - @backstage/plugin-search@1.3.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + - @backstage/plugin-sentry@0.5.5-next.0 + - @backstage/plugin-shortcuts@0.3.12-next.0 + - @backstage/plugin-stack-overflow@0.1.18-next.0 + - @backstage/plugin-tech-insights@0.3.12-next.0 + - @backstage/plugin-tech-radar@0.6.6-next.0 + - @backstage/plugin-techdocs@1.6.5-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.15-next.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + - @backstage/plugin-todo@0.2.22-next.0 + - @backstage/plugin-user-settings@0.7.5-next.0 + - @internal/plugin-catalog-customized@0.0.12-next.0 + +## example-backend@0.2.85-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.1.1-next.0 + - @backstage/plugin-entity-feedback-backend@0.1.5-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/plugin-kubernetes-backend@0.11.2-next.0 + - example-app@0.2.85-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-adr-backend@0.3.5-next.0 + - @backstage/plugin-app-backend@0.3.47-next.0 + - @backstage/plugin-auth-backend@0.18.5-next.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-azure-devops-backend@0.3.26-next.0 + - @backstage/plugin-azure-sites-backend@0.1.9-next.0 + - @backstage/plugin-badges-backend@0.2.2-next.0 + - @backstage/plugin-code-coverage-backend@0.2.13-next.0 + - @backstage/plugin-devtools-backend@0.1.2-next.0 + - @backstage/plugin-events-backend@0.2.8-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + - @backstage/plugin-explore-backend@0.0.9-next.0 + - @backstage/plugin-graphql-backend@0.1.37-next.0 + - @backstage/plugin-jenkins-backend@0.2.2-next.0 + - @backstage/plugin-kafka-backend@0.2.40-next.0 + - @backstage/plugin-lighthouse-backend@0.2.3-next.0 + - @backstage/plugin-linguist-backend@0.3.1-next.0 + - @backstage/plugin-nomad-backend@0.1.1-next.0 + - @backstage/plugin-permission-backend@0.5.22-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-playlist-backend@0.3.3-next.0 + - @backstage/plugin-proxy-backend@0.2.41-next.0 + - @backstage/plugin-rollbar-backend@0.1.44-next.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.1.4-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.16-next.0 + - @backstage/plugin-search-backend@1.3.3-next.0 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.2-next.0 + - @backstage/plugin-search-backend-module-pg@0.5.8-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-tech-insights-backend@0.5.13-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.31-next.0 + - @backstage/plugin-tech-insights-node@0.4.5-next.0 + - @backstage/plugin-techdocs-backend@1.6.4-next.0 + - @backstage/plugin-todo-backend@0.1.44-next.0 + +## example-backend-next@0.0.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend-module-unprocessed@0.1.1-next.0 + - @backstage/plugin-entity-feedback-backend@0.1.5-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-kubernetes-backend@0.11.2-next.0 + - @backstage/backend-defaults@0.1.12-next.0 + - @backstage/plugin-app-backend@0.3.47-next.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-backend@0.5.22-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-search-backend@1.3.3-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.3-next.0 + - @backstage/plugin-search-backend-module-explore@0.1.3-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.3-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-techdocs-backend@1.6.4-next.0 + - @backstage/plugin-todo-backend@0.1.44-next.0 + +## e2e-test@0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.3-next.0 + - @backstage/errors@1.2.1-next.0 + - @backstage/cli-common@0.1.12 + +## techdocs-cli-embedded-app@0.2.84-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.9-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/app-defaults@1.4.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/test-utils@1.4.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-techdocs@1.6.5-next.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + +## @internal/plugin-catalog-customized@0.0.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + +## @internal/plugin-todo-list@1.0.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + +## @internal/plugin-todo-list-backend@1.0.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + +## @internal/plugin-todo-list-common@1.0.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.7-next.0 diff --git a/package.json b/package.json index bee5c1b574..376889b47d 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.15.0", + "version": "1.16.0-next.0", "dependencies": { "@backstage/errors": "workspace:^", "@manypkg/get-packages": "^1.1.3" diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index cc0edfe497..210d1a0426 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/app-defaults +## 1.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + ## 1.4.0 ### Minor Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 305e77cdf7..4efe2191f3 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.4.0", + "version": "1.4.1-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 1e161f23f6..cd404b149b 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,80 @@ # example-app +## 0.2.85-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-devtools@0.1.2-next.0 + - @backstage/cli@0.22.9-next.0 + - @backstage/plugin-catalog-unprocessed-entities@0.1.1-next.0 + - @backstage/plugin-stackstorm@0.1.4-next.0 + - @backstage/plugin-dynatrace@6.0.1-next.0 + - @backstage/plugin-home@0.5.4-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/plugin-playlist@0.1.12-next.0 + - @backstage/plugin-nomad@0.1.1-next.0 + - @backstage/app-defaults@1.4.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-adr@0.6.3-next.0 + - @backstage/plugin-airbrake@0.3.20-next.0 + - @backstage/plugin-apache-airflow@0.2.13-next.0 + - @backstage/plugin-api-docs@0.9.6-next.0 + - @backstage/plugin-azure-devops@0.3.2-next.0 + - @backstage/plugin-azure-sites@0.1.9-next.0 + - @backstage/plugin-badges@0.2.44-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-graph@0.2.32-next.0 + - @backstage/plugin-catalog-import@0.9.10-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-circleci@0.3.20-next.0 + - @backstage/plugin-cloudbuild@0.3.20-next.0 + - @backstage/plugin-code-coverage@0.2.13-next.0 + - @backstage/plugin-cost-insights@0.12.9-next.0 + - @backstage/plugin-entity-feedback@0.2.3-next.0 + - @backstage/plugin-explore@0.4.6-next.0 + - @backstage/plugin-gcalendar@0.3.16-next.0 + - @backstage/plugin-gcp-projects@0.3.39-next.0 + - @backstage/plugin-github-actions@0.6.1-next.0 + - @backstage/plugin-gocd@0.1.26-next.0 + - @backstage/plugin-graphiql@0.2.52-next.0 + - @backstage/plugin-jenkins@0.8.2-next.0 + - @backstage/plugin-kafka@0.3.20-next.0 + - @backstage/plugin-kubernetes@0.9.3-next.0 + - @backstage/plugin-lighthouse@0.4.5-next.0 + - @backstage/plugin-linguist@0.1.5-next.0 + - @backstage/plugin-linguist-common@0.1.0 + - @backstage/plugin-microsoft-calendar@0.1.5-next.0 + - @backstage/plugin-newrelic@0.3.38-next.0 + - @backstage/plugin-newrelic-dashboard@0.2.13-next.0 + - @backstage/plugin-octopus-deploy@0.2.2-next.0 + - @backstage/plugin-org@0.6.10-next.0 + - @backstage/plugin-pagerduty@0.6.1-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + - @backstage/plugin-puppetdb@0.1.3-next.0 + - @backstage/plugin-rollbar@0.4.20-next.0 + - @backstage/plugin-scaffolder@1.14.1-next.0 + - @backstage/plugin-scaffolder-react@1.5.1-next.0 + - @backstage/plugin-search@1.3.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + - @backstage/plugin-sentry@0.5.5-next.0 + - @backstage/plugin-shortcuts@0.3.12-next.0 + - @backstage/plugin-stack-overflow@0.1.18-next.0 + - @backstage/plugin-tech-insights@0.3.12-next.0 + - @backstage/plugin-tech-radar@0.6.6-next.0 + - @backstage/plugin-techdocs@1.6.5-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.15-next.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + - @backstage/plugin-todo@0.2.22-next.0 + - @backstage/plugin-user-settings@0.7.5-next.0 + - @internal/plugin-catalog-customized@0.0.12-next.0 + ## 0.2.84 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index c6bbb65b13..51d00ba9b0 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.84", + "version": "0.2.85-next.0", "private": true, "backstage": { "role": "frontend" diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 2b6fc3b0db..bc946418e0 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/backend-app-api +## 0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + ## 0.4.4 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 22a63ba888..dc1388d0a4 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-app-api", "description": "Core API used by Backstage backend apps", - "version": "0.4.4", + "version": "0.4.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index f76f741f4c..6689f2d96f 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/backend-common +## 0.19.1-next.0 + +### Patch Changes + +- 787ddcc5ef99: use `Readable.from` to explicitly convert the `buffer` from `node-fetch` to a `Readable` stream +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-app-api@0.4.5-next.0 + - @backstage/backend-dev-utils@0.1.1 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/types@1.1.0 + ## 0.19.0 ### Minor Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index d71666578a..110bd259c0 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.19.0", + "version": "0.19.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index 1661c90c34..5be03a5fd0 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-defaults +## 0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-app-api@0.4.5-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + ## 0.1.11 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 8d6bc459c3..133d381bd2 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-defaults", "description": "Backend defaults used by Backstage backend apps", - "version": "0.1.11", + "version": "0.1.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index c0de630765..3e5de4d355 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,29 @@ # example-backend-next +## 0.0.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend-module-unprocessed@0.1.1-next.0 + - @backstage/plugin-entity-feedback-backend@0.1.5-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-kubernetes-backend@0.11.2-next.0 + - @backstage/backend-defaults@0.1.12-next.0 + - @backstage/plugin-app-backend@0.3.47-next.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-backend@0.5.22-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-search-backend@1.3.3-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.3-next.0 + - @backstage/plugin-search-backend-module-explore@0.1.3-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.3-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-techdocs-backend@1.6.4-next.0 + - @backstage/plugin-todo-backend@0.1.44-next.0 + ## 0.0.12 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index bc7d5e666f..53b43a0172 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.12", + "version": "0.0.13-next.0", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index ef3cf6691f..770a1db864 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-plugin-api +## 0.5.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 0.5.3 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 582912d8a8..b97be5eb69 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-api", "description": "Core API used by Backstage backend plugins", - "version": "0.5.3", + "version": "0.5.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index 55e23501ae..6a579588cc 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-tasks +## 0.5.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 0.5.3 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 1b89dd65aa..7da3910ae4 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.5.3", + "version": "0.5.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index 158909537e..c92acf477c 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-test-utils +## 0.1.39-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-app-api@0.4.5-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + ## 0.1.38 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index d5a59a4252..6600ba7d2a 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.1.38", + "version": "0.1.39-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 8f590d21dc..0632b08b03 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,60 @@ # example-backend +## 0.2.85-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.1.1-next.0 + - @backstage/plugin-entity-feedback-backend@0.1.5-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/plugin-kubernetes-backend@0.11.2-next.0 + - example-app@0.2.85-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-adr-backend@0.3.5-next.0 + - @backstage/plugin-app-backend@0.3.47-next.0 + - @backstage/plugin-auth-backend@0.18.5-next.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-azure-devops-backend@0.3.26-next.0 + - @backstage/plugin-azure-sites-backend@0.1.9-next.0 + - @backstage/plugin-badges-backend@0.2.2-next.0 + - @backstage/plugin-code-coverage-backend@0.2.13-next.0 + - @backstage/plugin-devtools-backend@0.1.2-next.0 + - @backstage/plugin-events-backend@0.2.8-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + - @backstage/plugin-explore-backend@0.0.9-next.0 + - @backstage/plugin-graphql-backend@0.1.37-next.0 + - @backstage/plugin-jenkins-backend@0.2.2-next.0 + - @backstage/plugin-kafka-backend@0.2.40-next.0 + - @backstage/plugin-lighthouse-backend@0.2.3-next.0 + - @backstage/plugin-linguist-backend@0.3.1-next.0 + - @backstage/plugin-nomad-backend@0.1.1-next.0 + - @backstage/plugin-permission-backend@0.5.22-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-playlist-backend@0.3.3-next.0 + - @backstage/plugin-proxy-backend@0.2.41-next.0 + - @backstage/plugin-rollbar-backend@0.1.44-next.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.1.4-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.16-next.0 + - @backstage/plugin-search-backend@1.3.3-next.0 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.2-next.0 + - @backstage/plugin-search-backend-module-pg@0.5.8-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-tech-insights-backend@0.5.13-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.31-next.0 + - @backstage/plugin-tech-insights-node@0.4.5-next.0 + - @backstage/plugin-techdocs-backend@1.6.4-next.0 + - @backstage/plugin-todo-backend@0.1.44-next.0 + ## 0.2.84 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 67c397953d..5ab278b9c7 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.84", + "version": "0.2.85-next.0", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/catalog-client/CHANGELOG.md b/packages/catalog-client/CHANGELOG.md index 23f2c0ce59..c4f10cf903 100644 --- a/packages/catalog-client/CHANGELOG.md +++ b/packages/catalog-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/catalog-client +## 1.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + ## 1.4.2 ### Patch Changes diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index eea216ca46..3be4462d84 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-client", "description": "An isomorphic client for the catalog backend", - "version": "1.4.2", + "version": "1.4.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/catalog-model/CHANGELOG.md b/packages/catalog-model/CHANGELOG.md index ee09156011..9a1f5274a9 100644 --- a/packages/catalog-model/CHANGELOG.md +++ b/packages/catalog-model/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/catalog-model +## 1.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 1.4.0 ### Minor Changes diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index bcc3e07b0d..b27994f60d 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-model", "description": "Types and validators that help describe the model of a Backstage Catalog", - "version": "1.4.0", + "version": "1.4.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli-node/CHANGELOG.md b/packages/cli-node/CHANGELOG.md index 6c52cb94d2..b1269bcc23 100644 --- a/packages/cli-node/CHANGELOG.md +++ b/packages/cli-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/cli-node +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/types@1.1.0 + ## 0.1.1 ### Patch Changes diff --git a/packages/cli-node/package.json b/packages/cli-node/package.json index 1b109041c7..aa1f79448a 100644 --- a/packages/cli-node/package.json +++ b/packages/cli-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli-node", "description": "Node.js library for Backstage CLIs", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 34c7f2e7e4..8a89a9e312 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/cli +## 0.22.9-next.0 + +### Patch Changes + +- 6adb6f41711a: Fixed the `--alwaysYarnPack` flag on the`backstage-cli build-workspace` command. +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.2-next.0 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/eslint-plugin@0.1.3 + - @backstage/integration@1.5.1-next.0 + - @backstage/release-manifests@0.0.9 + - @backstage/types@1.1.0 + ## 0.22.8 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 75999152e2..ae59c998b0 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.22.8", + "version": "0.22.9-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/config-loader/CHANGELOG.md b/packages/config-loader/CHANGELOG.md index daaa2078fe..7d7e827882 100644 --- a/packages/config-loader/CHANGELOG.md +++ b/packages/config-loader/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/config-loader +## 1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 1.3.1 ### Patch Changes diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 2e8e4aee2e..e44b9824c2 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "1.3.1", + "version": "1.3.2-next.0", "publishConfig": { "access": "public", "main": "dist/index.cjs.js", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 377ec0c72e..9599bad333 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/core-components +## 0.13.3-next.0 + +### Patch Changes + +- 68531cc70e1f: Break some internal circular import chains +- a011d2316a58: Fix keyboard navigation & focus highlight on Select component. +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/version-bridge@1.0.4 + ## 0.13.2 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 57eee79dad..bedfbe8be9 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.13.2", + "version": "0.13.3-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index cf92a30050..1fa48bff7a 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/create-app +## 0.5.3-next.0 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.12 + ## 0.5.2 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 279913ac1d..ce223bcf8b 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.5.2", + "version": "0.5.3-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 65405b221e..fa598c6d21 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/dev-utils +## 1.0.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/app-defaults@1.4.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/test-utils@1.4.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 1.0.16 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index d2ffdb6091..6d1ffc85d3 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.16", + "version": "1.0.17-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index 48cc255757..f216ca3548 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,14 @@ # e2e-test +## 0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.3-next.0 + - @backstage/errors@1.2.1-next.0 + - @backstage/cli-common@0.1.12 + ## 0.2.4 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index d98cdd792c..e684a08fa1 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -1,7 +1,7 @@ { "name": "e2e-test", "description": "E2E test for verifying Backstage packages", - "version": "0.2.4", + "version": "0.2.5-next.0", "private": true, "backstage": { "role": "cli" diff --git a/packages/errors/CHANGELOG.md b/packages/errors/CHANGELOG.md index ab1367aaf2..5cdcf4187f 100644 --- a/packages/errors/CHANGELOG.md +++ b/packages/errors/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/errors +## 1.2.1-next.0 + +### Patch Changes + +- e205b3e6ede8: Set `this.name` in all error classes that extend `CustomErrorBase` class to their actual name +- Updated dependencies + - @backstage/types@1.1.0 + ## 1.2.0 ### Minor Changes diff --git a/packages/errors/package.json b/packages/errors/package.json index 9f611eef8a..9d49e494f7 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/errors", "description": "Common utilities for error handling within Backstage", - "version": "1.2.0", + "version": "1.2.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/integration-aws-node/CHANGELOG.md b/packages/integration-aws-node/CHANGELOG.md index 461e3c4fe6..aad622bce5 100644 --- a/packages/integration-aws-node/CHANGELOG.md +++ b/packages/integration-aws-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/integration-aws-node +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + ## 0.1.4 ### Patch Changes diff --git a/packages/integration-aws-node/package.json b/packages/integration-aws-node/package.json index ef99b51a57..079ea58614 100644 --- a/packages/integration-aws-node/package.json +++ b/packages/integration-aws-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-aws-node", "description": "Helpers for fetching AWS account credentials", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index c8ae49d171..21a1181511 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/integration-react +## 1.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + ## 1.1.14 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 276a1ea8bd..5c33e4dff0 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.14", + "version": "1.1.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 851e023b3a..cd0c26c044 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/integration +## 1.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + ## 1.5.0 ### Minor Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index 8cf8cc42dd..9116bde89f 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.5.0", + "version": "1.5.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 7112b9346a..46e90fd720 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/repo-tools +## 0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.2-next.0 + ## 0.3.1 ### Patch Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 6c6cb574c2..9af31e18e5 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/repo-tools", "description": "CLI for Backstage repo tooling ", - "version": "0.3.1", + "version": "0.3.2-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 950c8711b1..49a4828c0d 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,24 @@ # techdocs-cli-embedded-app +## 0.2.84-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.9-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/app-defaults@1.4.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/test-utils@1.4.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-techdocs@1.6.5-next.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + ## 0.2.83 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 1bf87f15ca..0ff402d9f4 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -1,6 +1,6 @@ { "name": "techdocs-cli-embedded-app", - "version": "0.2.83", + "version": "0.2.84-next.0", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index da33defaca..2e35cb6ce1 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,16 @@ # @techdocs/cli +## 1.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/plugin-techdocs-node@1.7.3-next.0 + ## 1.4.3 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index a3fef8febb..4805c27448 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.4.3", + "version": "1.4.4-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index de86ae97fa..6492a744f7 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/test-utils +## 1.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.8 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + ## 1.4.0 ### Minor Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 5f57fa0dd2..b68f25266b 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "1.4.0", + "version": "1.4.1-next.0", "publishConfig": { "access": "public" }, diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index 318a5ab2f2..0f7185c037 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-adr-backend +## 0.3.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-adr-common@0.2.11-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 0.3.4 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 4bd7aa3956..ec60ae7fa6 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr-backend", - "version": "0.3.4", + "version": "0.3.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md index b33ecdb3bb..a48d7a2b9d 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-adr-common +## 0.2.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 0.2.10 ### Patch Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index 0764eac854..30c4a2ad11 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.2.10", + "version": "0.2.11-next.0", "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 9b1bad0d3a..83c03faa80 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-adr +## 0.6.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-adr-common@0.2.11-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + ## 0.6.2 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 4c4458e64f..b9111fa80a 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.6.2", + "version": "0.6.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md index 4c5ca9f4b4..bd6df7b3eb 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-airbrake-backend +## 0.2.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + ## 0.2.19 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index 3159e7609e..5d0f870583 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake-backend", - "version": "0.2.19", + "version": "0.2.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index 7be3d724cd..3bbd0cce01 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-airbrake +## 0.3.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/dev-utils@1.0.17-next.0 + - @backstage/test-utils@1.4.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.3.19 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index f284d4be8c..5c01e3614c 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.19", + "version": "0.3.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md index 978c0780e1..77ac0773bd 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-allure +## 0.1.36-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.35 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 9de1ed9d0f..9d18b48b55 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.35", + "version": "0.1.36-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md index 2980f4e984..1d4d5503a8 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-analytics-module-ga +## 0.1.31-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.1.30 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 1bdd7fee2e..7e16e8fde6 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.30", + "version": "0.1.31-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/analytics-module-ga4/CHANGELOG.md b/plugins/analytics-module-ga4/CHANGELOG.md index 4b25f29010..5787ee4598 100644 --- a/plugins/analytics-module-ga4/CHANGELOG.md +++ b/plugins/analytics-module-ga4/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-analytics-module-ga4 +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/analytics-module-ga4/package.json b/plugins/analytics-module-ga4/package.json index 4d6b603db0..e4da26e205 100644 --- a/plugins/analytics-module-ga4/package.json +++ b/plugins/analytics-module-ga4/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-ga4", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md index 3200419518..8728876d60 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-apache-airflow +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + ## 0.2.12 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index f8f4acdca7..088db151d6 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.12", + "version": "0.2.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index 25e4b3b314..7727fdb12b 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-api-docs +## 0.9.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.9.5 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 73e4cfa9f5..8715788663 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.9.5", + "version": "0.9.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/apollo-explorer/CHANGELOG.md b/plugins/apollo-explorer/CHANGELOG.md index ab1b94c129..e52c044926 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-apollo-explorer +## 0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.1.12 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index 5f6d38b3b4..e2812944a9 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.12", + "version": "0.1.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index f6ff48ff56..4cb03c2976 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-app-backend +## 0.3.47-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/types@1.1.0 + ## 0.3.46 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 46cf54d080..9c8a68a74f 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-backend", "description": "A Backstage backend plugin that serves the Backstage frontend app", - "version": "0.3.46", + "version": "0.3.47-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index b43f2bb460..5c72906f79 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-auth-backend +## 0.18.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + ## 0.18.4 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 436e8ad125..f9c34f2cdf 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.18.4", + "version": "0.18.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md index 5652585c61..418c6226eb 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-node +## 0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + ## 0.2.15 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index e2ff24ed38..1216b1b6f0 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-node", - "version": "0.2.15", + "version": "0.2.16-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md index df08b3a53f..3635266575 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-azure-devops-backend +## 0.3.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.3.25 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index bb64ad84db..00af05df92 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops-backend", - "version": "0.3.25", + "version": "0.3.26-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md index 81202cf771..f880843479 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-azure-devops +## 0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-azure-devops-common@0.3.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.3.1 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index eaf20e035e..a7f3ca3876 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.3.1", + "version": "0.3.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites-backend/CHANGELOG.md b/plugins/azure-sites-backend/CHANGELOG.md index 5c4733f964..d04a95f30e 100644 --- a/plugins/azure-sites-backend/CHANGELOG.md +++ b/plugins/azure-sites-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-azure-sites-backend +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json index 8f0e89da8e..8ea6d434f4 100644 --- a/plugins/azure-sites-backend/package.json +++ b/plugins/azure-sites-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-sites-backend", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites/CHANGELOG.md b/plugins/azure-sites/CHANGELOG.md index cf98bbf413..50708e1210 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-azure-sites +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-azure-sites-common@0.1.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index 210bd84e2d..16fa82f665 100644 --- a/plugins/azure-sites/package.json +++ b/plugins/azure-sites/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-sites", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index b9077e8998..c569e9f71d 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-badges-backend +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + ## 0.2.1 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index decaeeaf1b..8af1b13096 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges-backend", "description": "A Backstage backend plugin that generates README badges for your entities", - "version": "0.2.1", + "version": "0.2.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index 6cfa746feb..c58c201702 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-badges +## 0.2.44-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.43 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index 95eae4441d..b00ec0d563 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.43", + "version": "0.2.44-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index 1680567b85..7df18a3a98 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bazaar-backend +## 0.2.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + ## 0.2.9 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 3993e823f3..ee7eeb2f48 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar-backend", - "version": "0.2.9", + "version": "0.2.10-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index 79fb2122af..f0dbacd17c 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-bazaar +## 0.2.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.9-next.0 + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.10 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 8b764ba05f..f9678b90f1 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.2.10", + "version": "0.2.11-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md index 832f031f2d..7df2d6f2c5 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.2.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.5.1-next.0 + ## 0.2.7 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 6e37633ea4..13170ea714 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitbucket-cloud-common", "description": "Common functionalities for bitbucket-cloud plugins", - "version": "0.2.7", + "version": "0.2.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index ef824231fc..b98ba185f8 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bitrise +## 0.1.47-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.46 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 0c68413179..d77d1a1bf2 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.46", + "version": "0.1.47-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index 3ce3ae827f..ae96f73587 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-kubernetes-common@0.6.5-next.0 + ## 0.2.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index a75036e487..44a9260716 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", "description": "A Backstage catalog backend module that helps integrate towards AWS", - "version": "0.2.1", + "version": "0.2.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index 9e577e7bdc..01e7048a41 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + ## 0.1.17 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 30a207952c..d0e26e6f2a 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", "description": "A Backstage catalog backend module that helps integrate towards Azure", - "version": "0.1.17", + "version": "0.1.18-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index d0bc5d3708..6405c36fb8 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.8-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.1.13 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index c271230c73..43c83a4eb6 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud", - "version": "0.1.13", + "version": "0.1.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index 8fc806bf27..00bdde9d08 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + ## 0.1.11 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 15e9ef0038..96bc28fcb6 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.1.11", + "version": "0.1.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md index 13ab3b8816..e0ae1489c0 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.2.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.8-next.0 + ## 0.2.13 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index d021291155..3f12d61eaf 100644 --- a/plugins/catalog-backend-module-bitbucket/package.json +++ b/plugins/catalog-backend-module-bitbucket/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket", - "version": "0.2.13", + "version": "0.2.14-next.0", "deprecated": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 4e5f8927d7..756c59645c 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + ## 0.1.14 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 232c02b684..8afc371569 100644 --- a/plugins/catalog-backend-module-gerrit/package.json +++ b/plugins/catalog-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gerrit", - "version": "0.1.14", + "version": "0.1.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index 128e77c8b9..2bbad4fd3e 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-catalog-backend-module-github +## 0.3.2-next.0 + +### Patch Changes + +- 68531cc70e1f: Break some internal circular import chains +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.3.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index d3265efbec..bb08386642 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.3.1", + "version": "0.3.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index 5f84063c2a..7b90cdaca8 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + ## 0.2.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 25df604cd9..3b303a0bf9 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.2.2", + "version": "0.2.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index 63d850d68a..cb5bb7411a 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.3.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-events-node@0.2.8-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 0.3.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index 1d14965d4a..8478271e4e 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", "description": "An entity provider for streaming large asset sources into the catalog", - "version": "0.3.3", + "version": "0.3.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 4a8fb212a2..172d5a7962 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.5.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + ## 0.5.13 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 0bf799cb39..dbf1a3c02b 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", "description": "A Backstage catalog backend module that helps integrate towards LDAP", - "version": "0.5.13", + "version": "0.5.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index 54fba3e580..b8ad90175e 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15-next.0 + ## 0.5.5 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index a480450d22..978c2a7676 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", - "version": "0.5.5", + "version": "0.5.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index 4a5121d4dc..a7451f8046 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + ## 0.1.12 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index fda0603aa8..20cc7a8910 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", - "version": "0.1.12", + "version": "0.1.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md index 8d5d5d18ce..c3f70bc023 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 0.1.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index 6ce5d63b85..dd6d922adb 100644 --- a/plugins/catalog-backend-module-puppetdb/package.json +++ b/plugins/catalog-backend-module-puppetdb/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-puppetdb", "description": "A Backstage catalog backend module that helps integrate towards PuppetDB", - "version": "0.1.3", + "version": "0.1.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md index 8b0390aff2..25d5743bad 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.1.1-next.0 + +### Patch Changes + +- a8fa79ccc105: Fix and improve documentation for the unprocessed entities modules. +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + ## 0.1.0 ### Minor Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index 5c2d19f61c..456969e2a9 100644 --- a/plugins/catalog-backend-module-unprocessed/package.json +++ b/plugins/catalog-backend-module-unprocessed/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-unprocessed", "description": "Backstage Catalog module to view unprocessed entities", - "version": "0.1.0", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index de0075c016..0ab4464456 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-catalog-backend +## 1.11.0-next.0 + +### Minor Changes + +- f06f0e46ba88: Support placeholder resolvers in the CatalogPlugin, also moves `PlaceholderResolver` and related types from `@backstage/plugin-catalog-backend` to `@backstage/plugin-catalog-node`. + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 1.10.0 ### Minor Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 5afaa938f3..ba48492208 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.10.0", + "version": "1.11.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index 84da127ae3..21e0917791 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-common +## 1.0.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 1.0.14 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index 156ebeb4a5..b1b03a4197 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.14", + "version": "1.0.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-customized/CHANGELOG.md b/plugins/catalog-customized/CHANGELOG.md index c3d2bdeacd..c707b912a9 100644 --- a/plugins/catalog-customized/CHANGELOG.md +++ b/plugins/catalog-customized/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-catalog-customized +## 0.0.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.0.11 ### Patch Changes diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index 4d9a218260..b178254d3c 100644 --- a/plugins/catalog-customized/package.json +++ b/plugins/catalog-customized/package.json @@ -1,7 +1,7 @@ { "name": "@internal/plugin-catalog-customized", "description": "The internal Backstage Customizable plugin for browsing the Backstage catalog", - "version": "0.0.11", + "version": "0.0.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index d03624f2e1..38863d49fa 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-graph +## 0.2.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.31 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index ebfe768029..782ce22ee4 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.31", + "version": "0.2.32-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-graphql/CHANGELOG.md b/plugins/catalog-graphql/CHANGELOG.md index 0545909026..c1f788a1d2 100644 --- a/plugins/catalog-graphql/CHANGELOG.md +++ b/plugins/catalog-graphql/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-graphql +## 0.3.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 0.3.21 ### Patch Changes diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index 2058b8b409..0ab507760b 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-graphql", "description": "An experimental Backstage catalog GraphQL module", - "version": "0.3.21", + "version": "0.3.22-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 4f7f3f6063..de07689df2 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-import +## 0.9.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.9.9 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index a0bff2f9c0..a87632e05b 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.9.9", + "version": "0.9.10-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index 72cb23669a..44395f6107 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-node +## 1.4.0-next.0 + +### Minor Changes + +- f06f0e46ba88: Support placeholder resolvers in the CatalogPlugin, also moves `PlaceholderResolver` and related types from `@backstage/plugin-catalog-backend` to `@backstage/plugin-catalog-node`. + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + ## 1.3.7 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 175447261f..449fc2836c 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-node", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", - "version": "1.3.7", + "version": "1.4.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index 9e21a7f67d..88df42e856 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-react +## 1.7.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + ## 1.7.0 ### Minor Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 0a90960cab..f74b9c0fc5 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.7.0", + "version": "1.7.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-unprocessed-entities/CHANGELOG.md b/plugins/catalog-unprocessed-entities/CHANGELOG.md index a17ce8e698..e17e0d87fa 100644 --- a/plugins/catalog-unprocessed-entities/CHANGELOG.md +++ b/plugins/catalog-unprocessed-entities/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-catalog-unprocessed-entities +## 0.1.1-next.0 + +### Patch Changes + +- 2c4869473155: The Catalog Unprocessed Entities plugin can now be integrated as a tab within the DevTools plugin + + - Added an export for `UnprocessedEntitiesContent` + - Updated the `README` with images of the features + - Adjusted the styles to fill in the available space + - Set the table page size to 20 as 40 was causing errors in the browser console + +- 57585d89f926: Export some types and API items. This allows people to call the API from different places with the ApiRef, as well + as completely customize the client if required. Check the [README.md](https://github.com/backstage/backstage/blob/master/plugins/catalog-unprocessed-entities/README.md) to + note what needs to be added in order to use the new `catalogUnprocessedEntitiesApiRef` exported function. +- a8fa79ccc105: Fix and improve documentation for the unprocessed entities modules. +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.1.0 ### Minor Changes diff --git a/plugins/catalog-unprocessed-entities/package.json b/plugins/catalog-unprocessed-entities/package.json index 0297220148..de5287c661 100644 --- a/plugins/catalog-unprocessed-entities/package.json +++ b/plugins/catalog-unprocessed-entities/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-unprocessed-entities", - "version": "0.1.0", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 447dccf24a..d6e3a62d40 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog +## 1.11.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + ## 1.11.2 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 58385a11ac..dc4d161b17 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.11.2", + "version": "1.11.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md index 4e0fab5bcc..af80e6ff12 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/plugin-cicd-statistics@0.1.22-next.0 + ## 0.1.15 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index e881a821b5..1ae6ad86d0 100644 --- a/plugins/cicd-statistics-module-gitlab/package.json +++ b/plugins/cicd-statistics-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics-module-gitlab", "description": "CI/CD Statistics plugin module; Gitlab CICD", - "version": "0.1.15", + "version": "0.1.16-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md index e079319d53..8a2734388d 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cicd-statistics +## 0.1.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.21 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 4275987a84..fea49294a8 100644 --- a/plugins/cicd-statistics/package.json +++ b/plugins/cicd-statistics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics", "description": "A frontend plugin visualizing CI/CD pipeline statistics (build time)", - "version": "0.1.21", + "version": "0.1.22-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index 7de19b2aaf..4876a85517 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-circleci +## 0.3.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.3.19 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 24b6940ca5..5d67134d2d 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.19", + "version": "0.3.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index 35eaf9dd1f..9009d28477 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-cloudbuild +## 0.3.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.3.19 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index ae09c25b8a..76ae80d4b6 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.19", + "version": "0.3.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md index 5e13681f46..cadc5aa7e5 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-code-climate +## 0.1.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.19 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 2d4bc5cb32..adb9cf72ef 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.19", + "version": "0.1.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index 2c48233cc4..c572d10c74 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-code-coverage-backend +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 7d68aadebc..aefc0f47bc 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage-backend", "description": "A Backstage backend plugin that helps you keep track of your code coverage", - "version": "0.2.12", + "version": "0.2.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index ec333a8fbf..e3c83cde4a 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-code-coverage +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 6652f27ac2..53e5210cad 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.12", + "version": "0.2.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md index 4b94c7075f..cb509d1f03 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-codescene +## 0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.1.14 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 101d54f4ec..5912af436e 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.14", + "version": "0.1.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 86a1aeddf4..606f289435 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-config-schema +## 0.1.43-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + ## 0.1.42 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 6552a0aad3..b5f6f8fd28 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.42", + "version": "0.1.43-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index 996f18e929..e375e8a973 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-cost-insights +## 0.12.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-cost-insights-common@0.1.1 + ## 0.12.8 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index fd6d037ca9..8855daa10b 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.12.8", + "version": "0.12.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/devtools-backend/CHANGELOG.md b/plugins/devtools-backend/CHANGELOG.md index 13798da8f0..18108e24ef 100644 --- a/plugins/devtools-backend/CHANGELOG.md +++ b/plugins/devtools-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-devtools-backend +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/config-loader@1.3.2-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-devtools-common@0.1.2-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index 6a0a5ee4b5..ba8529e650 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools-backend", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/devtools-common/CHANGELOG.md b/plugins/devtools-common/CHANGELOG.md index 685bb2dd16..8dd0d56069 100644 --- a/plugins/devtools-common/CHANGELOG.md +++ b/plugins/devtools-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-devtools-common +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/devtools-common/package.json b/plugins/devtools-common/package.json index 038e7fb830..13d16a75de 100644 --- a/plugins/devtools-common/package.json +++ b/plugins/devtools-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-devtools-common", "description": "Common functionalities for the devtools plugin", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/devtools/CHANGELOG.md b/plugins/devtools/CHANGELOG.md index 981e03488e..ed2ec3cfff 100644 --- a/plugins/devtools/CHANGELOG.md +++ b/plugins/devtools/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-devtools +## 0.1.2-next.0 + +### Patch Changes + +- 5969639fd075: Allow specifying custom title for `DevToolsLayout` +- 2c4869473155: Updated the `README` with instructions on how to integrate the Catalog Unprocessed Entities plugin as a tab within DevTools +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-devtools-common@0.1.2-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/devtools/package.json b/plugins/devtools/package.json index 2f3557dbad..903f946dd7 100644 --- a/plugins/devtools/package.json +++ b/plugins/devtools/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md index 393352f7c3..b684b0eb55 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-dynatrace +## 6.0.1-next.0 + +### Patch Changes + +- 3424cbfe5f4a: updated the link that the "View Entity in Dynatrace" redirects the user to. +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 6.0.0 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index ae4034a813..d78c4a40a5 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "6.0.0", + "version": "6.0.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-feedback-backend/CHANGELOG.md b/plugins/entity-feedback-backend/CHANGELOG.md index b9c95c513a..09efa0a2d0 100644 --- a/plugins/entity-feedback-backend/CHANGELOG.md +++ b/plugins/entity-feedback-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-entity-feedback-backend +## 0.1.5-next.0 + +### Patch Changes + +- 5c1c10adac8f: Added support for the new backend system +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-entity-feedback-common@0.1.1 + ## 0.1.4 ### Patch Changes diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json index 7cf3c40ffe..97bf64567c 100644 --- a/plugins/entity-feedback-backend/package.json +++ b/plugins/entity-feedback-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-entity-feedback-backend", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-feedback/CHANGELOG.md b/plugins/entity-feedback/CHANGELOG.md index ef8779a9e8..089f5c48f7 100644 --- a/plugins/entity-feedback/CHANGELOG.md +++ b/plugins/entity-feedback/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-entity-feedback +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-entity-feedback-common@0.1.1 + ## 0.2.2 ### Patch Changes diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json index 3c8fc01120..3323a56051 100644 --- a/plugins/entity-feedback/package.json +++ b/plugins/entity-feedback/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-entity-feedback", - "version": "0.2.2", + "version": "0.2.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-validation/CHANGELOG.md b/plugins/entity-validation/CHANGELOG.md index a14e9c6f37..1866f8b708 100644 --- a/plugins/entity-validation/CHANGELOG.md +++ b/plugins/entity-validation/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-entity-validation +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json index 744e2de644..9c7d659eec 100644 --- a/plugins/entity-validation/package.json +++ b/plugins/entity-validation/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-entity-validation", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md index df1f19bdf1..53c3653914 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.2.1 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 536ab147cc..f27611bc9b 100644 --- a/plugins/events-backend-module-aws-sqs/package.json +++ b/plugins/events-backend-module-aws-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-aws-sqs", - "version": "0.2.1", + "version": "0.2.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md index 8e56080502..4d853608bc 100644 --- a/plugins/events-backend-module-azure/CHANGELOG.md +++ b/plugins/events-backend-module-azure/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-azure +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index 66546f7283..1517d00ae0 100644 --- a/plugins/events-backend-module-azure/package.json +++ b/plugins/events-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-azure", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md index b3d842b4d9..d2fd63b3d2 100644 --- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-bitbucket-cloud +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index 0fc4619249..695adb6666 100644 --- a/plugins/events-backend-module-bitbucket-cloud/package.json +++ b/plugins/events-backend-module-bitbucket-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-bitbucket-cloud", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md index ddcba7b643..9b7723933b 100644 --- a/plugins/events-backend-module-gerrit/CHANGELOG.md +++ b/plugins/events-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gerrit +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index 23d648fa02..ef07b7c8a4 100644 --- a/plugins/events-backend-module-gerrit/package.json +++ b/plugins/events-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gerrit", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md index 0b67e56bad..3ad96f3e26 100644 --- a/plugins/events-backend-module-github/CHANGELOG.md +++ b/plugins/events-backend-module-github/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-github +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index 81e4064393..64c9653a81 100644 --- a/plugins/events-backend-module-github/package.json +++ b/plugins/events-backend-module-github/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-github", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md index cc3b7e75ab..a569916cc5 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index 4a26df5650..d6afbea1f2 100644 --- a/plugins/events-backend-module-gitlab/package.json +++ b/plugins/events-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gitlab", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md index 5d299c5ee9..a3438208c2 100644 --- a/plugins/events-backend-test-utils/CHANGELOG.md +++ b/plugins/events-backend-test-utils/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-backend-test-utils +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index a0d7331e35..78c50636ee 100644 --- a/plugins/events-backend-test-utils/package.json +++ b/plugins/events-backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-events-backend-test-utils", "description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md index f15b9c83c5..08d3508027 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-events-backend +## 0.2.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-events-node@0.2.8-next.0 + ## 0.2.7 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index a54832d180..fe7f179c65 100644 --- a/plugins/events-backend/package.json +++ b/plugins/events-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend", - "version": "0.2.7", + "version": "0.2.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md index 4612f94adb..ba34adb950 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-node +## 0.2.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + ## 0.2.7 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index ff649b6f46..30d1e5ccec 100644 --- a/plugins/events-node/package.json +++ b/plugins/events-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-events-node", "description": "The plugin-events-node module for @backstage/plugin-events-backend", - "version": "0.2.7", + "version": "0.2.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index e5aeeef76d..548f9fffa0 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @internal/plugin-todo-list-backend +## 1.0.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + ## 1.0.14 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index 3e19faed21..fef7cd6d85 100644 --- a/plugins/example-todo-list-backend/package.json +++ b/plugins/example-todo-list-backend/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list-backend", - "version": "1.0.14", + "version": "1.0.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list-common/CHANGELOG.md b/plugins/example-todo-list-common/CHANGELOG.md index 20216104ce..5ab4b90e0b 100644 --- a/plugins/example-todo-list-common/CHANGELOG.md +++ b/plugins/example-todo-list-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/plugin-todo-list-common +## 1.0.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 1.0.11 ### Patch Changes diff --git a/plugins/example-todo-list-common/package.json b/plugins/example-todo-list-common/package.json index 8b7eac899c..717b82f3fc 100644 --- a/plugins/example-todo-list-common/package.json +++ b/plugins/example-todo-list-common/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list-common", - "version": "1.0.11", + "version": "1.0.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index 0cb93aab94..4ed4bde47f 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,14 @@ # @internal/plugin-todo-list +## 1.0.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 1.0.14 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index d0760572fa..7caafb04dd 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.14", + "version": "1.0.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore-backend/CHANGELOG.md b/plugins/explore-backend/CHANGELOG.md index 72699c8301..2b7ae76666 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-explore-backend +## 0.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-backend-module-explore@0.1.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 0.0.8 ### Patch Changes diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index 56a13bbcbd..6080166aff 100644 --- a/plugins/explore-backend/package.json +++ b/plugins/explore-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore-backend", - "version": "0.0.8", + "version": "0.0.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md index 0d9cc0b134..6dab3ae1d1 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-explore +## 0.4.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.29 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + ## 0.4.5 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 3c72231f8d..13988f428c 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.4.5", + "version": "0.4.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index 36bbbf38cb..dc3d3326f1 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-firehydrant +## 0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.3 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 2a3f322c7d..9c56e726eb 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.2.3", + "version": "0.2.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index f0d12df6ba..b96510cbcb 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-fossa +## 0.2.52-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.51 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 1baaa929f9..bf78a608ae 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.51", + "version": "0.2.52-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md index 10351b937c..d526cbc224 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gcalendar +## 0.3.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.3.15 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 26d3616a4c..885175763c 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.15", + "version": "0.3.16-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md index 59a88c438d..27c0f7eef0 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-gcp-projects +## 0.3.39-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.3.38 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index a1bbf88e9a..e958a026bf 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.38", + "version": "0.3.39-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md index 72b56473d4..1f7792d331 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-git-release-manager +## 0.3.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + ## 0.3.32 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 8dfca51ff1..21c2ae6e4a 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.32", + "version": "0.3.33-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index e0d378c09a..aa0935ba32 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-github-actions +## 0.6.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.6.0 ### Minor Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 34ebfc48dd..468d77f847 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.6.0", + "version": "0.6.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 9726f1a48a..043830f1e7 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-github-deployments +## 0.1.51-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.50 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 09081dc934..7a10383c5b 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.50", + "version": "0.1.51-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md index 3981319749..0ce60173e6 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-github-issues +## 0.2.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.8 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 7a276705c1..cc8f5582c3 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-issues", - "version": "0.2.8", + "version": "0.2.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md index 8e3bf38e46..662d998597 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.13 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 3bc18be454..d9b807b6fc 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.13", + "version": "0.1.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md index 962431b3d2..85e567a355 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gitops-profiles +## 0.3.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.3.37 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index c860869358..b9e813086d 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.37", + "version": "0.3.38-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index 8f2e93a8aa..bf4977390f 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-gocd +## 0.1.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.25 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 31e1bff024..66f7521cd8 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.25", + "version": "0.1.26-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md index e8cc07685d..ec5a7f8e25 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphiql +## 0.2.52-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.2.51 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 90794e8833..e7ce00be1c 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.51", + "version": "0.2.52-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index a72f3ea6c8..51c233d834 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-backend +## 0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-graphql@0.3.22-next.0 + ## 0.1.36 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 1f0f495256..924059d3ec 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphql-backend", "description": "An experimental Backstage backend plugin for GraphQL", - "version": "0.1.36", + "version": "0.1.37-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/graphql-voyager/CHANGELOG.md b/plugins/graphql-voyager/CHANGELOG.md index 082c636e31..90f899932f 100644 --- a/plugins/graphql-voyager/CHANGELOG.md +++ b/plugins/graphql-voyager/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-voyager +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json index 30c4408b24..9fd3eccd54 100644 --- a/plugins/graphql-voyager/package.json +++ b/plugins/graphql-voyager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphql-voyager", "description": "Backstage plugin for GraphQL Voyager", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home-react/CHANGELOG.md b/plugins/home-react/CHANGELOG.md index 3b7244654f..07b5e817aa 100644 --- a/plugins/home-react/CHANGELOG.md +++ b/plugins/home-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-home-react +## 0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + ## 0.1.0 ### Minor Changes diff --git a/plugins/home-react/package.json b/plugins/home-react/package.json index 3d12c159ab..94facb55fa 100644 --- a/plugins/home-react/package.json +++ b/plugins/home-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home-react", "description": "A Backstage plugin that contains react components helps you build a home page", - "version": "0.1.0", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 03f95c1af9..cdf140b2d5 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-home +## 0.5.4-next.0 + +### Patch Changes + +- 88c62048fcbd: fix: update plugin home dependency for `@rjsf/material-ui` to `@rjsf/material-ui-v5` +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-home-react@0.1.1-next.0 + ## 0.5.3 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index c5aa8ee238..156fcd12e5 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.5.3", + "version": "0.5.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index 76e52b4f13..df53ce78bc 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-ilert +## 0.2.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.8 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index f3e3f4eec7..0b231ec789 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.2.8", + "version": "0.2.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 978152078c..e86bdd2a10 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-jenkins-backend +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-jenkins-common@0.1.17-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + ## 0.2.1 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index be893916b3..8a3893173b 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.2.1", + "version": "0.2.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins-common/CHANGELOG.md b/plugins/jenkins-common/CHANGELOG.md index a93e5770a9..d7a2f65f2c 100644 --- a/plugins/jenkins-common/CHANGELOG.md +++ b/plugins/jenkins-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-jenkins-common +## 0.1.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 0.1.16 ### Patch Changes diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index 5029cb3275..110e5bc382 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.16", + "version": "0.1.17-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index d44d66b48f..20528abe26 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-jenkins +## 0.8.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-jenkins-common@0.1.17-next.0 + ## 0.8.1 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 1cd8048d18..3cce27104d 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.8.1", + "version": "0.8.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md index 9fa8517298..e5a989f04e 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kafka-backend +## 0.2.40-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + ## 0.2.39 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 9526ca7b10..b2b69d7856 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka-backend", "description": "A Backstage backend plugin that integrates towards Kafka", - "version": "0.2.39", + "version": "0.2.40-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index f1cf22ca04..f3fc4a9084 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-kafka +## 0.3.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.3.19 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 89a3fc3293..38e661e577 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.19", + "version": "0.3.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index 27d74d391e..03f6b1680a 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-kubernetes-backend +## 0.11.2-next.0 + +### Patch Changes + +- faac6b7425b2: Update readme with a valid link to k8s documentation +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-kubernetes-common@0.6.5-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + ## 0.11.1 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index ce2d18636c..74a6032b1c 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.11.1", + "version": "0.11.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md index e7f002540f..c3208799e5 100644 --- a/plugins/kubernetes-common/CHANGELOG.md +++ b/plugins/kubernetes-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-kubernetes-common +## 0.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 0.6.4 ### Patch Changes diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index e3b6c7ffab..bcf9e09642 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-common", "description": "Common functionalities for kubernetes, to be shared between kubernetes and kubernetes-backend plugin", - "version": "0.6.4", + "version": "0.6.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index f7bbab122b..7aa5ce5830 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-kubernetes +## 0.9.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-kubernetes-common@0.6.5-next.0 + ## 0.9.2 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 65bf61b8dc..b59735a6ee 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.9.2", + "version": "0.9.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse-backend/CHANGELOG.md b/plugins/lighthouse-backend/CHANGELOG.md index 7b04057164..4e0cb1f2c0 100644 --- a/plugins/lighthouse-backend/CHANGELOG.md +++ b/plugins/lighthouse-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-lighthouse-backend +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-lighthouse-common@0.1.2 + ## 0.2.2 ### Patch Changes diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json index 8c58e49dc2..03a5c6e0fc 100644 --- a/plugins/lighthouse-backend/package.json +++ b/plugins/lighthouse-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse-backend", "description": "Backend functionalities for lighthouse", - "version": "0.2.2", + "version": "0.2.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index 9144ca7915..f52d23ddcf 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-lighthouse +## 0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-lighthouse-common@0.1.2 + ## 0.4.4 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 96694caa37..57125aed05 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.4.4", + "version": "0.4.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist-backend/CHANGELOG.md b/plugins/linguist-backend/CHANGELOG.md index a99b7639ae..c9b56eeaf7 100644 --- a/plugins/linguist-backend/CHANGELOG.md +++ b/plugins/linguist-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-linguist-backend +## 0.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-linguist-common@0.1.0 + ## 0.3.0 ### Minor Changes diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index 70d91bceb4..e4eaeb337a 100644 --- a/plugins/linguist-backend/package.json +++ b/plugins/linguist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist-backend", - "version": "0.3.0", + "version": "0.3.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist/CHANGELOG.md b/plugins/linguist/CHANGELOG.md index 8269274220..2c778736ea 100644 --- a/plugins/linguist/CHANGELOG.md +++ b/plugins/linguist/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-linguist +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-linguist-common@0.1.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json index fb1a2a13fe..65a364e31e 100644 --- a/plugins/linguist/package.json +++ b/plugins/linguist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/microsoft-calendar/CHANGELOG.md b/plugins/microsoft-calendar/CHANGELOG.md index da93bc3f98..870087196d 100644 --- a/plugins/microsoft-calendar/CHANGELOG.md +++ b/plugins/microsoft-calendar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-microsoft-calendar +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/microsoft-calendar/package.json b/plugins/microsoft-calendar/package.json index 5a94e2c033..5e4f6f3b73 100644 --- a/plugins/microsoft-calendar/package.json +++ b/plugins/microsoft-calendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-microsoft-calendar", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index c5e8462ea1..0c9d6dc094 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index 4f72c3d7a9..ce6a2e7ad5 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.12", + "version": "0.2.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md index ba87fb43cb..aedb63b85e 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-newrelic +## 0.3.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.3.37 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index e658381382..4cc89bab73 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.37", + "version": "0.3.38-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/nomad-backend/CHANGELOG.md b/plugins/nomad-backend/CHANGELOG.md index 5e83850cae..edf3d7062f 100644 --- a/plugins/nomad-backend/CHANGELOG.md +++ b/plugins/nomad-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-nomad-backend +## 0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + ## 0.1.0 ### Minor Changes diff --git a/plugins/nomad-backend/package.json b/plugins/nomad-backend/package.json index a851a256de..2c71b99e7b 100644 --- a/plugins/nomad-backend/package.json +++ b/plugins/nomad-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-nomad-backend", - "version": "0.1.0", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/nomad/CHANGELOG.md b/plugins/nomad/CHANGELOG.md index dad77708de..79d516ab59 100644 --- a/plugins/nomad/CHANGELOG.md +++ b/plugins/nomad/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-nomad +## 0.1.1-next.0 + +### Patch Changes + +- 68531cc70e1f: Break some internal circular import chains +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.0 ### Minor Changes diff --git a/plugins/nomad/package.json b/plugins/nomad/package.json index 213190e0b4..3d4311cbc7 100644 --- a/plugins/nomad/package.json +++ b/plugins/nomad/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-nomad", - "version": "0.1.0", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/octopus-deploy/CHANGELOG.md b/plugins/octopus-deploy/CHANGELOG.md index cc5f43a5c2..329ff12a05 100644 --- a/plugins/octopus-deploy/CHANGELOG.md +++ b/plugins/octopus-deploy/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-octopus-deploy +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.1 ### Patch Changes diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json index 654d0c6807..82555e6e1b 100644 --- a/plugins/octopus-deploy/package.json +++ b/plugins/octopus-deploy/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-octopus-deploy", - "version": "0.2.1", + "version": "0.2.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md index afd240e80a..5fbe806dd9 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-org-react +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 404f230894..c5e185cdcc 100644 --- a/plugins/org-react/package.json +++ b/plugins/org-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-org-react", - "version": "0.1.8", + "version": "0.1.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index d08b72cf52..96870f2ea2 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-org +## 0.6.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.6.9 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index 017da0d1c1..4091ed33a2 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.6.9", + "version": "0.6.10-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 54e388b59f..ca1e46329d 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-pagerduty +## 0.6.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-home-react@0.1.1-next.0 + ## 0.6.0 ### Minor Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 872436666e..68b67f640d 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.6.0", + "version": "0.6.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md index de0ce2444c..8afdcd88d3 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-periskop-backend +## 0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + ## 0.1.17 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index 73408b50c4..40a10ac6c4 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop-backend", - "version": "0.1.17", + "version": "0.1.18-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md index 412504cacf..745ede4de1 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-periskop +## 0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.17 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 37a4fab7ef..f6bbff2a2c 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.17", + "version": "0.1.18-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index c690414182..108197e407 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-permission-backend +## 0.5.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + ## 0.5.21 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 153e51d6fd..8b7bdcaebb 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend", - "version": "0.5.21", + "version": "0.5.22-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-common/CHANGELOG.md b/plugins/permission-common/CHANGELOG.md index 34da6d6201..14460590f9 100644 --- a/plugins/permission-common/CHANGELOG.md +++ b/plugins/permission-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-common +## 0.7.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 0.7.6 ### Patch Changes diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index 37568c1841..becd87d883 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-common", "description": "Isomorphic types and client for Backstage permissions and authorization", - "version": "0.7.6", + "version": "0.7.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index 636ccb6df2..860a2adb63 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-permission-node +## 0.7.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 0.7.9 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index 0ff7c2f914..512412a0c1 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-node", "description": "Common permission and authorization utilities for backend plugins", - "version": "0.7.9", + "version": "0.7.10-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-react/CHANGELOG.md b/plugins/permission-react/CHANGELOG.md index 83206b2cc8..f0f7bd32ea 100644 --- a/plugins/permission-react/CHANGELOG.md +++ b/plugins/permission-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-react +## 0.4.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 0.4.13 ### Patch Changes diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index c5509e247f..264005c88f 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-react", - "version": "0.4.13", + "version": "0.4.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist-backend/CHANGELOG.md b/plugins/playlist-backend/CHANGELOG.md index 157bde3788..9af506f5d5 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-playlist-backend +## 0.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-playlist-common@0.1.8-next.0 + ## 0.3.2 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 7a83d97505..529d83471d 100644 --- a/plugins/playlist-backend/package.json +++ b/plugins/playlist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist-backend", - "version": "0.3.2", + "version": "0.3.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist-common/CHANGELOG.md b/plugins/playlist-common/CHANGELOG.md index 4ef07f0a1b..85aee4b26f 100644 --- a/plugins/playlist-common/CHANGELOG.md +++ b/plugins/playlist-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-playlist-common +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 0.1.7 ### Patch Changes diff --git a/plugins/playlist-common/package.json b/plugins/playlist-common/package.json index 0ae64943d7..a95f6087a7 100644 --- a/plugins/playlist-common/package.json +++ b/plugins/playlist-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-playlist-common", "description": "Common functionalities for the playlist plugin", - "version": "0.1.7", + "version": "0.1.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md index 23d5f929dd..4266f1f1d1 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-playlist +## 0.1.12-next.0 + +### Patch Changes + +- 68531cc70e1f: Break some internal circular import chains +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + - @backstage/plugin-playlist-common@0.1.8-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + ## 0.1.11 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index 64457d848e..39cea31218 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.11", + "version": "0.1.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index aa937170b0..f95eca9e3d 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-proxy-backend +## 0.2.41-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + ## 0.2.40 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 5330df76e3..22fa52db43 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-proxy-backend", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", - "version": "0.2.40", + "version": "0.2.41-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/puppetdb/CHANGELOG.md b/plugins/puppetdb/CHANGELOG.md index 2baf09f2c6..b4c78d1cb1 100644 --- a/plugins/puppetdb/CHANGELOG.md +++ b/plugins/puppetdb/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-puppetdb +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/puppetdb/package.json b/plugins/puppetdb/package.json index 16444d90ac..0d958d61c2 100644 --- a/plugins/puppetdb/package.json +++ b/plugins/puppetdb/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-puppetdb", "description": "Backstage plugin to visualize resource information and Puppet facts from PuppetDB.", - "version": "0.1.2", + "version": "0.1.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md index afe15c6f77..bbb362a321 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-rollbar-backend +## 0.1.44-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + ## 0.1.43 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 5e165d534b..5ac0038dec 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar-backend", "description": "A Backstage backend plugin that integrates towards Rollbar", - "version": "0.1.43", + "version": "0.1.44-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md index cebee29c74..473e1b897b 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-rollbar +## 0.4.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.4.19 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index d0b94ea965..7454737254 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.19", + "version": "0.4.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md index 696725b042..52dd436bac 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + ## 0.1.3 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json index b3e6bf7bf4..8363dcb34d 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown", "description": "The confluence-to-markdown module for @backstage/plugin-scaffolder-backend", - "version": "0.1.3", + "version": "0.1.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 73762f1872..83fb13ad4f 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.23-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + ## 0.2.22 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index c5a3f49091..9209033693 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", - "version": "0.2.22", + "version": "0.2.23-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md index 6b7799e191..2ea66e6c32 100644 --- a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-gitlab +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + ## 0.2.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 69ea8013f3..cd036022cc 100644 --- a/plugins/scaffolder-backend-module-gitlab/package.json +++ b/plugins/scaffolder-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitlab", - "version": "0.2.1", + "version": "0.2.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index e8c83026e6..9e4876f0c7 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-backend@1.15.1-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + ## 0.4.15 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index f0238e5d82..fe27268a3d 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", "description": "A module for the scaffolder backend that lets you template projects using Rails", - "version": "0.4.15", + "version": "0.4.16-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md index 2a9fb5d287..58a766717d 100644 --- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-sentry +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + ## 0.1.6 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index 8c0c7a08fe..f6da4c6b87 100644 --- a/plugins/scaffolder-backend-module-sentry/package.json +++ b/plugins/scaffolder-backend-module-sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-sentry", - "version": "0.1.6", + "version": "0.1.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index de5673b1b6..740d6b5156 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + ## 0.2.19 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 20cfff4375..27b22717e2 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-yeoman", - "version": "0.2.19", + "version": "0.2.20-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index 8e50bed1de..f14b34bae3 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-scaffolder-backend +## 1.15.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-backend@1.11.0-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + - @backstage/plugin-scaffolder-node@0.1.5-next.0 + ## 1.15.0 ### Minor Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index e3461cad1f..cbac0ae98f 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.15.0", + "version": "1.15.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index a840a3959a..19329a1c4a 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-common +## 1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 1.3.1 ### Patch Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index 69cc2df17c..6ce31c1e2b 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-common", "description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin", - "version": "1.3.1", + "version": "1.3.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md index 162f511742..7e5a9f4737 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-node +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index 1fe4c16566..f6578720ed 100644 --- a/plugins/scaffolder-node/package.json +++ b/plugins/scaffolder-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-node", "description": "The plugin-scaffolder-node module for @backstage/plugin-scaffolder-backend", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md index 95af81aad9..3b7bce6a1d 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-scaffolder-react +## 1.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + ## 1.5.0 ### Minor Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index e78b04dbbe..2fadab8a0f 100644 --- a/plugins/scaffolder-react/package.json +++ b/plugins/scaffolder-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-react", "description": "A frontend library that helps other Backstage plugins interact with the Scaffolder", - "version": "1.5.0", + "version": "1.5.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index 785ddf9054..4e3ff61b5b 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-scaffolder +## 1.14.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-permission-react@0.4.14-next.0 + - @backstage/plugin-scaffolder-common@1.3.2-next.0 + - @backstage/plugin-scaffolder-react@1.5.1-next.0 + ## 1.14.0 ### Minor Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 9989f2ccd1..08179c90cc 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.14.0", + "version": "1.14.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-catalog/CHANGELOG.md b/plugins/search-backend-module-catalog/CHANGELOG.md index 0d6b29da6a..d125adf696 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-search-backend-module-catalog +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index dffe463064..d714cf610e 100644 --- a/plugins/search-backend-module-catalog/package.json +++ b/plugins/search-backend-module-catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-catalog", "description": "A module for the search backend that exports catalog modules", - "version": "0.1.2", + "version": "0.1.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 2d5d0af884..a110af5347 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 1.3.1 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index bd220287ed..18e0062089 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", "description": "A module for the search backend that implements search using ElasticSearch", - "version": "1.3.1", + "version": "1.3.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-explore/CHANGELOG.md b/plugins/search-backend-module-explore/CHANGELOG.md index 7ca27b0681..9a9d741511 100644 --- a/plugins/search-backend-module-explore/CHANGELOG.md +++ b/plugins/search-backend-module-explore/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-explore +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index a2fe95db18..233c8f5d7a 100644 --- a/plugins/search-backend-module-explore/package.json +++ b/plugins/search-backend-module-explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-explore", "description": "A module for the search backend that exports explore modules", - "version": "0.1.2", + "version": "0.1.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index d5711c983b..a79b790c70 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 0.5.7 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index fa6b1ecaaa..63c793bd18 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-pg", "description": "A module for the search backend that implements search using PostgreSQL", - "version": "0.5.7", + "version": "0.5.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md index ddd77e42db..dc5b589677 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-techdocs-node@1.7.3-next.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index 8b7b82fed8..194462c91f 100644 --- a/plugins/search-backend-module-techdocs/package.json +++ b/plugins/search-backend-module-techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-techdocs", "description": "A module for the search backend that exports techdocs modules", - "version": "0.1.2", + "version": "0.1.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index cbef4b5b2b..de249c5f2c 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-node +## 1.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 1.2.2 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 9f15e3d789..6a6c0c3b26 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-node", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", - "version": "1.2.2", + "version": "1.2.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index a8fe4bcbe2..266154b10b 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-search-backend +## 1.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-permission-node@0.7.10-next.0 + - @backstage/plugin-search-backend-node@1.2.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 1.3.2 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 384b8bd647..60f3c04d54 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend", "description": "The Backstage backend plugin that provides your backstage app with search", - "version": "1.3.2", + "version": "1.3.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-common/CHANGELOG.md b/plugins/search-common/CHANGELOG.md index df03b9c2de..fb38f7a73c 100644 --- a/plugins/search-common/CHANGELOG.md +++ b/plugins/search-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-common +## 1.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + ## 1.2.4 ### Patch Changes diff --git a/plugins/search-common/package.json b/plugins/search-common/package.json index bb7a0c9a33..eaf5574684 100644 --- a/plugins/search-common/package.json +++ b/plugins/search-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-common", "description": "Common functionalities for Search, to be shared between various search-enabled plugins", - "version": "1.2.4", + "version": "1.2.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index 71e8dfa8c3..574560e1d8 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-react +## 1.6.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 1.6.2 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index ee0747f758..8527750f05 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "1.6.2", + "version": "1.6.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index 04c8260e43..e01effe1c5 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search +## 1.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + ## 1.3.2 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index aa9161dc1f..be3ab80816 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.3.2", + "version": "1.3.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index 4381275152..f5d875f6e4 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-sentry +## 0.5.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.5.4 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 31b43c2e0f..9bb841c30b 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.5.4", + "version": "0.5.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/shortcuts/CHANGELOG.md b/plugins/shortcuts/CHANGELOG.md index 627bdfc545..e272fcc42c 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-shortcuts +## 0.3.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + ## 0.3.11 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index efa443156c..94f5eb59e6 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.11", + "version": "0.3.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube-backend/CHANGELOG.md b/plugins/sonarqube-backend/CHANGELOG.md index 13235d19ba..5a7db5d0e0 100644 --- a/plugins/sonarqube-backend/CHANGELOG.md +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-sonarqube-backend +## 0.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + ## 0.2.0 ### Minor Changes diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 6c575f6174..ac6eb27395 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-backend", - "version": "0.2.0", + "version": "0.2.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube-react/CHANGELOG.md b/plugins/sonarqube-react/CHANGELOG.md index 727092289e..6a061ade31 100644 --- a/plugins/sonarqube-react/CHANGELOG.md +++ b/plugins/sonarqube-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-sonarqube-react +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + ## 0.1.6 ### Patch Changes diff --git a/plugins/sonarqube-react/package.json b/plugins/sonarqube-react/package.json index 7baede0e24..266fbcf489 100644 --- a/plugins/sonarqube-react/package.json +++ b/plugins/sonarqube-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-react", - "version": "0.1.6", + "version": "0.1.7-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index 91024f94b1..b77a8d83ab 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-sonarqube +## 0.7.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-sonarqube-react@0.1.7-next.0 + ## 0.7.0 ### Minor Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 106bf409d7..2fc9c07e4b 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.7.0", + "version": "0.7.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index ad0b5314bf..971c5e388e 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-splunk-on-call +## 0.4.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.4.8 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 5de46209f6..d24e81993d 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.4.8", + "version": "0.4.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md index cfa90db59c..dab751a572 100644 --- a/plugins/stack-overflow-backend/CHANGELOG.md +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-stack-overflow-backend +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 0.2.2 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index 65ee43ea31..f94477108a 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow-backend", - "version": "0.2.2", + "version": "0.2.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md index ab80be7dd6..434aa953d8 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-stack-overflow +## 0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-home-react@0.1.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + ## 0.1.17 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 1c66057192..bac7780c89 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.17", + "version": "0.1.18-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stackstorm/CHANGELOG.md b/plugins/stackstorm/CHANGELOG.md index 9b67bede6e..fc741a6c5e 100644 --- a/plugins/stackstorm/CHANGELOG.md +++ b/plugins/stackstorm/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-stackstorm +## 0.1.4-next.0 + +### Patch Changes + +- 1745959daf98: Add props to StackstormHome for Header Customization +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.1.3 ### Patch Changes diff --git a/plugins/stackstorm/package.json b/plugins/stackstorm/package.json index 9125ac08af..5b2f7aaaea 100644 --- a/plugins/stackstorm/package.json +++ b/plugins/stackstorm/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-stackstorm", "description": "A Backstage plugin that integrates towards StackStorm", - "version": "0.1.3", + "version": "0.1.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md index f1055f0c05..6401b289d8 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.31-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/config@1.0.8 + - @backstage/plugin-tech-insights-common@0.2.11 + - @backstage/plugin-tech-insights-node@0.4.5-next.0 + ## 0.1.30 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index dfd36771be..2c9f2ad2f2 100644 --- a/plugins/tech-insights-backend-module-jsonfc/package.json +++ b/plugins/tech-insights-backend-module-jsonfc/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend-module-jsonfc", - "version": "0.1.30", + "version": "0.1.31-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md index 1e553b9bd5..341d17e816 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-tech-insights-backend +## 0.5.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + - @backstage/plugin-tech-insights-node@0.4.5-next.0 + ## 0.5.12 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 55d362e3b6..ba79312f9c 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend", - "version": "0.5.12", + "version": "0.5.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md index ffc11ee62f..6d30b36765 100644 --- a/plugins/tech-insights-node/CHANGELOG.md +++ b/plugins/tech-insights-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-tech-insights-node +## 0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + ## 0.4.4 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index 9f3856ce96..72e01d0ebe 100644 --- a/plugins/tech-insights-node/package.json +++ b/plugins/tech-insights-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-node", - "version": "0.4.4", + "version": "0.4.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md index 80bb0e5314..4c730ad3ac 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-tech-insights +## 0.3.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-tech-insights-common@0.2.11 + ## 0.3.11 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 16d35a114e..6a6e60895f 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights", - "version": "0.3.11", + "version": "0.3.12-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index 9c0b17718e..e0eb7132e1 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-radar +## 0.6.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.6.5 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 85e7128c92..59d0e7f47f 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.6.5", + "version": "0.6.6-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 9e0cd5a6ef..6cbae369d3 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/test-utils@1.4.1-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog@1.11.3-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + - @backstage/plugin-techdocs@1.6.5-next.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + ## 1.0.15 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index d795d7e0c7..7815ad4544 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.15", + "version": "1.0.16-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index c7a2fe0c32..df43137050 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-techdocs-backend +## 1.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/plugin-catalog-common@1.0.15-next.0 + - @backstage/plugin-permission-common@0.7.7-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.3-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-techdocs-node@1.7.3-next.0 + ## 1.6.3 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index e20d7de262..fa8971185e 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.6.3", + "version": "1.6.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index 7e2f4bb3f1..25344e3e2d 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.0.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + ## 1.0.14 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index e8bdc417f6..f730249288 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.14", + "version": "1.0.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index 40ccbf388c..35a14a8d03 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-techdocs-node +## 1.7.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-aws-node@0.1.5-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + ## 1.7.2 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 0a6cc92dd1..9eabf1cb43 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.7.2", + "version": "1.7.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 0f99f05c08..4957b83a41 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs-react +## 1.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/version-bridge@1.0.4 + ## 1.1.7 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 87d35b78c9..758afb2741 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.1.7", + "version": "1.1.8-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 7e09eff22a..55e584f71d 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-techdocs +## 1.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/core-plugin-api@1.5.2 + - @backstage/integration@1.5.1-next.0 + - @backstage/integration-react@1.1.15-next.0 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + - @backstage/plugin-search-common@1.2.5-next.0 + - @backstage/plugin-search-react@1.6.3-next.0 + - @backstage/plugin-techdocs-react@1.1.8-next.0 + ## 1.6.4 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 2e16b07a61..9578ca46f0 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.6.4", + "version": "1.6.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index 4e6444deaf..8fed3e4bd8 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-todo-backend +## 0.1.44-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/plugin-catalog-node@1.4.0-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-client@1.4.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/config@1.0.8 + - @backstage/integration@1.5.1-next.0 + ## 0.1.43 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 359c3e754c..e173e9a02c 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo-backend", "description": "A Backstage backend plugin that lets you browse TODO comments in your source code", - "version": "0.1.43", + "version": "0.1.44-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index 659d2cb388..8a4ea6a6b1 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-todo +## 0.2.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.2.21 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index f966ed81e2..58f2d19ea7 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.21", + "version": "0.2.22-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md index 57b7da9a0c..e1f8b8a94a 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-user-settings-backend +## 0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-plugin-api@0.5.4-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/types@1.1.0 + - @backstage/plugin-auth-node@0.2.16-next.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index b5cd47bcfc..4ba0125769 100644 --- a/plugins/user-settings-backend/package.json +++ b/plugins/user-settings-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings-backend", "description": "The Backstage backend plugin to manage user settings", - "version": "0.1.10", + "version": "0.1.11-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index 971192b578..6a96e894ce 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-user-settings +## 0.7.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-app-api@1.8.1 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.7.4 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 415e7aed8f..b76f5af19d 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.7.4", + "version": "0.7.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md index c2acf0fd4a..4625dbd6d0 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-vault-backend +## 0.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/backend-common@0.19.1-next.0 + - @backstage/backend-tasks@0.5.4-next.0 + - @backstage/config@1.0.8 + ## 0.3.2 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 63e0cc4697..170b45c908 100644 --- a/plugins/vault-backend/package.json +++ b/plugins/vault-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-backend", "description": "A Backstage backend plugin that integrates towards Vault", - "version": "0.3.2", + "version": "0.3.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md index 0ff4e9285f..b52005530b 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-vault +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/catalog-model@1.4.1-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + - @backstage/plugin-catalog-react@1.7.1-next.0 + ## 0.1.13 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 6641d641b1..8669879ea7 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.13", + "version": "0.1.14-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md index 424f261589..16c263e885 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-xcmetrics +## 0.2.40-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.1-next.0 + - @backstage/core-components@0.13.3-next.0 + - @backstage/core-plugin-api@1.5.2 + - @backstage/theme@0.4.0 + ## 0.2.39 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index b87176a1ff..5ea15c4181 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.39", + "version": "0.2.40-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/yarn.lock b/yarn.lock index a2b10a747c..7813254d50 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3816,6 +3816,17 @@ __metadata: languageName: unknown linkType: soft +"@backstage/catalog-client@npm:^1.4.2": + version: 1.4.2 + resolution: "@backstage/catalog-client@npm:1.4.2" + dependencies: + "@backstage/catalog-model": ^1.4.0 + "@backstage/errors": ^1.2.0 + cross-fetch: ^3.1.5 + checksum: 26e0ed93d9ff0c477a93f075cdd19e7ce5c4b3923134b5f3e9684bb496cf3aeb6d729561c1ceb18866ccd3b901b76ed58db8c95e37b0d5d80dbb3f1024bad86f + languageName: node + linkType: hard + "@backstage/catalog-client@workspace:^, @backstage/catalog-client@workspace:packages/catalog-client": version: 0.0.0-use.local resolution: "@backstage/catalog-client@workspace:packages/catalog-client" @@ -3828,7 +3839,22 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-model@^1.1.5, @backstage/catalog-model@^1.3.0, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": +"@backstage/catalog-model@npm:^1.1.5, @backstage/catalog-model@npm:^1.3.0, @backstage/catalog-model@npm:^1.4.0": + version: 1.4.0 + resolution: "@backstage/catalog-model@npm:1.4.0" + dependencies: + "@backstage/config": ^1.0.8 + "@backstage/errors": ^1.2.0 + "@backstage/types": ^1.1.0 + ajv: ^8.10.0 + json-schema: ^0.4.0 + lodash: ^4.17.21 + uuid: ^8.0.0 + checksum: 867c8d54687575e0ca50b8fd1e4a51523d6632fb66af89b771fbfccd6ecd5846285cf9f7257914391cf898cff34d4457857bc17a15cedf36726d26bce8a94187 + languageName: node + linkType: hard + +"@backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": version: 0.0.0-use.local resolution: "@backstage/catalog-model@workspace:packages/catalog-model" dependencies: @@ -4074,7 +4100,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/config@^1.0.6, @backstage/config@^1.0.7, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": +"@backstage/config@^1.0.6, @backstage/config@^1.0.7, @backstage/config@^1.0.8, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": version: 0.0.0-use.local resolution: "@backstage/config@workspace:packages/config" dependencies: @@ -4122,7 +4148,110 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@^0.13.1, @backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": +"@backstage/core-components@npm:^0.12.3": + version: 0.12.5 + resolution: "@backstage/core-components@npm:0.12.5" + dependencies: + "@backstage/config": ^1.0.7 + "@backstage/core-plugin-api": ^1.5.0 + "@backstage/errors": ^1.1.5 + "@backstage/theme": ^0.2.18 + "@backstage/version-bridge": ^1.0.3 + "@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": ^20.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.4.1 + react-helmet: 6.1.0 + react-hook-form: ^7.12.2 + react-markdown: ^8.0.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.10.0 + zod: ~3.18.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 8308c1b90247911f6cf22963b530cef169287f508ff29d159d0c83758134dd43bd5acd2113350690a46a02246bc05dca975bcc38325000aefb1c93c80e2f19c7 + languageName: node + linkType: hard + +"@backstage/core-components@npm:^0.13.1, @backstage/core-components@npm:^0.13.2": + version: 0.13.2 + resolution: "@backstage/core-components@npm:0.13.2" + dependencies: + "@backstage/config": ^1.0.8 + "@backstage/core-plugin-api": ^1.5.2 + "@backstage/errors": ^1.2.0 + "@backstage/theme": ^0.4.0 + "@backstage/version-bridge": ^1.0.4 + "@date-io/core": ^1.3.13 + "@material-table/core": ^3.1.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@react-hookz/web": ^20.0.0 + "@types/react": ^16.13.1 || ^17.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 + linkify-react: 4.1.1 + linkifyjs: 4.1.1 + lodash: ^4.17.21 + pluralize: ^8.0.0 + prop-types: ^15.7.2 + qs: ^6.9.4 + rc-progress: 3.4.1 + react-helmet: 6.1.0 + react-hook-form: ^7.12.2 + react-markdown: ^8.0.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.11 + react-window: ^1.8.6 + remark-gfm: ^3.0.1 + zen-observable: ^0.10.0 + zod: ^3.21.4 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: eb85037ada87ba3310a07b36b04bcbe7968482b1c741bb22babdab6dc74ee2d121c6dae278589c42e39fecde0e4313a451cc7c6366a92ee14e7a09b9e2c26d9d + languageName: node + linkType: hard + +"@backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": version: 0.0.0-use.local resolution: "@backstage/core-components@workspace:packages/core-components" dependencies: @@ -4196,57 +4325,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@npm:^0.12.3": - version: 0.12.5 - resolution: "@backstage/core-components@npm:0.12.5" - dependencies: - "@backstage/config": ^1.0.7 - "@backstage/core-plugin-api": ^1.5.0 - "@backstage/errors": ^1.1.5 - "@backstage/theme": ^0.2.18 - "@backstage/version-bridge": ^1.0.3 - "@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": ^20.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.4.1 - react-helmet: 6.1.0 - react-hook-form: ^7.12.2 - react-markdown: ^8.0.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.10.0 - zod: ~3.18.0 - peerDependencies: - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - react-dom: ^16.13.1 || ^17.0.0 - react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 8308c1b90247911f6cf22963b530cef169287f508ff29d159d0c83758134dd43bd5acd2113350690a46a02246bc05dca975bcc38325000aefb1c93c80e2f19c7 - languageName: node - linkType: hard - -"@backstage/core-plugin-api@^1.3.0, @backstage/core-plugin-api@^1.5.0, @backstage/core-plugin-api@^1.5.1, @backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api": +"@backstage/core-plugin-api@^1.3.0, @backstage/core-plugin-api@^1.5.0, @backstage/core-plugin-api@^1.5.1, @backstage/core-plugin-api@^1.5.2, @backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api": version: 0.0.0-use.local resolution: "@backstage/core-plugin-api@workspace:packages/core-plugin-api" dependencies: @@ -4333,7 +4412,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/errors@^1.1.5, @backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": +"@backstage/errors@npm:^1.1.5, @backstage/errors@npm:^1.2.0": + version: 1.2.0 + resolution: "@backstage/errors@npm:1.2.0" + dependencies: + "@backstage/types": ^1.1.0 + cross-fetch: ^3.1.5 + serialize-error: ^8.0.1 + checksum: dd2aa686de547f8f218943f80e4bad24d65c92308bd8be9e654fc9d2df84c7639bc0d505a9e3eaa83300e44d3994a547e2b0b990df4b5b8fd7e4a5e19d0cdea9 + languageName: node + linkType: hard + +"@backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": version: 0.0.0-use.local resolution: "@backstage/errors@workspace:packages/errors" dependencies: @@ -4374,7 +4464,28 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration-react@^1.1.13, @backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react": +"@backstage/integration-react@npm:^1.1.13": + version: 1.1.14 + resolution: "@backstage/integration-react@npm:1.1.14" + dependencies: + "@backstage/config": ^1.0.8 + "@backstage/core-components": ^0.13.2 + "@backstage/core-plugin-api": ^1.5.2 + "@backstage/integration": ^1.5.0 + "@backstage/theme": ^0.4.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + react-use: ^17.2.4 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 605a06b51110b83da3fc1a887615997a622ccf48a920ccb0bab8f819474105dfcdcbadfc99af28078ab021665c027068820e971200e66e9c642f797aa1b6353f + languageName: node + linkType: hard + +"@backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react": version: 0.0.0-use.local resolution: "@backstage/integration-react@workspace:packages/integration-react" dependencies: @@ -4404,6 +4515,23 @@ __metadata: languageName: unknown linkType: soft +"@backstage/integration@npm:^1.5.0": + version: 1.5.0 + resolution: "@backstage/integration@npm:1.5.0" + dependencies: + "@azure/identity": ^3.2.1 + "@backstage/config": ^1.0.8 + "@backstage/errors": ^1.2.0 + "@octokit/auth-app": ^4.0.0 + "@octokit/rest": ^19.0.3 + cross-fetch: ^3.1.5 + git-url-parse: ^13.0.0 + lodash: ^4.17.21 + luxon: ^3.0.0 + checksum: 48995991e1202213dbd5c908560f18c74267529c1ee19a268d104fe48b5ce2660fef97e7f918c58e2f3ace1c58bdf9dcf2cd85115e3b4fa17e7fb21f5f8df977 + languageName: node + linkType: hard + "@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": version: 0.0.0-use.local resolution: "@backstage/integration@workspace:packages/integration" @@ -5574,7 +5702,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-common@^1.0.10, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": +"@backstage/plugin-catalog-common@npm:^1.0.10, @backstage/plugin-catalog-common@npm:^1.0.14": + version: 1.0.14 + resolution: "@backstage/plugin-catalog-common@npm:1.0.14" + dependencies: + "@backstage/catalog-model": ^1.4.0 + "@backstage/plugin-permission-common": ^0.7.6 + "@backstage/plugin-search-common": ^1.2.4 + checksum: cb9606fdb805740863dee7550b082ceb8ff12d4a1575c5275cd945897d9cc870e5222e925bd5ad9500449f92b1be46b9db385f406a441c61c29a90d09972b0f6 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-common@workspace:plugins/catalog-common" dependencies: @@ -5711,7 +5850,44 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-react@^1.2.4, @backstage/plugin-catalog-react@^1.6.0, @backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": +"@backstage/plugin-catalog-react@npm:^1.2.4, @backstage/plugin-catalog-react@npm:^1.6.0, @backstage/plugin-catalog-react@npm:^1.7.0": + version: 1.7.0 + resolution: "@backstage/plugin-catalog-react@npm:1.7.0" + dependencies: + "@backstage/catalog-client": ^1.4.2 + "@backstage/catalog-model": ^1.4.0 + "@backstage/core-components": ^0.13.2 + "@backstage/core-plugin-api": ^1.5.2 + "@backstage/errors": ^1.2.0 + "@backstage/integration": ^1.5.0 + "@backstage/plugin-catalog-common": ^1.0.14 + "@backstage/plugin-permission-common": ^0.7.6 + "@backstage/plugin-permission-react": ^0.4.13 + "@backstage/theme": ^0.4.0 + "@backstage/types": ^1.1.0 + "@backstage/version-bridge": ^1.0.4 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@react-hookz/web": ^23.0.0 + "@types/react": ^16.13.1 || ^17.0.0 + classnames: ^2.2.6 + jwt-decode: ^3.1.0 + lodash: ^4.17.21 + material-ui-popup-state: ^1.9.3 + qs: ^6.9.4 + react-use: ^17.2.4 + yaml: ^2.0.0 + zen-observable: ^0.10.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: a4f5093aaa633758bae4905bf907e875a072e5e5f8e6835b7b5776ca4f4d6b07db4192f90d5ec3068e5ff810f0dfb3dbd09324bdfa01d7bf7cd2bee8acd1fc43 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-react@workspace:plugins/catalog-react" dependencies: @@ -7091,6 +7267,23 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-home-react@npm:^0.1.0": + version: 0.1.0 + resolution: "@backstage/plugin-home-react@npm:0.1.0" + dependencies: + "@backstage/core-components": ^0.13.2 + "@backstage/core-plugin-api": ^1.5.2 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@rjsf/utils": 5.7.3 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: e94627a541d8efa032e21fccd0249d1607952f7387b4de7a91dad9a66e8e3a2919cbce2849895ba97a5851e57c2468d3399e609da7a39ab60c95efc8d5808086 + languageName: node + linkType: hard + "@backstage/plugin-home-react@workspace:^, @backstage/plugin-home-react@workspace:plugins/home-react": version: 0.0.0-use.local resolution: "@backstage/plugin-home-react@workspace:plugins/home-react" @@ -7120,7 +7313,39 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home@^0.5.2, @backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": +"@backstage/plugin-home@npm:^0.5.2": + version: 0.5.3 + resolution: "@backstage/plugin-home@npm:0.5.3" + dependencies: + "@backstage/catalog-model": ^1.4.0 + "@backstage/config": ^1.0.8 + "@backstage/core-components": ^0.13.2 + "@backstage/core-plugin-api": ^1.5.2 + "@backstage/plugin-catalog-react": ^1.7.0 + "@backstage/plugin-home-react": ^0.1.0 + "@backstage/theme": ^0.4.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@rjsf/core-v5": "npm:@rjsf/core@5.7.3" + "@rjsf/material-ui": 5.7.3 + "@rjsf/utils": 5.7.3 + "@rjsf/validator-ajv8": 5.7.3 + "@types/react": ^16.13.1 || ^17.0.0 + lodash: ^4.17.21 + react-grid-layout: ^1.3.4 + react-resizable: ^3.0.4 + react-use: ^17.2.4 + zod: ~3.21.4 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 24dd3f261db5e6fb7131b0d8e89f653eb8f510ef35fef28327bd5b5901a59d62d9194b9d342799f7593f965ad3a10701ed35987b32ecf888a2c3fa844efcec3e + languageName: node + linkType: hard + +"@backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": version: 0.0.0-use.local resolution: "@backstage/plugin-home@workspace:plugins/home" dependencies: @@ -7926,6 +8151,20 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-permission-common@npm:^0.7.6": + version: 0.7.6 + resolution: "@backstage/plugin-permission-common@npm:0.7.6" + dependencies: + "@backstage/config": ^1.0.8 + "@backstage/errors": ^1.2.0 + "@backstage/types": ^1.1.0 + cross-fetch: ^3.1.5 + uuid: ^8.0.0 + zod: ^3.21.4 + checksum: de3363d6a78d6aff077c93c1477e976fa0ab45a62e203be6b20e80a72c3847546a47e138f227893295d5e064421f04af1ae0fcbb74a250a5823e9b363c452209 + languageName: node + linkType: hard + "@backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-common@workspace:plugins/permission-common" @@ -7964,6 +8203,25 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-permission-react@npm:^0.4.13": + version: 0.4.13 + resolution: "@backstage/plugin-permission-react@npm:0.4.13" + dependencies: + "@backstage/config": ^1.0.8 + "@backstage/core-plugin-api": ^1.5.2 + "@backstage/plugin-permission-common": ^0.7.6 + "@types/react": ^16.13.1 || ^17.0.0 + cross-fetch: ^3.1.5 + react-use: ^17.2.4 + swr: ^2.0.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: c93392de23dff6cf5152cdd6c4cde50c79a370c562aae42a74c9655716c959bf40a50a01fe7427102b74f33a26ce4a38e467fe88bf66d4ff6cd9e3ad12b70984 + languageName: node + linkType: hard + "@backstage/plugin-permission-react@workspace:^, @backstage/plugin-permission-react@workspace:plugins/permission-react": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-react@workspace:plugins/permission-react" @@ -8682,6 +8940,16 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-search-common@npm:^1.2.4": + version: 1.2.4 + resolution: "@backstage/plugin-search-common@npm:1.2.4" + dependencies: + "@backstage/plugin-permission-common": ^0.7.6 + "@backstage/types": ^1.1.0 + checksum: f0c7cdcad4d11b4dc0b1a4d08417b554b19eb89ced3c49620656a133bfbbc0057f7e2ae176e36e883ce0d29298fafe3a4b916b68d8ee96374b896635e33909ce + languageName: node + linkType: hard + "@backstage/plugin-search-common@workspace:^, @backstage/plugin-search-common@workspace:plugins/search-common": version: 0.0.0-use.local resolution: "@backstage/plugin-search-common@workspace:plugins/search-common" @@ -9700,6 +9968,23 @@ __metadata: languageName: unknown linkType: soft +"@backstage/theme@^0.4.0, @backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme": + version: 0.0.0-use.local + resolution: "@backstage/theme@workspace:packages/theme" + dependencies: + "@backstage/cli": "workspace:^" + "@emotion/react": ^11.10.5 + "@emotion/styled": ^11.10.5 + "@mui/material": ^5.12.2 + "@types/react": ^16.13.1 || ^17.0.0 + peerDependencies: + "@material-ui/core": ^4.12.2 + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + languageName: unknown + linkType: soft + "@backstage/theme@npm:^0.2.16, @backstage/theme@npm:^0.2.18": version: 0.2.19 resolution: "@backstage/theme@npm:0.2.19" @@ -9724,24 +10009,7 @@ __metadata: languageName: node linkType: hard -"@backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme": - version: 0.0.0-use.local - resolution: "@backstage/theme@workspace:packages/theme" - dependencies: - "@backstage/cli": "workspace:^" - "@emotion/react": ^11.10.5 - "@emotion/styled": ^11.10.5 - "@mui/material": ^5.12.2 - "@types/react": ^16.13.1 || ^17.0.0 - peerDependencies: - "@material-ui/core": ^4.12.2 - "@types/react": ^16.13.1 || ^17.0.0 - react: ^16.13.1 || ^17.0.0 - react-dom: ^16.13.1 || ^17.0.0 - languageName: unknown - linkType: soft - -"@backstage/types@^1.0.2, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": +"@backstage/types@^1.0.2, @backstage/types@^1.1.0, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@backstage/types@workspace:packages/types" dependencies: @@ -9752,7 +10020,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/version-bridge@^1.0.3, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": +"@backstage/version-bridge@^1.0.3, @backstage/version-bridge@^1.0.4, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": version: 0.0.0-use.local resolution: "@backstage/version-bridge@workspace:packages/version-bridge" dependencies: @@ -14296,7 +14564,7 @@ __metadata: languageName: node linkType: hard -"@rjsf/material-ui-v5@npm:@rjsf/material-ui@5.7.3": +"@rjsf/material-ui-v5@npm:@rjsf/material-ui@5.7.3, @rjsf/material-ui@npm:5.7.3": version: 5.7.3 resolution: "@rjsf/material-ui@npm:5.7.3" peerDependencies: From 267396f45bd0c3aeb2d9521c25fa343b7bfa96ab Mon Sep 17 00:00:00 2001 From: Elizabeth Hobbs Date: Tue, 27 Jun 2023 14:37:00 -0700 Subject: [PATCH 49/78] Corrected the installation instructions for @backstage/plugin-catalog-unprocessed-entities Signed-off-by: Elizabeth Hobbs Signed-off-by: Jason Nguyen Co-authored-by: Jason Nguyen --- .changeset/seven-pillows-hear.md | 5 +++++ plugins/catalog-unprocessed-entities/README.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/seven-pillows-hear.md diff --git a/.changeset/seven-pillows-hear.md b/.changeset/seven-pillows-hear.md new file mode 100644 index 0000000000..f89ca102eb --- /dev/null +++ b/.changeset/seven-pillows-hear.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-unprocessed-entities': patch +--- + +Corrected the installation instructions. diff --git a/plugins/catalog-unprocessed-entities/README.md b/plugins/catalog-unprocessed-entities/README.md index 699629e0b2..ed48d42518 100644 --- a/plugins/catalog-unprocessed-entities/README.md +++ b/plugins/catalog-unprocessed-entities/README.md @@ -29,7 +29,7 @@ Requires the `@backstage/plugin-catalog-backend-module-unprocessed` module to be ## Installation ```shell -yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-unprocessed +yarn add --cwd packages/app @backstage/plugin-catalog-module-unprocessed ``` Import into your `App.tsx` and include into the `` component: From 7a967ecaf278ca370d9b470a189bb4b2a4e0d570 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 06:25:15 +0000 Subject: [PATCH 50/78] fix(deps): update dependency linguist-js to v2.5.6 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7813254d50..2efd1bb9f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21490,7 +21490,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^9.1.0, commander@npm:^9.5.0": +"commander@npm:^9.1.0, commander@npm:^9.5.0 <10": version: 9.5.0 resolution: "commander@npm:9.5.0" checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade @@ -22070,7 +22070,7 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^3.1.3, cross-fetch@npm:^3.1.5": +"cross-fetch@npm:^3.1.3, cross-fetch@npm:^3.1.5, cross-fetch@npm:^3.1.6": version: 3.1.6 resolution: "cross-fetch@npm:3.1.6" dependencies: @@ -28569,7 +28569,7 @@ __metadata: languageName: node linkType: hard -"isbinaryfile@npm:^4.0.10, isbinaryfile@npm:^4.0.8, isbinaryfile@npm:^4.0.8 <5": +"isbinaryfile@npm:^4.0.10, isbinaryfile@npm:^4.0.10 <5, isbinaryfile@npm:^4.0.8": version: 4.0.10 resolution: "isbinaryfile@npm:4.0.10" checksum: a6b28db7e23ac7a77d3707567cac81356ea18bd602a4f21f424f862a31d0e7ab4f250759c98a559ece35ffe4d99f0d339f1ab884ffa9795172f632ab8f88e686 @@ -30545,21 +30545,21 @@ __metadata: linkType: hard "linguist-js@npm:^2.5.3": - version: 2.5.4 - resolution: "linguist-js@npm:2.5.4" + version: 2.5.6 + resolution: "linguist-js@npm:2.5.6" dependencies: binary-extensions: ^2.2.0 - commander: ^9.5.0 + commander: ^9.5.0 <10 common-path-prefix: ^3.0.0 - cross-fetch: ^3.1.5 + cross-fetch: ^3.1.6 ignore: ^5.2.4 - isbinaryfile: ^4.0.8 <5 + isbinaryfile: ^4.0.10 <5 js-yaml: ^4.1.0 node-cache: ^5.1.2 bin: linguist: bin/index.js linguist-js: bin/index.js - checksum: 92ebfc45f0f17a056153068f7e939a3e6755307d3696673597e824011d83b698063241aa7d082a7f9059416efce85a49056f0a31b3158c25f79e273e2f51e309 + checksum: bd1ae9514b4fa365611e571eb7c0cf5b087fc8ab77cdf7aeade2029a327ae3dd9005eb87e4b75770780e06e749c2d9b72f011d0a659705e1a2347b4fe7e28631 languageName: node linkType: hard From f91005bf41a852df17728b88a108d0a828f37b89 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 08:16:34 +0000 Subject: [PATCH 51/78] chore(deps): update dependency @changesets/cli to v2.26.2 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 93 +++++++++++++++++++++++++------------------------------ 1 file changed, 43 insertions(+), 50 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2efd1bb9f8..be06e30fdd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10057,12 +10057,12 @@ __metadata: languageName: node linkType: hard -"@changesets/apply-release-plan@npm:^6.1.3": - version: 6.1.3 - resolution: "@changesets/apply-release-plan@npm:6.1.3" +"@changesets/apply-release-plan@npm:^6.1.4": + version: 6.1.4 + resolution: "@changesets/apply-release-plan@npm:6.1.4" dependencies: "@babel/runtime": ^7.20.1 - "@changesets/config": ^2.3.0 + "@changesets/config": ^2.3.1 "@changesets/get-version-range-type": ^0.3.2 "@changesets/git": ^2.0.0 "@changesets/types": ^5.2.1 @@ -10073,22 +10073,22 @@ __metadata: outdent: ^0.5.0 prettier: ^2.7.1 resolve-from: ^5.0.0 - semver: ^5.4.1 - checksum: 3772a6e0ede33abdac6fcc52359307f770d5fafa53295c83e0a11b81e5802b2fe5e74e4d672c0a082f5d73dc1a9ef56509870b81824111396f74de99ada9526b + semver: ^7.5.3 + checksum: d386aee70c5483c97d964c6fa1191878005b7050d34b2e1e4a1ad66d9ad44f8f20d1c884e01e770b954bd2d4364f935510e53ae896212669f67e5c37b2a610c7 languageName: node linkType: hard -"@changesets/assemble-release-plan@npm:^5.2.3": - version: 5.2.3 - resolution: "@changesets/assemble-release-plan@npm:5.2.3" +"@changesets/assemble-release-plan@npm:^5.2.4": + version: 5.2.4 + resolution: "@changesets/assemble-release-plan@npm:5.2.4" dependencies: "@babel/runtime": ^7.20.1 "@changesets/errors": ^0.1.4 - "@changesets/get-dependents-graph": ^1.3.5 + "@changesets/get-dependents-graph": ^1.3.6 "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 - semver: ^5.4.1 - checksum: 2c61894414736b12e9a26903d73c387b65f4caba398e280488b885f4d0f4bb307aaa6bae140dfd754c85de6557bd07645accda2af6b8794837ab43823ba6215c + semver: ^7.5.3 + checksum: 32f443a0afec3d5a4afc68c8de32e8ff88531ea24976b50583b1d6870d71cec2729f27952af82854eb54e2ad0a619872d211d654c596ee0eb42c83ab54ad15ae languageName: node linkType: hard @@ -10102,17 +10102,17 @@ __metadata: linkType: hard "@changesets/cli@npm:^2.14.0": - version: 2.26.1 - resolution: "@changesets/cli@npm:2.26.1" + version: 2.26.2 + resolution: "@changesets/cli@npm:2.26.2" dependencies: "@babel/runtime": ^7.20.1 - "@changesets/apply-release-plan": ^6.1.3 - "@changesets/assemble-release-plan": ^5.2.3 + "@changesets/apply-release-plan": ^6.1.4 + "@changesets/assemble-release-plan": ^5.2.4 "@changesets/changelog-git": ^0.1.14 - "@changesets/config": ^2.3.0 + "@changesets/config": ^2.3.1 "@changesets/errors": ^0.1.4 - "@changesets/get-dependents-graph": ^1.3.5 - "@changesets/get-release-plan": ^3.0.16 + "@changesets/get-dependents-graph": ^1.3.6 + "@changesets/get-release-plan": ^3.0.17 "@changesets/git": ^2.0.0 "@changesets/logger": ^0.0.5 "@changesets/pre": ^1.0.14 @@ -10121,7 +10121,7 @@ __metadata: "@changesets/write": ^0.2.3 "@manypkg/get-packages": ^1.1.3 "@types/is-ci": ^3.0.0 - "@types/semver": ^6.0.0 + "@types/semver": ^7.5.0 ansi-colors: ^4.1.3 chalk: ^2.1.0 enquirer: ^2.3.0 @@ -10134,28 +10134,28 @@ __metadata: p-limit: ^2.2.0 preferred-pm: ^3.0.0 resolve-from: ^5.0.0 - semver: ^5.4.1 + semver: ^7.5.3 spawndamnit: ^2.0.0 term-size: ^2.1.0 tty-table: ^4.1.5 bin: changeset: bin.js - checksum: d7d6445ebbc1b2718d97852a2275f59af32020e8a1e1efe666767819dd862c7794ce50627ad52f1f97ba4bc57c81bfc4750e92265757cc94ab2d44198d2afb10 + checksum: fc7b5bf319b19abed7a8d33a9fbd9ce49108af61c9c51920f609a49cb0c557f0b998711250d0cac149d0bed8a522f3109c4d8b0dda65b96ff2f823d16ca2f972 languageName: node linkType: hard -"@changesets/config@npm:^2.3.0": - version: 2.3.0 - resolution: "@changesets/config@npm:2.3.0" +"@changesets/config@npm:^2.3.1": + version: 2.3.1 + resolution: "@changesets/config@npm:2.3.1" dependencies: "@changesets/errors": ^0.1.4 - "@changesets/get-dependents-graph": ^1.3.5 + "@changesets/get-dependents-graph": ^1.3.6 "@changesets/logger": ^0.0.5 "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 fs-extra: ^7.0.1 micromatch: ^4.0.2 - checksum: 68a61437ffeda219f22f6d4d32bf8d428e6f284d7e0e191c0629f64f035a051b4068222b1ea3ff1866e5944a153004735dab82205404919f6806c97c546700b1 + checksum: 8af58e3add4751ac8ce2c01f026ac8843b8d1c07c9a3df6518496eaef67f56458a84cad310763c588f7eccbf6831afbf280df7e05e78b294027b6b847be3d0cc languageName: node linkType: hard @@ -10168,31 +10168,31 @@ __metadata: languageName: node linkType: hard -"@changesets/get-dependents-graph@npm:^1.3.5": - version: 1.3.5 - resolution: "@changesets/get-dependents-graph@npm:1.3.5" +"@changesets/get-dependents-graph@npm:^1.3.6": + version: 1.3.6 + resolution: "@changesets/get-dependents-graph@npm:1.3.6" dependencies: "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 chalk: ^2.1.0 fs-extra: ^7.0.1 - semver: ^5.4.1 - checksum: d7abb1da21804fd66b1458e46be2f2aec741145a43500b0463a5acfbb420ac5ce776a7328fa660ad4e6e811f933bd6f36e7bbaf00fb3f591d46f0b8e7108fdcd + semver: ^7.5.3 + checksum: d2cbbc5041063b939899502d1b264a0d9edb655acefd7f6197883229156bb7cfd1ace642ae4a1f7f7b432f2c51429f5dc9851ff5a9ed47f1c0159916e66627a9 languageName: node linkType: hard -"@changesets/get-release-plan@npm:^3.0.16": - version: 3.0.16 - resolution: "@changesets/get-release-plan@npm:3.0.16" +"@changesets/get-release-plan@npm:^3.0.17": + version: 3.0.17 + resolution: "@changesets/get-release-plan@npm:3.0.17" dependencies: "@babel/runtime": ^7.20.1 - "@changesets/assemble-release-plan": ^5.2.3 - "@changesets/config": ^2.3.0 + "@changesets/assemble-release-plan": ^5.2.4 + "@changesets/config": ^2.3.1 "@changesets/pre": ^1.0.14 "@changesets/read": ^0.5.9 "@changesets/types": ^5.2.1 "@manypkg/get-packages": ^1.1.3 - checksum: ab8360c17f69437ad51edfd8910a2609ab8dc1e8cf006994b3938b2551b1eb08b7ab8043b8bf1e94916cbadd89e357a0c1148e20eab8bb5e3ae284384d239942 + checksum: 8a0e3794d0f1e6220d173dbec96352ad69b585d013c3183888ca598dfdfcaa8a5ac3f7f36d5c511575cdc3559c2ad6f8cecfaa16ba9c24380899a81daa7af924 languageName: node linkType: hard @@ -17818,17 +17818,10 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^6.0.0": - version: 6.2.3 - resolution: "@types/semver@npm:6.2.3" - checksum: 83c86d7005b229df9c4c0d6d13825b839a01932895504596140aea19e2b88f63ac27ab1575347451b50eedb63f72309e845ce1a0ca78360c4f719bbb38371594 - languageName: node - linkType: hard - -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.8": - version: 7.3.13 - resolution: "@types/semver@npm:7.3.13" - checksum: 00c0724d54757c2f4bc60b5032fe91cda6410e48689633d5f35ece8a0a66445e3e57fa1d6e07eb780f792e82ac542948ec4d0b76eb3484297b79bd18b8cf1cb0 +"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.8, @types/semver@npm:^7.5.0": + version: 7.5.0 + resolution: "@types/semver@npm:7.5.0" + checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 languageName: node linkType: hard @@ -38026,7 +38019,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.0": +"semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.0, semver@npm:^7.5.3": version: 7.5.3 resolution: "semver@npm:7.5.3" dependencies: From ed26ed52400abbbca9a0d66f28c2d321424c77be Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 08:54:18 +0000 Subject: [PATCH 52/78] chore(deps): update dependency @types/node to v16.18.37 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index be06e30fdd..845b6eb887 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17342,9 +17342,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 20.3.1 - resolution: "@types/node@npm:20.3.1" - checksum: 63a393ab6d947be17320817b35d7277ef03728e231558166ed07ee30b09fd7c08861be4d746f10fdc63ca7912e8cd023939d4eab887ff6580ff704ff24ed810c + version: 20.3.2 + resolution: "@types/node@npm:20.3.2" + checksum: 5929ce2b9b12b1e2a2304a0921a953c72a81f5753ad39ac43b99ce6312fbb2b4fb5bc6b60d64a2550704e3223cd5de1299467d36085ac69888899db978f2653a languageName: node linkType: hard @@ -17363,9 +17363,9 @@ __metadata: linkType: hard "@types/node@npm:^14.14.31": - version: 14.18.51 - resolution: "@types/node@npm:14.18.51" - checksum: 0960a31d2ac605763fe79c8edcee3cb48257d345ce417c019d84ff5d8cd92dd0937674814ab3f169346b4259c29f640556006bcb2c54cfb3e63fa0cf728d320e + version: 14.18.52 + resolution: "@types/node@npm:14.18.52" + checksum: e9b0e56f0856c0ad901b1b92a1d9c7c96ab140697fa730f0e96571052b085446f18826ac8040bf4569b0ba92dcc8c189a7c87852a81b85911ad858df724d4538 languageName: node linkType: hard @@ -17377,9 +17377,9 @@ __metadata: linkType: hard "@types/node@npm:^16.0.0, @types/node@npm:^16.11.26, @types/node@npm:^16.9.2": - version: 16.18.36 - resolution: "@types/node@npm:16.18.36" - checksum: a9d138fa1269079c60daad6984713dc0b713983f8b34a83edbc6d7957b2e38beab9b2598c9fe99f19d073e20bc212a18aaf82eabdc23ef64dce7d2089a9aab2a + version: 16.18.37 + resolution: "@types/node@npm:16.18.37" + checksum: ac9549a48ded76f99185e0bdd3f52af202229688d0000af250ce4060e22991cb0e2f950c5de25125ef6221cb092ebdf195eb2e9edfc0a49623252c73be2fa0e0 languageName: node linkType: hard From 8403790005df5d202450d41bde488be028381523 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 09:42:25 +0000 Subject: [PATCH 53/78] chore(deps): update dependency lint-staged to v13.2.3 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 845b6eb887..a31d7eab27 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30583,8 +30583,8 @@ __metadata: linkType: hard "lint-staged@npm:^13.0.0": - version: 13.2.2 - resolution: "lint-staged@npm:13.2.2" + version: 13.2.3 + resolution: "lint-staged@npm:13.2.3" dependencies: chalk: 5.2.0 cli-truncate: ^3.1.0 @@ -30601,7 +30601,7 @@ __metadata: yaml: ^2.2.2 bin: lint-staged: bin/lint-staged.js - checksum: f34f6e2e85e827364658ab8717bf8b35239473c2d4959d746b053a4cf158ac657348444c755820a8ef3eac2d4753a37c52e9db3e201ee20b085f26d2f2fbc9ed + checksum: ff51a1e33072f488b28b938ed47323816a1ff278ef6d0e5cbe1704b292773a6c8ce945b504eae3a9b5702917a979523a741f17023e16077bd5fa35be687cc067 languageName: node linkType: hard From a44ac37eafb0a22674c5a01e6f3b7b4af8d42b74 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 10:32:56 +0000 Subject: [PATCH 54/78] fix(deps): update dependency @roadiehq/backstage-plugin-github-insights to v2.3.15 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index a31d7eab27..fe70ce4e17 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4464,7 +4464,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration-react@npm:^1.1.13": +"@backstage/integration-react@npm:^1.1.14": version: 1.1.14 resolution: "@backstage/integration-react@npm:1.1.14" dependencies: @@ -14643,15 +14643,15 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-insights@npm:^2.0.5": - version: 2.3.14 - resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.3.14" + version: 2.3.15 + resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.3.15" dependencies: - "@backstage/catalog-model": ^1.3.0 - "@backstage/core-components": ^0.13.1 - "@backstage/core-plugin-api": ^1.5.1 - "@backstage/integration-react": ^1.1.13 - "@backstage/plugin-catalog-react": ^1.6.0 - "@backstage/theme": ^0.3.0 + "@backstage/catalog-model": ^1.4.0 + "@backstage/core-components": ^0.13.2 + "@backstage/core-plugin-api": ^1.5.2 + "@backstage/integration-react": ^1.1.14 + "@backstage/plugin-catalog-react": ^1.7.0 + "@backstage/theme": ^0.4.0 "@date-io/core": 2.10.7 "@material-ui/core": ^4.11.0 "@material-ui/icons": ^4.9.1 @@ -14666,7 +14666,7 @@ __metadata: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: 990667bcbdbd9f2504b4c020b79bd1e809c165ac4ff93f277fe3be9e9a1247ed4e2034f992146c5e7a153aa8d268c06e3777b693a9337564117be43d321f894c + checksum: 5c174c107f14c6ecef7a8dbd9934b26cd1f07732b6287186716e17dd81ee0d5db30e53e622eb4d946267e9b60e6a0a77a85391c6c149219e4356e15e64ef8120 languageName: node linkType: hard From 3d9377e7a66fb7b9f0002451be2f9fcce29ab1e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 11:21:12 +0000 Subject: [PATCH 55/78] fix(deps): update dependency @roadiehq/backstage-plugin-github-pull-requests to v2.5.13 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index fe70ce4e17..4cd4a19bc4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7313,7 +7313,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home@npm:^0.5.2": +"@backstage/plugin-home@npm:^0.5.3": version: 0.5.3 resolution: "@backstage/plugin-home@npm:0.5.3" dependencies: @@ -14671,14 +14671,14 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-pull-requests@npm:^2.2.7": - version: 2.5.12 - resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.12" + version: 2.5.13 + resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.13" dependencies: - "@backstage/catalog-model": ^1.3.0 - "@backstage/core-components": ^0.13.1 - "@backstage/core-plugin-api": ^1.5.1 - "@backstage/plugin-catalog-react": ^1.6.0 - "@backstage/plugin-home": ^0.5.2 + "@backstage/catalog-model": ^1.4.0 + "@backstage/core-components": ^0.13.2 + "@backstage/core-plugin-api": ^1.5.2 + "@backstage/plugin-catalog-react": ^1.7.0 + "@backstage/plugin-home": ^0.5.3 "@material-ui/core": ^4.11.0 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.60 @@ -14695,7 +14695,7 @@ __metadata: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: 4113de2eb3f207e05581033c05879c98d858ef3534fb1256d5dc4f8e1f4cc33e0530952d4fd74c62df063c22af6c1e0f28af770bd55d8b41b4402df68450f98c + checksum: 1af9997d26ee9dba046d71aa5415bde7e207c4118ca77e6e3e9623920ce7f6e314d8365fe2d1ef3eb1c279ac113653df903f1286005aba681faf75381a387189 languageName: node linkType: hard From 2bbdcb4154c3e77b96161a03617b8ed15848fb64 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:50:26 -0500 Subject: [PATCH 56/78] Added support to Badges for new backend Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/chatty-buttons-deny.md | 5 +++ packages/backend-next/package.json | 1 + packages/backend-next/src/index.ts | 4 ++ plugins/badges-backend/README.md | 18 ++++++++ plugins/badges-backend/package.json | 1 + plugins/badges-backend/src/index.ts | 1 + plugins/badges-backend/src/plugin.ts | 61 ++++++++++++++++++++++++++++ yarn.lock | 2 + 8 files changed, 93 insertions(+) create mode 100644 .changeset/chatty-buttons-deny.md create mode 100644 plugins/badges-backend/src/plugin.ts diff --git a/.changeset/chatty-buttons-deny.md b/.changeset/chatty-buttons-deny.md new file mode 100644 index 0000000000..bd602d52ba --- /dev/null +++ b/.changeset/chatty-buttons-deny.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-badges-backend': patch +--- + +Added support for the [new backend system](https://backstage.io/docs/backend-system/) diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 53b43a0172..04dc3e2cf3 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -28,6 +28,7 @@ "@backstage/backend-defaults": "workspace:^", "@backstage/plugin-app-backend": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-badges-backend": "workspace:^", "@backstage/plugin-catalog-backend": "workspace:^", "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^", "@backstage/plugin-entity-feedback-backend": "workspace:^", diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index 900062d61b..60b5315ab0 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -32,11 +32,15 @@ import { techdocsPlugin } from '@backstage/plugin-techdocs-backend/alpha'; import { todoPlugin } from '@backstage/plugin-todo-backend'; import { entityFeedbackPlugin } from '@backstage/plugin-entity-feedback-backend'; import { catalogModuleUnprocessedEntities } from '@backstage/plugin-catalog-backend-module-unprocessed'; +import { badgesPlugin } from '@backstage/plugin-badges-backend'; const backend = createBackend(); backend.add(appPlugin({ appPackageName: 'example-app' })); +// Badges +backend.add(badgesPlugin()); + // Entity Feedback backend.add(entityFeedbackPlugin()); diff --git a/plugins/badges-backend/README.md b/plugins/badges-backend/README.md index ddbb30bc4e..3a2b7f52d3 100644 --- a/plugins/badges-backend/README.md +++ b/plugins/badges-backend/README.md @@ -76,6 +76,24 @@ const createEnv = makeCreateEnv(config); apiRouter.use(notFoundHandler()); ``` +### New Backend System + +The Badges backend plugin has support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: + +In your `packages/backend/src/index.ts` make the following changes: + +```diff + import { createBackend } from '@backstage/backend-defaults'; ++ import { badgesPlugin } from '@backstage/plugin-badges-backend/alpha'; + const backend = createBackend(); + + // ... other feature additions + ++ backend.add(badgesPlugin()); + + backend.start(); +``` + ## Badge builder Badges are created by classes implementing the `BadgeBuilder` type. The default diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index 8af1b13096..3106e363cc 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -34,6 +34,7 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/catalog-client": "workspace:^", "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", diff --git a/plugins/badges-backend/src/index.ts b/plugins/badges-backend/src/index.ts index 35a061c516..0c417a7ad6 100644 --- a/plugins/badges-backend/src/index.ts +++ b/plugins/badges-backend/src/index.ts @@ -25,3 +25,4 @@ export * from './lib'; export * from './service/router'; export * from './types'; export * from './database/badgesStore'; +export { badgesPlugin } from './plugin'; diff --git a/plugins/badges-backend/src/plugin.ts b/plugins/badges-backend/src/plugin.ts new file mode 100644 index 0000000000..ecc03f0c15 --- /dev/null +++ b/plugins/badges-backend/src/plugin.ts @@ -0,0 +1,61 @@ +/* + * Copyright 2023 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 { loggerToWinstonLogger } from '@backstage/backend-common'; +import { + coreServices, + createBackendPlugin, +} from '@backstage/backend-plugin-api'; +import { createRouter } from './service/router'; + +/** + * Badges backend plugin + * + * @public + */ +export const badgesPlugin = createBackendPlugin({ + pluginId: 'badges', + register(env) { + env.registerInit({ + deps: { + config: coreServices.config, + logger: coreServices.logger, + discovery: coreServices.discovery, + tokenManager: coreServices.tokenManager, + identity: coreServices.identity, + httpRouter: coreServices.httpRouter, + }, + async init({ + config, + logger, + discovery, + tokenManager, + identity, + httpRouter, + }) { + httpRouter.use( + await createRouter({ + config, + logger: loggerToWinstonLogger(logger), + discovery, + tokenManager, + identity, + }), + ); + }, + }); + }, +}); diff --git a/yarn.lock b/yarn.lock index fe70ce4e17..eedac582b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5139,6 +5139,7 @@ __metadata: resolution: "@backstage/plugin-badges-backend@workspace:plugins/badges-backend" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/catalog-client": "workspace:^" "@backstage/catalog-model": "workspace:^" @@ -24927,6 +24928,7 @@ __metadata: "@backstage/cli": "workspace:^" "@backstage/plugin-app-backend": "workspace:^" "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-badges-backend": "workspace:^" "@backstage/plugin-catalog-backend": "workspace:^" "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^" "@backstage/plugin-entity-feedback-backend": "workspace:^" From bc3b19068581d8be66d1d9f3128397a8800ff5d2 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Tue, 27 Jun 2023 18:14:14 -0500 Subject: [PATCH 57/78] Updated api-report Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- plugins/badges-backend/api-report.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/badges-backend/api-report.md b/plugins/badges-backend/api-report.md index 09a02ba44d..4594228543 100644 --- a/plugins/badges-backend/api-report.md +++ b/plugins/badges-backend/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { Entity } from '@backstage/catalog-model'; @@ -81,6 +82,9 @@ export type BadgeSpec = { markdown: string; }; +// @public +export const badgesPlugin: () => BackendFeature; + // @public export interface BadgesStore { // (undocumented) From 408c38e3e1d5421f32c03d3a23d36d349eccd060 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 28 Jun 2023 06:44:33 -0500 Subject: [PATCH 58/78] Corrected import not to be from alpha Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- plugins/badges-backend/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/badges-backend/README.md b/plugins/badges-backend/README.md index 3a2b7f52d3..22c3311ff1 100644 --- a/plugins/badges-backend/README.md +++ b/plugins/badges-backend/README.md @@ -84,7 +84,7 @@ In your `packages/backend/src/index.ts` make the following changes: ```diff import { createBackend } from '@backstage/backend-defaults'; -+ import { badgesPlugin } from '@backstage/plugin-badges-backend/alpha'; ++ import { badgesPlugin } from '@backstage/plugin-badges-backend'; const backend = createBackend(); // ... other feature additions From 027f7ff705f2f72c7ddb94adbb9c4a75daf2eb42 Mon Sep 17 00:00:00 2001 From: Scott Guymer Date: Wed, 28 Jun 2023 14:41:07 +0200 Subject: [PATCH 59/78] sonarqube: Make default config optional Signed-off-by: Scott Guymer --- plugins/sonarqube-backend/config.d.ts | 4 ++-- plugins/sonarqube/config.d.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/sonarqube-backend/config.d.ts b/plugins/sonarqube-backend/config.d.ts index ce5bc641b6..7e93f61eb4 100644 --- a/plugins/sonarqube-backend/config.d.ts +++ b/plugins/sonarqube-backend/config.d.ts @@ -21,13 +21,13 @@ export interface Config { * The base url of the sonarqube installation. Defaults to https://sonarcloud.io. * @visibility frontend */ - baseUrl: string; + baseUrl?: string; /** * The api key to access the sonarqube instance under baseUrl. * @visibility secret */ - apiKey: string; + apiKey?: string; /** * The optional sonarqube instances. diff --git a/plugins/sonarqube/config.d.ts b/plugins/sonarqube/config.d.ts index 5759e63f98..8ba989b02c 100644 --- a/plugins/sonarqube/config.d.ts +++ b/plugins/sonarqube/config.d.ts @@ -21,6 +21,6 @@ export interface Config { * The base url of the sonarqube installation. Defaults to https://sonarcloud.io. * @visibility frontend */ - baseUrl: string; + baseUrl?: string; }; } From fcaf4cfc70ee075f0bd53a50ec837712f301fc17 Mon Sep 17 00:00:00 2001 From: Scott Guymer Date: Wed, 28 Jun 2023 14:43:56 +0200 Subject: [PATCH 60/78] Added changeset Signed-off-by: Scott Guymer --- .changeset/mighty-pandas-deny.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/mighty-pandas-deny.md diff --git a/.changeset/mighty-pandas-deny.md b/.changeset/mighty-pandas-deny.md new file mode 100644 index 0000000000..381e76d52b --- /dev/null +++ b/.changeset/mighty-pandas-deny.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-sonarqube': minor +'@backstage/plugin-sonarqube-backend': minor +--- + +Made default config optional From ae261e79d256abb8b83522a8381a6eb942eb4345 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Fri, 16 Jun 2023 17:24:23 -0500 Subject: [PATCH 61/78] Added alpha support for new backend system Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/popular-crabs-deny.md | 7 ++ packages/backend-next/package.json | 4 + packages/backend-next/src/index.ts | 26 ++++++ plugins/azure-devops-backend/README.md | 28 ++++++ .../azure-devops-backend/alpha-api-report.md | 12 +++ plugins/azure-devops-backend/package.json | 16 ++++ plugins/azure-devops-backend/src/alpha.ts | 16 ++++ plugins/azure-devops-backend/src/plugin.ts | 50 +++++++++++ plugins/devtools-backend/README.md | 28 ++++++ plugins/devtools-backend/alpha-api-report.md | 12 +++ plugins/devtools-backend/package.json | 16 ++++ plugins/devtools-backend/src/alpha.ts | 16 ++++ plugins/devtools-backend/src/plugin.ts | 50 +++++++++++ plugins/linguist-backend/README.md | 41 +++++++++ plugins/linguist-backend/alpha-api-report.md | 30 +++++++ plugins/linguist-backend/package.json | 16 ++++ plugins/linguist-backend/src/alpha.ts | 17 ++++ plugins/linguist-backend/src/plugin.ts | 87 +++++++++++++++++++ yarn.lock | 7 ++ 19 files changed, 479 insertions(+) create mode 100644 .changeset/popular-crabs-deny.md create mode 100644 plugins/azure-devops-backend/alpha-api-report.md create mode 100644 plugins/azure-devops-backend/src/alpha.ts create mode 100644 plugins/azure-devops-backend/src/plugin.ts create mode 100644 plugins/devtools-backend/alpha-api-report.md create mode 100644 plugins/devtools-backend/src/alpha.ts create mode 100644 plugins/devtools-backend/src/plugin.ts create mode 100644 plugins/linguist-backend/alpha-api-report.md create mode 100644 plugins/linguist-backend/src/alpha.ts create mode 100644 plugins/linguist-backend/src/plugin.ts diff --git a/.changeset/popular-crabs-deny.md b/.changeset/popular-crabs-deny.md new file mode 100644 index 0000000000..28b8062d48 --- /dev/null +++ b/.changeset/popular-crabs-deny.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-azure-devops-backend': patch +'@backstage/plugin-devtools-backend': patch +'@backstage/plugin-linguist-backend': patch +--- + +Added alpha support for the [new backend system](https://backstage.io/docs/backend-system/) diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 04dc3e2cf3..b8e363177b 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -26,13 +26,17 @@ }, "dependencies": { "@backstage/backend-defaults": "workspace:^", + "@backstage/backend-tasks": "workspace:^", "@backstage/plugin-app-backend": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-azure-devops-backend": "workspace:^", "@backstage/plugin-badges-backend": "workspace:^", "@backstage/plugin-catalog-backend": "workspace:^", "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^", + "@backstage/plugin-devtools-backend": "workspace:^", "@backstage/plugin-entity-feedback-backend": "workspace:^", "@backstage/plugin-kubernetes-backend": "workspace:^", + "@backstage/plugin-linguist-backend": "workspace:^", "@backstage/plugin-permission-backend": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", "@backstage/plugin-permission-node": "workspace:^", diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index 60b5315ab0..c064f2acb9 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -33,6 +33,10 @@ import { todoPlugin } from '@backstage/plugin-todo-backend'; import { entityFeedbackPlugin } from '@backstage/plugin-entity-feedback-backend'; import { catalogModuleUnprocessedEntities } from '@backstage/plugin-catalog-backend-module-unprocessed'; import { badgesPlugin } from '@backstage/plugin-badges-backend'; +import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend/alpha'; +import { linguistPlugin } from '@backstage/plugin-linguist-backend/alpha'; +import { devtoolsPlugin } from '@backstage/plugin-devtools-backend/alpha'; +import { TaskScheduleDefinition } from '@backstage/backend-tasks'; const backend = createBackend(); @@ -41,9 +45,31 @@ backend.add(appPlugin({ appPackageName: 'example-app' })); // Badges backend.add(badgesPlugin()); +// Azure DevOps +backend.add(azureDevOpsPlugin()); + +// DevTools +backend.add(devtoolsPlugin()); + // Entity Feedback backend.add(entityFeedbackPlugin()); +// Linguist +const linguistSchedule: TaskScheduleDefinition = { + frequency: { minutes: 2 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 15 }, +}; + +backend.add( + linguistPlugin({ + schedule: linguistSchedule, + age: { days: 30 }, + batchSize: 2, + useSourceLocation: false, + }), +); + // Todo backend.add(todoPlugin()); diff --git a/plugins/azure-devops-backend/README.md b/plugins/azure-devops-backend/README.md index ba2a847c0a..d51758aec5 100644 --- a/plugins/azure-devops-backend/README.md +++ b/plugins/azure-devops-backend/README.md @@ -70,6 +70,34 @@ Here's how to get the backend up and running: 4. Now run `yarn start-backend` from the repo root 5. Finally open `http://localhost:7007/api/azure-devops/health` in a browser and it should return `{"status":"ok"}` +#### New Backend System + +The Azure DevOps backend plugin has alpha support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: + +In your `packages/backend/src/index.ts` make the following changes: + +```diff + import { createBackend } from '@backstage/backend-defaults'; + import { appPlugin } from '@backstage/plugin-app-backend'; + import { catalogPlugin } from '@backstage/plugin-catalog-backend'; + import { + scaffolderPlugin, + catalogModuleTemplateKind, + } from '@backstage/plugin-scaffolder-backend'; ++ import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend/alpha'; + + const backend = createBackend(); + + backend.add(appPlugin()); + backend.add(catalogPlugin()); + backend.add(catalogModuleTemplateKind()); + backend.add(scaffolderPlugin()); + ++ backend.add(azureDevOpsPlugin()); + + backend.start(); +``` + ## Links - [Frontend part of the plugin](https://github.com/backstage/backstage/tree/master/plugins/azure-devops) diff --git a/plugins/azure-devops-backend/alpha-api-report.md b/plugins/azure-devops-backend/alpha-api-report.md new file mode 100644 index 0000000000..e258f51a4f --- /dev/null +++ b/plugins/azure-devops-backend/alpha-api-report.md @@ -0,0 +1,12 @@ +## API Report File for "@backstage/plugin-azure-devops-backend" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; + +// @alpha +export const azureDevOpsPlugin: () => BackendFeature; + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 00af05df92..44b4342cf1 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -9,6 +9,21 @@ "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, + "exports": { + ".": "./src/index.ts", + "./alpha": "./src/alpha.ts", + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "alpha": [ + "src/alpha.ts" + ], + "package.json": [ + "package.json" + ] + } + }, "backstage": { "role": "backend-plugin" }, @@ -23,6 +38,7 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/config": "workspace:^", "@backstage/plugin-azure-devops-common": "workspace:^", "@types/express": "^4.17.6", diff --git a/plugins/azure-devops-backend/src/alpha.ts b/plugins/azure-devops-backend/src/alpha.ts new file mode 100644 index 0000000000..dc321ef4de --- /dev/null +++ b/plugins/azure-devops-backend/src/alpha.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2023 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 { azureDevOpsPlugin } from './plugin'; diff --git a/plugins/azure-devops-backend/src/plugin.ts b/plugins/azure-devops-backend/src/plugin.ts new file mode 100644 index 0000000000..e6cf01b182 --- /dev/null +++ b/plugins/azure-devops-backend/src/plugin.ts @@ -0,0 +1,50 @@ +/* + * Copyright 2023 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 { loggerToWinstonLogger } from '@backstage/backend-common'; +import { + coreServices, + createBackendPlugin, +} from '@backstage/backend-plugin-api'; +import { createRouter } from './service/router'; + +/** + * Azure DevOps backend plugin + * + * @alpha + */ +export const azureDevOpsPlugin = createBackendPlugin({ + pluginId: 'azure-devops', + register(env) { + env.registerInit({ + deps: { + config: coreServices.config, + logger: coreServices.logger, + reader: coreServices.urlReader, + httpRouter: coreServices.httpRouter, + }, + async init({ config, logger, reader, httpRouter }) { + httpRouter.use( + await createRouter({ + config, + logger: loggerToWinstonLogger(logger), + reader, + }), + ); + }, + }); + }, +}); diff --git a/plugins/devtools-backend/README.md b/plugins/devtools-backend/README.md index 7304ce33d7..7a8ca3104a 100644 --- a/plugins/devtools-backend/README.md +++ b/plugins/devtools-backend/README.md @@ -49,6 +49,34 @@ Here's how to get the DevTools Backend up and running: 4. Now run `yarn start-backend` from the repo root 5. Finally open `http://localhost:7007/api/devtools/health` in a browser and it should return `{"status":"ok"}` +### New Backend System + +The DevTools backend plugin has alpha support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: + +In your `packages/backend/src/index.ts` make the following changes: + +```diff + import { createBackend } from '@backstage/backend-defaults'; + import { appPlugin } from '@backstage/plugin-app-backend'; + import { catalogPlugin } from '@backstage/plugin-catalog-backend'; + import { + scaffolderPlugin, + catalogModuleTemplateKind, + } from '@backstage/plugin-scaffolder-backend'; ++ import { devtoolsPlugin } from '@backstage/plugin-devtools-backend/alpha'; + + const backend = createBackend(); + + backend.add(appPlugin()); + backend.add(catalogPlugin()); + backend.add(catalogModuleTemplateKind()); + backend.add(scaffolderPlugin()); + ++ backend.add(devtoolsPlugin()); + + backend.start(); +``` + ## Links - [Frontend part of the plugin](../devtools/README.md) diff --git a/plugins/devtools-backend/alpha-api-report.md b/plugins/devtools-backend/alpha-api-report.md new file mode 100644 index 0000000000..0be1ac4891 --- /dev/null +++ b/plugins/devtools-backend/alpha-api-report.md @@ -0,0 +1,12 @@ +## API Report File for "@backstage/plugin-devtools-backend" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; + +// @alpha +export const devtoolsPlugin: () => BackendFeature; + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index ba8529e650..bc71e58493 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -9,6 +9,21 @@ "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, + "exports": { + ".": "./src/index.ts", + "./alpha": "./src/alpha.ts", + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "alpha": [ + "src/alpha.ts" + ], + "package.json": [ + "package.json" + ] + } + }, "backstage": { "role": "backend-plugin" }, @@ -23,6 +38,7 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/cli-common": "workspace:^", "@backstage/config": "workspace:^", "@backstage/config-loader": "workspace:^", diff --git a/plugins/devtools-backend/src/alpha.ts b/plugins/devtools-backend/src/alpha.ts new file mode 100644 index 0000000000..fa4c290fb8 --- /dev/null +++ b/plugins/devtools-backend/src/alpha.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2023 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 { devtoolsPlugin } from './plugin'; diff --git a/plugins/devtools-backend/src/plugin.ts b/plugins/devtools-backend/src/plugin.ts new file mode 100644 index 0000000000..530ad74292 --- /dev/null +++ b/plugins/devtools-backend/src/plugin.ts @@ -0,0 +1,50 @@ +/* + * Copyright 2023 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 { loggerToWinstonLogger } from '@backstage/backend-common'; +import { + coreServices, + createBackendPlugin, +} from '@backstage/backend-plugin-api'; +import { createRouter } from './service/router'; + +/** + * Azure DevOps backend plugin + * + * @alpha + */ +export const devtoolsPlugin = createBackendPlugin({ + pluginId: 'devtools', + register(env) { + env.registerInit({ + deps: { + config: coreServices.config, + logger: coreServices.logger, + permissions: coreServices.permissions, + httpRouter: coreServices.httpRouter, + }, + async init({ config, logger, permissions, httpRouter }) { + httpRouter.use( + await createRouter({ + config, + logger: loggerToWinstonLogger(logger), + permissions, + }), + ); + }, + }); + }, +}); diff --git a/plugins/linguist-backend/README.md b/plugins/linguist-backend/README.md index 6cfd3800b6..462adc495e 100644 --- a/plugins/linguist-backend/README.md +++ b/plugins/linguist-backend/README.md @@ -56,6 +56,47 @@ Here's how to get the backend up and running: 4. Now run `yarn start-backend` from the repo root 5. Finally open `http://localhost:7007/api/linguist/health` in a browser and it should return `{"status":"ok"}` +#### New Backend System + +The Linguist backend plugin has alpha support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: + +In your `packages/backend/src/index.ts` make the following changes: + +```diff + import { createBackend } from '@backstage/backend-defaults'; + import { appPlugin } from '@backstage/plugin-app-backend'; + import { catalogPlugin } from '@backstage/plugin-catalog-backend'; + import { + scaffolderPlugin, + catalogModuleTemplateKind, + } from '@backstage/plugin-scaffolder-backend'; ++ import { linguistPlugin } from '@backstage/plugin-linguist-backend/alpha'; + + const backend = createBackend(); + + backend.add(appPlugin()); + backend.add(catalogPlugin()); + backend.add(catalogModuleTemplateKind()); + backend.add(scaffolderPlugin()); + ++ const linguistSchedule: TaskScheduleDefinition = { ++ frequency: { minutes: 2 }, ++ timeout: { minutes: 15 }, ++ initialDelay: { seconds: 15 }, ++ }; + ++ backend.add( ++ linguistPlugin({ ++ schedule: linguistSchedule, ++ age: { days: 30 }, ++ batchSize: 2, ++ useSourceLocation: false, ++ }), ++ ); + + backend.start(); +``` + ## Plugin Option The Linguist backend has various plugin options that you can provide to the `createRouter` function in your `packages/backend/src/plugins/linguist.ts` file that will allow you to configure various aspects of how it works. The following sections go into the details of these options diff --git a/plugins/linguist-backend/alpha-api-report.md b/plugins/linguist-backend/alpha-api-report.md new file mode 100644 index 0000000000..fb0e906f64 --- /dev/null +++ b/plugins/linguist-backend/alpha-api-report.md @@ -0,0 +1,30 @@ +## API Report File for "@backstage/plugin-linguist-backend" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; +import { HumanDuration } from '@backstage/types'; +import { TaskScheduleDefinition } from '@backstage/backend-tasks'; + +// @alpha +export const linguistPlugin: (options: LinguistPluginOptions) => BackendFeature; + +// @alpha +export interface LinguistPluginOptions { + // (undocumented) + age?: HumanDuration; + // (undocumented) + batchSize?: number; + // (undocumented) + kind?: string[]; + // (undocumented) + linguistJsOptions?: Record; + // (undocumented) + schedule?: TaskScheduleDefinition; + // (undocumented) + useSourceLocation?: boolean; +} + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index e4eaeb337a..1e75aa6303 100644 --- a/plugins/linguist-backend/package.json +++ b/plugins/linguist-backend/package.json @@ -9,6 +9,21 @@ "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, + "exports": { + ".": "./src/index.ts", + "./alpha": "./src/alpha.ts", + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "alpha": [ + "src/alpha.ts" + ], + "package.json": [ + "package.json" + ] + } + }, "backstage": { "role": "backend-plugin" }, @@ -23,6 +38,7 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/backend-tasks": "workspace:^", "@backstage/catalog-client": "workspace:^", "@backstage/catalog-model": "workspace:^", diff --git a/plugins/linguist-backend/src/alpha.ts b/plugins/linguist-backend/src/alpha.ts new file mode 100644 index 0000000000..c149e2b179 --- /dev/null +++ b/plugins/linguist-backend/src/alpha.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2023 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 { linguistPlugin } from './plugin'; +export type { LinguistPluginOptions } from './plugin'; diff --git a/plugins/linguist-backend/src/plugin.ts b/plugins/linguist-backend/src/plugin.ts new file mode 100644 index 0000000000..8f038a563a --- /dev/null +++ b/plugins/linguist-backend/src/plugin.ts @@ -0,0 +1,87 @@ +/* + * Copyright 2023 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 { loggerToWinstonLogger } from '@backstage/backend-common'; +import { + coreServices, + createBackendPlugin, +} from '@backstage/backend-plugin-api'; +import { createRouter } from './service/router'; +import { TaskScheduleDefinition } from '@backstage/backend-tasks'; +import { HumanDuration } from '@backstage/types'; + +/** + * Options for Linguist backend plugin + * + * @alpha + */ +export interface LinguistPluginOptions { + schedule?: TaskScheduleDefinition; + age?: HumanDuration; + batchSize?: number; + useSourceLocation?: boolean; + linguistJsOptions?: Record; + kind?: string[]; +} + +/** + * Linguist backend plugin + * + * @alpha + */ +export const linguistPlugin = createBackendPlugin( + (options: LinguistPluginOptions) => ({ + pluginId: 'linguist', + register(env) { + env.registerInit({ + deps: { + logger: coreServices.logger, + reader: coreServices.urlReader, + database: coreServices.database, + discovery: coreServices.discovery, + scheduler: coreServices.scheduler, + tokenManager: coreServices.tokenManager, + httpRouter: coreServices.httpRouter, + }, + async init({ + logger, + reader, + database, + discovery, + scheduler, + tokenManager, + httpRouter, + }) { + httpRouter.use( + await createRouter( + { + ...options, + }, + { + logger: loggerToWinstonLogger(logger), + reader, + database, + discovery, + scheduler, + tokenManager, + }, + ), + ); + }, + }); + }, + }), +); diff --git a/yarn.lock b/yarn.lock index 79561514f7..bb795ca564 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5011,6 +5011,7 @@ __metadata: resolution: "@backstage/plugin-azure-devops-backend@workspace:plugins/azure-devops-backend" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" "@backstage/plugin-azure-devops-common": "workspace:^" @@ -6353,6 +6354,7 @@ __metadata: resolution: "@backstage/plugin-devtools-backend@workspace:plugins/devtools-backend" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/cli-common": "workspace:^" "@backstage/config": "workspace:^" @@ -7723,6 +7725,7 @@ __metadata: resolution: "@backstage/plugin-linguist-backend@workspace:plugins/linguist-backend" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-tasks": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/catalog-client": "workspace:^" @@ -24925,14 +24928,18 @@ __metadata: resolution: "example-backend-next@workspace:packages/backend-next" dependencies: "@backstage/backend-defaults": "workspace:^" + "@backstage/backend-tasks": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/plugin-app-backend": "workspace:^" "@backstage/plugin-auth-node": "workspace:^" + "@backstage/plugin-azure-devops-backend": "workspace:^" "@backstage/plugin-badges-backend": "workspace:^" "@backstage/plugin-catalog-backend": "workspace:^" "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^" + "@backstage/plugin-devtools-backend": "workspace:^" "@backstage/plugin-entity-feedback-backend": "workspace:^" "@backstage/plugin-kubernetes-backend": "workspace:^" + "@backstage/plugin-linguist-backend": "workspace:^" "@backstage/plugin-permission-backend": "workspace:^" "@backstage/plugin-permission-common": "workspace:^" "@backstage/plugin-permission-node": "workspace:^" From c7f5324fa0e43bd62cd8b9df2b9bfe8092c8fca4 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Fri, 23 Jun 2023 12:46:23 -0500 Subject: [PATCH 62/78] Changed @alpha to @public Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- packages/backend-next/src/index.ts | 6 ++-- .../azure-devops-backend/alpha-api-report.md | 12 -------- plugins/azure-devops-backend/api-report.md | 6 ++-- plugins/azure-devops-backend/package.json | 4 --- plugins/azure-devops-backend/src/alpha.ts | 16 ---------- plugins/azure-devops-backend/src/index.ts | 8 +++++ plugins/azure-devops-backend/src/plugin.ts | 2 +- plugins/devtools-backend/alpha-api-report.md | 12 -------- plugins/devtools-backend/api-report.md | 4 +++ plugins/devtools-backend/package.json | 4 --- plugins/devtools-backend/src/alpha.ts | 16 ---------- plugins/devtools-backend/src/index.ts | 1 + plugins/devtools-backend/src/plugin.ts | 4 +-- plugins/linguist-backend/alpha-api-report.md | 30 ------------------- plugins/linguist-backend/package.json | 4 --- plugins/linguist-backend/src/alpha.ts | 17 ----------- plugins/linguist-backend/src/index.ts | 8 +++++ plugins/linguist-backend/src/plugin.ts | 4 +-- 18 files changed, 33 insertions(+), 125 deletions(-) delete mode 100644 plugins/azure-devops-backend/alpha-api-report.md delete mode 100644 plugins/azure-devops-backend/src/alpha.ts delete mode 100644 plugins/devtools-backend/alpha-api-report.md delete mode 100644 plugins/devtools-backend/src/alpha.ts delete mode 100644 plugins/linguist-backend/alpha-api-report.md delete mode 100644 plugins/linguist-backend/src/alpha.ts diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index c064f2acb9..7f21b23a85 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -33,9 +33,9 @@ import { todoPlugin } from '@backstage/plugin-todo-backend'; import { entityFeedbackPlugin } from '@backstage/plugin-entity-feedback-backend'; import { catalogModuleUnprocessedEntities } from '@backstage/plugin-catalog-backend-module-unprocessed'; import { badgesPlugin } from '@backstage/plugin-badges-backend'; -import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend/alpha'; -import { linguistPlugin } from '@backstage/plugin-linguist-backend/alpha'; -import { devtoolsPlugin } from '@backstage/plugin-devtools-backend/alpha'; +import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend'; +import { linguistPlugin } from '@backstage/plugin-linguist-backend'; +import { devtoolsPlugin } from '@backstage/plugin-devtools-backend'; import { TaskScheduleDefinition } from '@backstage/backend-tasks'; const backend = createBackend(); diff --git a/plugins/azure-devops-backend/alpha-api-report.md b/plugins/azure-devops-backend/alpha-api-report.md deleted file mode 100644 index e258f51a4f..0000000000 --- a/plugins/azure-devops-backend/alpha-api-report.md +++ /dev/null @@ -1,12 +0,0 @@ -## API Report File for "@backstage/plugin-azure-devops-backend" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; - -// @alpha -export const azureDevOpsPlugin: () => BackendFeature; - -// (No @packageDocumentation comment for this package) -``` diff --git a/plugins/azure-devops-backend/api-report.md b/plugins/azure-devops-backend/api-report.md index 900b3c3d12..a2a43cd6af 100644 --- a/plugins/azure-devops-backend/api-report.md +++ b/plugins/azure-devops-backend/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Build } from 'azure-devops-node-api/interfaces/BuildInterfaces'; import { BuildDefinitionReference } from 'azure-devops-node-api/interfaces/BuildInterfaces'; import { BuildRun } from '@backstage/plugin-azure-devops-common'; @@ -94,6 +95,9 @@ export class AzureDevOpsApi { }): Promise; } +// @public +export const azureDevOpsPlugin: () => BackendFeature; + // @public (undocumented) export function createRouter(options: RouterOptions): Promise; @@ -108,6 +112,4 @@ export interface RouterOptions { // (undocumented) reader: UrlReader; } - -// (No @packageDocumentation comment for this package) ``` diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 44b4342cf1..87b02e9298 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -11,14 +11,10 @@ }, "exports": { ".": "./src/index.ts", - "./alpha": "./src/alpha.ts", "./package.json": "./package.json" }, "typesVersions": { "*": { - "alpha": [ - "src/alpha.ts" - ], "package.json": [ "package.json" ] diff --git a/plugins/azure-devops-backend/src/alpha.ts b/plugins/azure-devops-backend/src/alpha.ts deleted file mode 100644 index dc321ef4de..0000000000 --- a/plugins/azure-devops-backend/src/alpha.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2023 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 { azureDevOpsPlugin } from './plugin'; diff --git a/plugins/azure-devops-backend/src/index.ts b/plugins/azure-devops-backend/src/index.ts index 6977d3580f..c0b1276acf 100644 --- a/plugins/azure-devops-backend/src/index.ts +++ b/plugins/azure-devops-backend/src/index.ts @@ -13,5 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +/** + * Azure DevOps backend plugin that contains the API for retrieving builds, pull requests, etc. which is used by the Azure DevOps frontend plugin. + * + * @packageDocumentation + */ + export { AzureDevOpsApi } from './api'; export * from './service/router'; +export { azureDevOpsPlugin } from './plugin'; diff --git a/plugins/azure-devops-backend/src/plugin.ts b/plugins/azure-devops-backend/src/plugin.ts index e6cf01b182..808bdfa248 100644 --- a/plugins/azure-devops-backend/src/plugin.ts +++ b/plugins/azure-devops-backend/src/plugin.ts @@ -24,7 +24,7 @@ import { createRouter } from './service/router'; /** * Azure DevOps backend plugin * - * @alpha + * @public */ export const azureDevOpsPlugin = createBackendPlugin({ pluginId: 'azure-devops', diff --git a/plugins/devtools-backend/alpha-api-report.md b/plugins/devtools-backend/alpha-api-report.md deleted file mode 100644 index 0be1ac4891..0000000000 --- a/plugins/devtools-backend/alpha-api-report.md +++ /dev/null @@ -1,12 +0,0 @@ -## API Report File for "@backstage/plugin-devtools-backend" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; - -// @alpha -export const devtoolsPlugin: () => BackendFeature; - -// (No @packageDocumentation comment for this package) -``` diff --git a/plugins/devtools-backend/api-report.md b/plugins/devtools-backend/api-report.md index e28f0697ab..dc51fc8387 100644 --- a/plugins/devtools-backend/api-report.md +++ b/plugins/devtools-backend/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import { ConfigInfo } from '@backstage/plugin-devtools-common'; import { DevToolsInfo } from '@backstage/plugin-devtools-common'; @@ -25,6 +26,9 @@ export class DevToolsBackendApi { listInfo(): Promise; } +// @public +export const devtoolsPlugin: () => BackendFeature; + // @public (undocumented) export interface RouterOptions { // (undocumented) diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index bc71e58493..14d59b0715 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -11,14 +11,10 @@ }, "exports": { ".": "./src/index.ts", - "./alpha": "./src/alpha.ts", "./package.json": "./package.json" }, "typesVersions": { "*": { - "alpha": [ - "src/alpha.ts" - ], "package.json": [ "package.json" ] diff --git a/plugins/devtools-backend/src/alpha.ts b/plugins/devtools-backend/src/alpha.ts deleted file mode 100644 index fa4c290fb8..0000000000 --- a/plugins/devtools-backend/src/alpha.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2023 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 { devtoolsPlugin } from './plugin'; diff --git a/plugins/devtools-backend/src/index.ts b/plugins/devtools-backend/src/index.ts index e1545e0022..57c1739c34 100644 --- a/plugins/devtools-backend/src/index.ts +++ b/plugins/devtools-backend/src/index.ts @@ -22,3 +22,4 @@ export { DevToolsBackendApi } from './api'; export * from './service/router'; +export { devtoolsPlugin } from './plugin'; diff --git a/plugins/devtools-backend/src/plugin.ts b/plugins/devtools-backend/src/plugin.ts index 530ad74292..01e03e3609 100644 --- a/plugins/devtools-backend/src/plugin.ts +++ b/plugins/devtools-backend/src/plugin.ts @@ -22,9 +22,9 @@ import { import { createRouter } from './service/router'; /** - * Azure DevOps backend plugin + * DevTools backend plugin * - * @alpha + * @public */ export const devtoolsPlugin = createBackendPlugin({ pluginId: 'devtools', diff --git a/plugins/linguist-backend/alpha-api-report.md b/plugins/linguist-backend/alpha-api-report.md deleted file mode 100644 index fb0e906f64..0000000000 --- a/plugins/linguist-backend/alpha-api-report.md +++ /dev/null @@ -1,30 +0,0 @@ -## API Report File for "@backstage/plugin-linguist-backend" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; -import { HumanDuration } from '@backstage/types'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; - -// @alpha -export const linguistPlugin: (options: LinguistPluginOptions) => BackendFeature; - -// @alpha -export interface LinguistPluginOptions { - // (undocumented) - age?: HumanDuration; - // (undocumented) - batchSize?: number; - // (undocumented) - kind?: string[]; - // (undocumented) - linguistJsOptions?: Record; - // (undocumented) - schedule?: TaskScheduleDefinition; - // (undocumented) - useSourceLocation?: boolean; -} - -// (No @packageDocumentation comment for this package) -``` diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index 1e75aa6303..55e19b443d 100644 --- a/plugins/linguist-backend/package.json +++ b/plugins/linguist-backend/package.json @@ -11,14 +11,10 @@ }, "exports": { ".": "./src/index.ts", - "./alpha": "./src/alpha.ts", "./package.json": "./package.json" }, "typesVersions": { "*": { - "alpha": [ - "src/alpha.ts" - ], "package.json": [ "package.json" ] diff --git a/plugins/linguist-backend/src/alpha.ts b/plugins/linguist-backend/src/alpha.ts deleted file mode 100644 index c149e2b179..0000000000 --- a/plugins/linguist-backend/src/alpha.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2023 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 { linguistPlugin } from './plugin'; -export type { LinguistPluginOptions } from './plugin'; diff --git a/plugins/linguist-backend/src/index.ts b/plugins/linguist-backend/src/index.ts index 37ecf2d47f..6ac1c3770a 100644 --- a/plugins/linguist-backend/src/index.ts +++ b/plugins/linguist-backend/src/index.ts @@ -14,5 +14,13 @@ * limitations under the License. */ +/** + * Linguist backend plugin that contains the API for generating and retrieving language breakdown which is used by the Linguist frontend plugin. + * + * @packageDocumentation + */ + export * from './service/router'; export type { LinguistBackendApi } from './api'; +export { linguistPlugin } from './plugin'; +export type { LinguistPluginOptions } from './plugin'; diff --git a/plugins/linguist-backend/src/plugin.ts b/plugins/linguist-backend/src/plugin.ts index 8f038a563a..f655d6a1f4 100644 --- a/plugins/linguist-backend/src/plugin.ts +++ b/plugins/linguist-backend/src/plugin.ts @@ -26,7 +26,7 @@ import { HumanDuration } from '@backstage/types'; /** * Options for Linguist backend plugin * - * @alpha + * @public */ export interface LinguistPluginOptions { schedule?: TaskScheduleDefinition; @@ -40,7 +40,7 @@ export interface LinguistPluginOptions { /** * Linguist backend plugin * - * @alpha + * @public */ export const linguistPlugin = createBackendPlugin( (options: LinguistPluginOptions) => ({ From a9cadcc634be283c508761dc560b7e33d7de3b29 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Fri, 23 Jun 2023 12:56:31 -0500 Subject: [PATCH 63/78] Updated READMEs Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- plugins/azure-devops-backend/README.md | 13 ++----------- plugins/devtools-backend/README.md | 15 +++------------ plugins/linguist-backend/README.md | 15 +++------------ 3 files changed, 8 insertions(+), 35 deletions(-) diff --git a/plugins/azure-devops-backend/README.md b/plugins/azure-devops-backend/README.md index d51758aec5..3bc17e32e7 100644 --- a/plugins/azure-devops-backend/README.md +++ b/plugins/azure-devops-backend/README.md @@ -72,26 +72,17 @@ Here's how to get the backend up and running: #### New Backend System -The Azure DevOps backend plugin has alpha support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: +The Azure DevOps backend plugin has support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: In your `packages/backend/src/index.ts` make the following changes: ```diff import { createBackend } from '@backstage/backend-defaults'; - import { appPlugin } from '@backstage/plugin-app-backend'; - import { catalogPlugin } from '@backstage/plugin-catalog-backend'; - import { - scaffolderPlugin, - catalogModuleTemplateKind, - } from '@backstage/plugin-scaffolder-backend'; + import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend/alpha'; const backend = createBackend(); - backend.add(appPlugin()); - backend.add(catalogPlugin()); - backend.add(catalogModuleTemplateKind()); - backend.add(scaffolderPlugin()); + // ... other feature additions + backend.add(azureDevOpsPlugin()); diff --git a/plugins/devtools-backend/README.md b/plugins/devtools-backend/README.md index 7a8ca3104a..5290e76f58 100644 --- a/plugins/devtools-backend/README.md +++ b/plugins/devtools-backend/README.md @@ -51,26 +51,17 @@ Here's how to get the DevTools Backend up and running: ### New Backend System -The DevTools backend plugin has alpha support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: +The DevTools backend plugin has support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: In your `packages/backend/src/index.ts` make the following changes: ```diff import { createBackend } from '@backstage/backend-defaults'; - import { appPlugin } from '@backstage/plugin-app-backend'; - import { catalogPlugin } from '@backstage/plugin-catalog-backend'; - import { - scaffolderPlugin, - catalogModuleTemplateKind, - } from '@backstage/plugin-scaffolder-backend'; + import { devtoolsPlugin } from '@backstage/plugin-devtools-backend/alpha'; const backend = createBackend(); - backend.add(appPlugin()); - backend.add(catalogPlugin()); - backend.add(catalogModuleTemplateKind()); - backend.add(scaffolderPlugin()); + // ... other feature additions + backend.add(devtoolsPlugin()); @@ -79,5 +70,5 @@ In your `packages/backend/src/index.ts` make the following changes: ## Links -- [Frontend part of the plugin](../devtools/README.md) +- [Frontend part of the plugin](https://github.com/backstage/backstage/tree/master/plugins/devtools) - [The Backstage homepage](https://backstage.io) diff --git a/plugins/linguist-backend/README.md b/plugins/linguist-backend/README.md index 462adc495e..543fe192fe 100644 --- a/plugins/linguist-backend/README.md +++ b/plugins/linguist-backend/README.md @@ -58,26 +58,17 @@ Here's how to get the backend up and running: #### New Backend System -The Linguist backend plugin has alpha support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: +The Linguist backend plugin has support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: In your `packages/backend/src/index.ts` make the following changes: ```diff import { createBackend } from '@backstage/backend-defaults'; - import { appPlugin } from '@backstage/plugin-app-backend'; - import { catalogPlugin } from '@backstage/plugin-catalog-backend'; - import { - scaffolderPlugin, - catalogModuleTemplateKind, - } from '@backstage/plugin-scaffolder-backend'; + import { linguistPlugin } from '@backstage/plugin-linguist-backend/alpha'; const backend = createBackend(); - backend.add(appPlugin()); - backend.add(catalogPlugin()); - backend.add(catalogModuleTemplateKind()); - backend.add(scaffolderPlugin()); + // ... other feature additions + const linguistSchedule: TaskScheduleDefinition = { + frequency: { minutes: 2 }, @@ -155,5 +146,5 @@ return createRouter( ## Links -- [Frontend part of the plugin](../linguist/README.md) +- [Frontend part of the plugin](https://github.com/backstage/backstage/tree/master/linguist) - [The Backstage homepage](https://backstage.io) From cb336721001f7d2d9d0767abcb321dfe6eac724f Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Tue, 27 Jun 2023 11:29:52 -0500 Subject: [PATCH 64/78] Udpated api-report Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- plugins/linguist-backend/api-report.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/plugins/linguist-backend/api-report.md b/plugins/linguist-backend/api-report.md index 294d569ff7..cd2c9cb3f3 100644 --- a/plugins/linguist-backend/api-report.md +++ b/plugins/linguist-backend/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; import express from 'express'; import { HumanDuration } from '@backstage/types'; import { Languages } from '@backstage/plugin-linguist-common'; @@ -28,6 +29,25 @@ export interface LinguistBackendApi { processEntities(): Promise; } +// @public +export const linguistPlugin: (options: LinguistPluginOptions) => BackendFeature; + +// @public +export interface LinguistPluginOptions { + // (undocumented) + age?: HumanDuration; + // (undocumented) + batchSize?: number; + // (undocumented) + kind?: string[]; + // (undocumented) + linguistJsOptions?: Record; + // (undocumented) + schedule?: TaskScheduleDefinition; + // (undocumented) + useSourceLocation?: boolean; +} + // @public (undocumented) export interface PluginOptions { // (undocumented) @@ -61,6 +81,4 @@ export interface RouterOptions { // (undocumented) tokenManager: TokenManager; } - -// (No @packageDocumentation comment for this package) ``` From 18520c459626a3012dfe7d40b4942ab27610ed81 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:16:30 -0500 Subject: [PATCH 65/78] Fixed broken link Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- plugins/linguist-backend/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/linguist-backend/README.md b/plugins/linguist-backend/README.md index 543fe192fe..ee6e995ec8 100644 --- a/plugins/linguist-backend/README.md +++ b/plugins/linguist-backend/README.md @@ -146,5 +146,5 @@ return createRouter( ## Links -- [Frontend part of the plugin](https://github.com/backstage/backstage/tree/master/linguist) +- [Frontend part of the plugin](https://github.com/backstage/backstage/tree/master/plugins/linguist) - [The Backstage homepage](https://backstage.io) From 3a861eb0ab226f25c4dc7e504a60107ae7fdcec5 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 28 Jun 2023 06:48:51 -0500 Subject: [PATCH 66/78] Corrected README imports not to be from alpha Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- plugins/azure-devops-backend/README.md | 2 +- plugins/devtools-backend/README.md | 2 +- plugins/linguist-backend/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/azure-devops-backend/README.md b/plugins/azure-devops-backend/README.md index 3bc17e32e7..e892b84dd1 100644 --- a/plugins/azure-devops-backend/README.md +++ b/plugins/azure-devops-backend/README.md @@ -78,7 +78,7 @@ In your `packages/backend/src/index.ts` make the following changes: ```diff import { createBackend } from '@backstage/backend-defaults'; -+ import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend/alpha'; ++ import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend'; const backend = createBackend(); diff --git a/plugins/devtools-backend/README.md b/plugins/devtools-backend/README.md index 5290e76f58..528e864783 100644 --- a/plugins/devtools-backend/README.md +++ b/plugins/devtools-backend/README.md @@ -57,7 +57,7 @@ In your `packages/backend/src/index.ts` make the following changes: ```diff import { createBackend } from '@backstage/backend-defaults'; -+ import { devtoolsPlugin } from '@backstage/plugin-devtools-backend/alpha'; ++ import { devtoolsPlugin } from '@backstage/plugin-devtools-backend'; const backend = createBackend(); diff --git a/plugins/linguist-backend/README.md b/plugins/linguist-backend/README.md index ee6e995ec8..6e2a20cf2d 100644 --- a/plugins/linguist-backend/README.md +++ b/plugins/linguist-backend/README.md @@ -64,7 +64,7 @@ In your `packages/backend/src/index.ts` make the following changes: ```diff import { createBackend } from '@backstage/backend-defaults'; -+ import { linguistPlugin } from '@backstage/plugin-linguist-backend/alpha'; ++ import { linguistPlugin } from '@backstage/plugin-linguist-backend'; const backend = createBackend(); From 4716ef6c603aec2b4eb3e4186347d40de3839ac9 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 28 Jun 2023 07:57:24 -0500 Subject: [PATCH 67/78] Removed package.json exports changes Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- plugins/azure-devops-backend/package.json | 11 ----------- plugins/devtools-backend/package.json | 11 ----------- plugins/linguist-backend/package.json | 11 ----------- 3 files changed, 33 deletions(-) diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 87b02e9298..08411a3079 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -9,17 +9,6 @@ "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "exports": { - ".": "./src/index.ts", - "./package.json": "./package.json" - }, - "typesVersions": { - "*": { - "package.json": [ - "package.json" - ] - } - }, "backstage": { "role": "backend-plugin" }, diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index 14d59b0715..388eccfa9e 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -9,17 +9,6 @@ "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "exports": { - ".": "./src/index.ts", - "./package.json": "./package.json" - }, - "typesVersions": { - "*": { - "package.json": [ - "package.json" - ] - } - }, "backstage": { "role": "backend-plugin" }, diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index 55e19b443d..0239b241d3 100644 --- a/plugins/linguist-backend/package.json +++ b/plugins/linguist-backend/package.json @@ -9,17 +9,6 @@ "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "exports": { - ".": "./src/index.ts", - "./package.json": "./package.json" - }, - "typesVersions": { - "*": { - "package.json": [ - "package.json" - ] - } - }, "backstage": { "role": "backend-plugin" }, From 9ef010713fa80f16ca6831043b42d58479ff2d3b Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Wed, 28 Jun 2023 09:31:59 -0400 Subject: [PATCH 68/78] chore: Update Discord username Signed-off-by: Adam Harvey --- OWNERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OWNERS.md b/OWNERS.md index d146739e9e..da1574f73f 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -120,7 +120,7 @@ Scope: Tooling for frontend and backend schema-first OpenAPI development. | Name | Organization | GitHub | Discord | | ------------------------------ | ------------------------- | ----------------------------------------------------- | ------------------------------ | -| Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey#3739` | +| Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey_` | | Alex Crome | | [afscrome](https://github.com/afscrome) | `afscrome` | | Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `Ahhhndre#3095` | | Andrew Thauer | Wealthsimple | [andrewthauer](https://github.com/andrewthauer) | `andrewthauer#3060` | From a9b30f5538d4ab891dad3b4b979f2b19a9f9e200 Mon Sep 17 00:00:00 2001 From: Chris Langhout Date: Wed, 28 Jun 2023 14:40:41 +0200 Subject: [PATCH 69/78] Update README.md fix install command Signed-off-by: Chris Langhout Signed-off-by: Chris Langhout --- plugins/catalog-unprocessed-entities/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-unprocessed-entities/README.md b/plugins/catalog-unprocessed-entities/README.md index ed48d42518..3c9f649e37 100644 --- a/plugins/catalog-unprocessed-entities/README.md +++ b/plugins/catalog-unprocessed-entities/README.md @@ -29,7 +29,7 @@ Requires the `@backstage/plugin-catalog-backend-module-unprocessed` module to be ## Installation ```shell -yarn add --cwd packages/app @backstage/plugin-catalog-module-unprocessed +yarn add --cwd packages/app @backstage/plugin-catalog-unprocessed-entities ``` Import into your `App.tsx` and include into the `` component: From 77b408fad872aa7a9d66fd537ab9e1771ea8b77a Mon Sep 17 00:00:00 2001 From: Chris Langhout Date: Wed, 28 Jun 2023 16:42:58 +0200 Subject: [PATCH 70/78] chore: add changeset Signed-off-by: Chris Langhout --- .changeset/young-frogs-burn.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/young-frogs-burn.md diff --git a/.changeset/young-frogs-burn.md b/.changeset/young-frogs-burn.md new file mode 100644 index 0000000000..7ca4fff60f --- /dev/null +++ b/.changeset/young-frogs-burn.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-unprocessed-entities': patch +--- + +install command points to correct package name From 3f1c3e2e5c97cbb14fb448659cff8248cf9cd105 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Wed, 28 Jun 2023 11:12:21 -0400 Subject: [PATCH 71/78] chore: Add Andre name also Co-authored-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Signed-off-by: Adam Harvey --- OWNERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OWNERS.md b/OWNERS.md index da1574f73f..bbcab49667 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -122,7 +122,7 @@ Scope: Tooling for frontend and backend schema-first OpenAPI development. | ------------------------------ | ------------------------- | ----------------------------------------------------- | ------------------------------ | | Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey_` | | Alex Crome | | [afscrome](https://github.com/afscrome) | `afscrome` | -| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `Ahhhndre#3095` | +| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `ahhhndre` | | Andrew Thauer | Wealthsimple | [andrewthauer](https://github.com/andrewthauer) | `andrewthauer#3060` | | Aramis Sennyey | | [sennyeya](https://github.com/sennyeya) | `Aramis#7984` | | Brian Fletcher | Roadie.io | [punkle](https://github.com/punkle) | `Brian Fletcher#7051` | From 620026fd060a463aed9cf70aa7ee90131a69bbb0 Mon Sep 17 00:00:00 2001 From: Ant Weiss Date: Wed, 28 Jun 2023 18:17:20 +0300 Subject: [PATCH 72/78] Fix a couple of typos Signed-off-by: Ant Weiss --- docs/backend-system/architecture/04-plugins.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/backend-system/architecture/04-plugins.md b/docs/backend-system/architecture/04-plugins.md index 04271b17da..89191f5de9 100644 --- a/docs/backend-system/architecture/04-plugins.md +++ b/docs/backend-system/architecture/04-plugins.md @@ -84,7 +84,7 @@ Options are a simple way to allow for more lightweight customization of a plugin The following rules apply to the production setup of Backstage plugins in the broader Backstage plugin ecosystem. Any plugin that is maintained under the `@backstage` package namespace should follow these rules, and it is recommended that all widely distributed plugins follow these rules as well. -An exception to these rules are made for development or test setups, where shortcuts can be take in order to streamline development and keep things simple. +An exception to these rules are made for development or test setups, where shortcuts can be taken in order to streamline development and keep things simple. ### Scalable @@ -92,4 +92,4 @@ Plugins must always be designed to be horizontally scalable. This means that you ### Isolated -Plugins must never communicate with each other directly through code, they may only communicate over the network. Plugins that wish to expose an external interface for other plugins and modules to use are recommended to do so though a [node-library](../../local-dev/cli-build-system.md#package-roles) package. The library should export an API client service to make calls to your plugin, or similar construct. +Plugins must never communicate with each other directly through code, they may only communicate over the network. Plugins that wish to expose an external interface for other plugins and modules to use are recommended to do so through a [node-library](../../local-dev/cli-build-system.md#package-roles) package. The library should export an API client service to make calls to your plugin, or similar construct. From 8f0cc48d34cbb8eff5293a69d2edad79568dc527 Mon Sep 17 00:00:00 2001 From: Scott Guymer Date: Wed, 28 Jun 2023 19:41:47 +0200 Subject: [PATCH 73/78] Update .changeset/mighty-pandas-deny.md Signed-off-by: Scott Guymer --- .changeset/mighty-pandas-deny.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/mighty-pandas-deny.md b/.changeset/mighty-pandas-deny.md index 381e76d52b..8c18c46469 100644 --- a/.changeset/mighty-pandas-deny.md +++ b/.changeset/mighty-pandas-deny.md @@ -1,6 +1,6 @@ --- -'@backstage/plugin-sonarqube': minor -'@backstage/plugin-sonarqube-backend': minor +'@backstage/plugin-sonarqube': patch +'@backstage/plugin-sonarqube-backend': patch --- Made default config optional From c8fd900afbbd86859f1de670364f731bc6cfdecd Mon Sep 17 00:00:00 2001 From: Scott Guymer Date: Wed, 28 Jun 2023 21:47:45 +0200 Subject: [PATCH 74/78] fix: Use themeable styling for markdown Signed-off-by: Scott Guymer --- .../components/Form/DescriptionFieldTemplate.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/scaffolder-react/src/next/components/Form/DescriptionFieldTemplate.tsx b/plugins/scaffolder-react/src/next/components/Form/DescriptionFieldTemplate.tsx index 8debfb3e08..4c86ef0c62 100644 --- a/plugins/scaffolder-react/src/next/components/Form/DescriptionFieldTemplate.tsx +++ b/plugins/scaffolder-react/src/next/components/Form/DescriptionFieldTemplate.tsx @@ -24,17 +24,17 @@ import { StrictRJSFSchema, } from '@rjsf/utils'; -const useStyles = makeStyles({ +const useStyles = makeStyles(theme => ({ markdownDescription: { - fontSize: '0.75rem', + fontSize: theme.typography.caption.fontSize, margin: 0, - marginTop: '5px', - color: 'rgba(0, 0, 0, 0.54)', - '& p:first-child': { + color: theme.palette.text.secondary, + '& :first-child': { margin: 0, + marginTop: '3px', // to keep the standard browser padding }, }, -}); +})); /** The `DescriptionField` is the template to use to render the description of a field * @alpha From f74a27de4d2ca66ada290d4dc330e0189581b9e4 Mon Sep 17 00:00:00 2001 From: Scott Guymer Date: Wed, 28 Jun 2023 21:53:35 +0200 Subject: [PATCH 75/78] Added changeset Signed-off-by: Scott Guymer --- .changeset/fluffy-frogs-change.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/fluffy-frogs-change.md diff --git a/.changeset/fluffy-frogs-change.md b/.changeset/fluffy-frogs-change.md new file mode 100644 index 0000000000..2caf25bfc4 --- /dev/null +++ b/.changeset/fluffy-frogs-change.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-react': patch +--- + +Made markdown description theme-able From b01b869d715868c2006e137f8b8ee6f010d746af Mon Sep 17 00:00:00 2001 From: Rogerio Angeliski Date: Wed, 21 Jun 2023 11:51:19 +0000 Subject: [PATCH 76/78] fix: update onRepoPush to drop events from different organizations Close #15878: Signed-off-by: Rogerio Angeliski --- .changeset/fresh-bears-yawn.md | 5 ++ .../providers/GithubEntityProvider.test.ts | 69 +++++++++++++++++++ .../src/providers/GithubEntityProvider.ts | 7 ++ 3 files changed, 81 insertions(+) create mode 100644 .changeset/fresh-bears-yawn.md diff --git a/.changeset/fresh-bears-yawn.md b/.changeset/fresh-bears-yawn.md new file mode 100644 index 0000000000..cf3d6657e0 --- /dev/null +++ b/.changeset/fresh-bears-yawn.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +fixed event handler to respect configured organization 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 6540962411..d0fc54245f 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.test.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.test.ts @@ -1212,4 +1212,73 @@ describe('GithubEntityProvider', () => { expect(entityProviderConnection.refresh).toHaveBeenCalledTimes(0); expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(0); }); + + it("should skip process when didn't match org from push event", async () => { + const schedule = new PersistingTaskRunner(); + const config = new ConfigReader({ + catalog: { + providers: { + github: { + organization: 'test-org', + filters: { + branch: 'my-special-branch', + repository: 'test-repo', + }, + }, + }, + }, + }); + + const provider = GithubEntityProvider.fromConfig(config, { + logger, + schedule, + })[0]; + + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + refresh: jest.fn(), + }; + await provider.connect(entityProviderConnection); + + const event: EventParams = { + topic: 'github.push', + metadata: { + 'x-github-event': 'push', + }, + eventPayload: { + ref: 'refs/heads/my-special-branch', + repository: { + name: 'test-repo', + url: 'https://github.com/test-org/test-repo', + default_branch: 'main', + stargazers: 0, + master_branch: 'main', + organization: 'other-org', + topics: [], + }, + created: true, + deleted: false, + forced: false, + commits: [ + { + added: ['new-file.yaml'], + removed: [], + modified: [], + }, + { + added: [], + removed: [], + modified: ['catalog-info.yaml'], + }, + ], + }, + }; + + await provider.onEvent(event); + + await provider.onEvent(event); + + expect(entityProviderConnection.refresh).toHaveBeenCalledTimes(0); + expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(0); + }); }); diff --git a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts index bd26f2906a..e91cc328f7 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts @@ -296,6 +296,13 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { throw new Error('Not initialized'); } + if (this.config.organization !== event.repository.organization) { + this.logger.debug( + `skipping push event from organization ${event.repository.organization}`, + ); + return; + } + const repoName = event.repository.name; const repoUrl = event.repository.url; this.logger.debug(`handle github:push event for ${repoName} - ${repoUrl}`); From b8ebd3d2e4e501831b306e9d392d225b4c5336d0 Mon Sep 17 00:00:00 2001 From: Heikki Hellgren Date: Wed, 28 Jun 2023 08:27:39 +0300 Subject: [PATCH 77/78] fix: missing breakpoints in columns of custom homepage grid Signed-off-by: Heikki Hellgren --- .changeset/strange-baboons-look.md | 5 +++++ plugins/home/api-report.md | 2 +- .../CustomHomepage/CustomHomepageGrid.tsx | 18 ++++++++++-------- 3 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 .changeset/strange-baboons-look.md diff --git a/.changeset/strange-baboons-look.md b/.changeset/strange-baboons-look.md new file mode 100644 index 0000000000..4b2e14b301 --- /dev/null +++ b/.changeset/strange-baboons-look.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-home': patch +--- + +Fix missing column breakpoints in `CustomHompageGrid` diff --git a/plugins/home/api-report.md b/plugins/home/api-report.md index e4ff522062..1001f27b51 100644 --- a/plugins/home/api-report.md +++ b/plugins/home/api-report.md @@ -20,7 +20,7 @@ import { RendererProps as RendererProps_2 } from '@backstage/plugin-home-react'; import { RouteRef } from '@backstage/core-plugin-api'; // @public -export type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; +export type Breakpoint = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'; // @public @deprecated (undocumented) export type CardConfig = CardConfig_2; diff --git a/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx b/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx index d42356a8d2..2d4636a4b4 100644 --- a/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx +++ b/plugins/home/src/components/CustomHomepage/CustomHomepageGrid.tsx @@ -17,11 +17,11 @@ import React, { ReactNode, useCallback, useMemo } from 'react'; import { Layout, Layouts, Responsive, WidthProvider } from 'react-grid-layout'; import { + ElementCollection, + getComponentData, storageApiRef, useApi, - getComponentData, useElementFilter, - ElementCollection, } from '@backstage/core-plugin-api'; import 'react-grid-layout/css/styles.css'; import 'react-resizable/css/styles.css'; @@ -29,8 +29,8 @@ import { createStyles, Dialog, makeStyles, - useTheme, Theme, + useTheme, } from '@material-ui/core'; import { compact } from 'lodash'; import useObservable from 'react-use/lib/useObservable'; @@ -42,10 +42,10 @@ import { CustomHomepageButtons } from './CustomHomepageButtons'; import { CustomHomepageGridStateV1, CustomHomepageGridStateV1Schema, - LayoutConfiguration, - Widget, GridWidget, + LayoutConfiguration, LayoutConfigurationSchema, + Widget, WidgetSchema, } from './types'; import { CardConfig } from '@backstage/plugin-home-react'; @@ -194,7 +194,7 @@ const availableWidgetsFilter = (elements: ElementCollection) => { * * @public */ -export type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; +export type Breakpoint = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'; /** * Props customizing the component. @@ -410,11 +410,13 @@ export const CustomHomepageGrid = (props: CustomHomepageGridProps) => { props.breakpoints ? props.breakpoints : theme.breakpoints.values } cols={ - props.cols ? props.cols : { lg: 12, md: 10, sm: 6, xs: 4, xxs: 2 } + props.cols + ? props.cols + : { xl: 12, lg: 12, md: 10, sm: 6, xs: 4, xxs: 2 } } rowHeight={props.rowHeight ?? 60} onLayoutChange={handleLayoutChange} - layouts={{ lg: widgets.map(w => w.layout) }} + layouts={{ xl: widgets.map(w => w.layout) }} > {widgets.map((w: GridWidget) => { const l = w.layout; From cc2b3c81b4e1b443598cf4c4e25a76709be8d4c2 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 29 Jun 2023 12:04:29 +0200 Subject: [PATCH 78/78] chore: fix prettier Signed-off-by: blam --- OWNERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OWNERS.md b/OWNERS.md index bbcab49667..5a9457d755 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -122,7 +122,7 @@ Scope: Tooling for frontend and backend schema-first OpenAPI development. | ------------------------------ | ------------------------- | ----------------------------------------------------- | ------------------------------ | | Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey_` | | Alex Crome | | [afscrome](https://github.com/afscrome) | `afscrome` | -| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `ahhhndre` | +| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `ahhhndre` | | Andrew Thauer | Wealthsimple | [andrewthauer](https://github.com/andrewthauer) | `andrewthauer#3060` | | Aramis Sennyey | | [sennyeya](https://github.com/sennyeya) | `Aramis#7984` | | Brian Fletcher | Roadie.io | [punkle](https://github.com/punkle) | `Brian Fletcher#7051` |